年の瀬
昨晩の怒涛の忘年会をラストに、今年の主なイベントは終了。今年はTMUGを見にいったあたりから、急激に人の繋りが増えて嬉しい一年だった。30歳を越えるとなかなか友人ができずらいというが、この歳になって、20代の若い知人が増えるのは本当にありがたい。40前のおっさんを仲間に加えていただける方々にただただ感謝の一年だった。
忘年会の写真をみて、膨張した自分の姿に愕然としたので、来年はダイエットに励みます…
昨晩の怒涛の忘年会をラストに、今年の主なイベントは終了。今年はTMUGを見にいったあたりから、急激に人の繋りが増えて嬉しい一年だった。30歳を越えるとなかなか友人ができずらいというが、この歳になって、20代の若い知人が増えるのは本当にありがたい。40前のおっさんを仲間に加えていただける方々にただただ感謝の一年だった。
忘年会の写真をみて、膨張した自分の姿に愕然としたので、来年はダイエットに励みます…
import com.greensock.*; this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY}); }
import com.greensock.*; import com.greensock.easing.*; this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY, ease:Expo.easeInOut}); }
import com.greensock.*; import com.greensock.easing.*; this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY, ease:Bounce.easeOut}); }
import com.greensock.*; import com.greensock.easing.*; this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY, ease:Elastic.easeOut}); }
import com.greensock.*; import com.greensock.easing.*; this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { var size:Number = Math.random() * 200; TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY, width:size, height:size, ease:Elastic.easeOut}); }
import com.greensock.*; import com.greensock.easing.*; import com.greensock.plugins.*; TweenPlugin.activate([TintPlugin]); this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { var scale:Number = Math.random() * 4.0; var color:Number = Math.random() * 0xffffff; import com.greensock.plugins.*; TweenLite.to(this.mc, 1, {x:mouseX, y:mouseY, scaleX:scale, scaleY:scale, tint:color, ease:Elastic.easeOut}); }
import com.greensock.*; import com.greensock.easing.*; import com.greensock.plugins.*; TweenPlugin.activate([TintPlugin]); this.stage.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { myTween(); } function myTween():void { var scale:Number=Math.random()*4.0; var color:Number=Math.random()*0xffffff; var toX:Number=Math.random()*stage.stageWidth; var toY:Number=Math.random()*stage.stageHeight; import com.greensock.plugins.*; TweenLite.to(this.mc, 1, {x:toX, y:toY, scaleX:scale, scaleY:scale, tint:color, ease:Elastic.easeOut, onComplete:myTween}); }
最終課題:TweenMaxライブラリを使用して、インタラクティブな作品を作る
いくつかの仕事が一段落したので、久しぶりに劇場で映画を観る。チャーリー・カウフマン初監督作品「脳内ニューヨーク」の最終日。16:40からの回、観客はは席の4割ほど。
久しぶりに劇場で観る映画でなぜこれを選んだかというと、主演のフィリップ・シーモア・ホフマンが好きなのだ。あのリアルなおっさん体系と圧倒的な演技の魅力に加えて、出演する作品に僕が個人的に好きな映画が多いからかもしれない。チャーリー・カウフマンの脚本した映画も「マルコビッチの穴」「ヒューマンネイチャー」「アダプテーション」「エターナル・サンシャイン」と見てきていて、どれも不条理で強烈な印象が残っている。「エターナル・サンシャイン」はここ数年観た映画の中で一番好きかもしれない。
以下映画の内容に何の配慮も無く触れていきますので、そのつもりで…
以前カウフマンは、自身が脚本した「アダプテーション」の中では実名で脚本家の役として登場し、脚本するという行為自体についてメタ的な視点で語っていた。今回は初の監督作品ということで、監督、演出するという行為について語っている。さらに言うと、このカウフマンの特性とも言える「メタな視点で語る」という行為自体について語りだしているので、物語は非常に複雑な様相になる。なぜなら、映画の中でその映画自身をメタな視点を語ろうと思うと、「メタな視点を語る」ことをメタな視点で語る必要があり、そのためには「『メタな視点を語る』ことをメタな視点で語る」ことをメタな視点で語る必要があり、さらには… 以下略。
カウフマンの分身として映画に登場するのが演出家役のホフマンなのだが、彼は愛人や主演女優に得意気に難解な喩えを駆使して演劇について語る。いわゆる「上から目線」というやつで。作品の中にそうした「上から」のメタな視点をもった自分を登場させようとしたとたんに無限ループのなかに嵌っていき、どんどん物語の入れ子構造の中に迷い込み、こじれていく。しかも、どんどん悲惨で救いのない方向へ。
もちろん、物語の中に入りこむことなく俯瞰した視点で語ってしまう悲しい主人公がカウフマンを投影しているのだろう。でもこの映画が難しいのは、こうした「○○は××を投影しているのだろう」というような安易な喩え自体の不毛さがテーマなので、いつまでたっても釈然とすることがない。最終的に「ひとりひとりに物語がある、人間って素敵やん」という紳助的な安易な深イイ話ではまとめられることなく、救いのないまま終ってしまう。
個人的にひとつ前の日記で、ちょっと暗く「中年の危機」について考えたタイミングで観たので、いろいろ感じ入るところがあった。巨大なセットの中での自身の物語が破綻すると、セットの中に一回り小さなセットをつくりその中に逃げこみ、それも破綻するとさらにその中の第三のセットに逃げ、という展開。また、物語の進行にあわせて、徐々に体の自由が効かなくなり、禿げて太り歯槽膿漏になり、といったリアルな加齢の描写が、自分自身の将来をみるようで厳しいものがあった。歳はとりたくないなあ…
映画の原題は"Synecdoche, New York"。Synecocheというのは「提喩」と訳されて、「現代のアインシュタイン」のように天才という上位概念を、アインシュタインという個別の下位概念で説明したり、「親子丼」のように鶏肉と玉子というものを上位の概念で説明することらしい。なるほど。
今年もあと数週間で終わってしまう。ものすごく平凡な感想だが、あっという間に終わってしまった。
「ゼロ年代」ももうすぐ終わる。といっても、いままで「ゼロ年代」という言葉を実際に会話の中で使っている人に会ったことはないが。もしかしたら、あんまり一般的な用語ではなく、一部の批評系カルチャーの専門用語なのかもしれない。いずれにしても、2000年から2009年までの10年間は、僕個人にとっては特に際立った印象もなく、あまり何もないまま終わろうとしているような感じがする。とはいえ、この10年間を振り返ると、結婚をしたり、引越しをしたり、就職したり、またフリーランスに戻ったりといろいろあるにはあったが。
ここ10年ほど、あまり波風のない人生を送っているうちに、気がつくと40代が目前に迫ってきて愕然とする。数年前まで、自分が40歳になるなんて想像がつかなかった。いや、今もあまり信じられない。中の人格は中学生くらいのころから全然変化していないような気がする。とはいえ、最近iPhoneからustreamしようとして、スクリーンに映った自分の顔をみると、どこからみても40歳手前のオッサンの顔だったのだが。
最近、周囲の同年代の知人を見ると、自分を含めていろいろ悩んでる人が多いように感じる。徐々に人生の残り時間が意識されるようになってきて、それと比較して自分の今までやってきたことは果してこれで良いのだろうかと考えてしまうのかもしれない。こういうのを「中年の危機」っていうのかな? 違うかもしれないけど。
ちょっと気になってググってみた → ミッドライフ・クライシス(中年の危機)
いろいろ興味深いのだが、引用されていたユングの講義中の発言が、特に参考になる。
年をとれば、自分自身や世界などの両義性を知ることがきわめて重要になってきます。疑うことは知恵の始まりです。人生の価値を疑い始めることはきわめて重要であり、そうして世界の錯綜から自らを解放することができるようになるのです。若い人たちは疑いの中で生きることができません。人生に対して深刻な疑いをもてば、世界に入っていけなくなります。しかし成熟した人は世界からもっと分離すべきです。人生の半ばをすぎれば、それは完全に正常なことです。
この「人生の価値を疑い始めること」という部分に、なるほどなと思う。
若い頃は、自分の人生で一度くらいは、才能が花開き、大勢の人から評価され、社会的な地位が得られる時期が来るに違いないという、根拠のない自信のようなものが漠然とあった。でも、30代後半になったいま、もしかしたら一生そういう時期は訪れないのかもしれないと思うようになる。考えてみると、世の中の大半の人は世の中に広く知られることなく無名のまま死んでいくのだから、自分もその一人に過ぎないんじゃないかと考えるようになる。そうした現実が徐々にリアルになるにつれて、焦ってくるのかもしれない。
まあ、有名になることだけが人生ではないので、後半戦いかに自分にとって充実したことができるか、ということなのかもしれない。ただ悩んでいてもしょうがない。さっきのページの最後のセンテンスにぐっとくる。
この「危機」を乗り越えようとする過程で多くの人が体験することのイメージとして、「夜の海の航海(night sea journey)」があります。心が暗闇の中にあって、出口の光が見えず長らく低迷する状態です。しかし、航海がそうであるように、いつかは闇の世界から脱出する時が来ます。
そうなるといいなあ。
本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。
本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。本文をここに入れてみます。
まず最初に制作のためのテンプレートを下記からダウンロードしてください。
this.scene0.addEventListener(MouseEvent.CLICK, showScene0); this.scene1.addEventListener(MouseEvent.CLICK, showScene1); this.scene2.addEventListener(MouseEvent.CLICK, showScene2); this.scene3.addEventListener(MouseEvent.CLICK, showScene3); this.scene4.addEventListener(MouseEvent.CLICK, showScene4); this.scene5.addEventListener(MouseEvent.CLICK, showScene5); function showScene0(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_000.flv"; } function showScene1(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_001.flv"; } function showScene2(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_002.flv"; } function showScene3(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_003.flv"; } function showScene4(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_004.flv"; } function showScene5(event:MouseEvent):void { this.theVideo.source = "Popeye_forPresiden768K_005.flv"; }
昨日、Twitterのウィジットについてこのブログにメモしたら、なんだか急に更新意欲が出てきた。というわけで、久しぶり(調べてみたら、何と2ヶ月ぶり)にここを更新。
散々言い尽くされてきたことではあるので、いまさら表明することでもないのだけれど、Twitterを始めるとブログの更新意欲が激減してしまった。Twitterに嵌ってしまった多くの人が共通して感じている現象だと思う。
Twitterの存在を知ってまず驚くのが、140文字制限という枠組みだ。そんな少ない文字数じゃ何も語れないよと誰もが最初は思う。ところがいざ始めてみると、大概のことは140文字で事足りてしまう。そうすると、「なんだこれだけでいいじゃん」ということになり、今までブログに書き散らしていた文章は、何て冗長なものだったのかと思うようになる。
一度140文字の枠に慣れてしまうと、何かがあると、とりあえず140文字以内で書くことが習慣化して、それ以上書くこと自体が段々と億劫になってしまう。Twitterの成功の秘訣はこの140文字という設定が絶妙だったせいもあるのかもしれない。ちょうど、思いついたことをとりあえずそのまま書くのにちょうど良い分量。あまり短いと言いたいことが書ききれないけど、それ以上書くとなるともうすこしテーマを掘り下げないといけない。そして、単純な思いつきから長文へするにあたって、そのテーマについてさらに奥深く入りこんでいく作業が思いの外面倒くさい。書いているうちに飽きてしまって、結局アップしなかったりすることもある。
まあ、極端なことを言えば、日常の仕事でやっている大概のことは140文字で表現できる程度の内容だったりする。そんなに頻繁には、根本的なところからロジカルに考えるようなことはしていない。大抵は一度やったことの繰り返しだったり、普段やっていることにちょっと変化を加えたりしながら、日々の仕事をこなしている。
Twitterも楽しいけど、たまにブログくらいの文章は書くようにしないと、深い思考をすることなくどんどん条件反射で日々が過ぎてしまって、ちょっと良くないかもしれない、と思った。
でも、ここまでの内容を、もしTwitterで
「Twitterの140文字の枠組みだけで考えてたらマズいよな。たまにはブログも更新しよう。」
と書けば済んでしまうような気もする。うーむ。
HTMLソース
<div id="twitter_div"> <ul id="twitter_update_list"></ul> <a href="http://twitter.com/tadokoro" id="twitter-link" style="display:block;text-align:right;">follow me on Twitter</a> </div> <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script> <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/tadokoro.json?callback=twitterCallback2&count=5"></script>
HTMLソース
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0" width="290" height="350" id="TwitterWidget" align="middle"> <param name="allowScriptAccess" value="always" /> <param name="allowFullScreen" value="false" /> <param name="movie" value="http://static.twitter.com/flash/widgets/profile/TwitterWidget.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#000000" /> <param name="FlashVars" value="userID=9986412&styleURL=http://static.twitter.com/flash/widgets/profile/smooth.xml"> <embed src="http://static.twitter.com/flash/widgets/profile/TwitterWidget.swf" quality="high" bgcolor="#000000" width="290" height="350" name="TwitterWidget" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="userID=9986412&styleURL=http://static.twitter.com/flash/widgets/profile/smooth.xml"/> </object>
HTMLソース
<div style="width:176px;text-align:center"> <embed src="http://twitter.com/flash/twitter_badge.swf" flashvars="color1=16594585&type=user&id=9986412" quality="high" width="176" height="176" name="twitter_badge" align="middle" allowScriptAccess="always" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br> <a style="font-size: 10px; color: #FD3699; text-decoration: none" href="http://twitter.com/tadokoro">follow tadokoro at http://twitter.com</a></div>
HTMLソース
<script src="http://widgets.twimg.com/j/2/widget.js"></script> <script> new TWTR.Widget({ version: 2, type: 'profile', rpp: 4, interval: 6000, width: 250, height: 300, theme: { shell: { background: '#eeeeee', color: '#666666' }, tweets: { background: '#ffffff', color: '#333333', links: '#0000ff' } }, features: { scrollbar: false, loop: true, live: true, hashtags: true, timestamp: true, avatars: false, behavior: 'default' } }).render().setUser('tadokoro').start(); </script>
授業内で取り上げたプログラムのソースコードは、下記からダウンロードしてください。