kerberos: avril 2008アーカイブ

長らく「coming soon」でごまかしていたトップページの更新をすることにした。とは言え、Adobe Photoshopで適当なロゴを作成してアップロードしただけだ。とりあえず、正式公開というところか。そもそも、レンタルサーバーを借りた目的がブログではないので、どうも身が入らないというのは事実だ。新しいトップページのイメージはこんな感じ

Web2.0なんて、やや乱暴に言えば、情報のアップストリームが急激に増加しただけのことだ。その結果、インターネットは、露出狂的な個人情報の最終処分場と化した。ゴミを入れればゴミが出るというのは、情報科学では昔から知られた事実だが、昨今の検索エンジンは、こうした状況には、ほとんどお手上げのように思われる。などと言いつつ、今夜も「情報のゴミ」をアップロードしている訳だが。


数日前から、Adobe Flex Builderの60日限定体験版でプログラミングの真似事をしている。とりあえず作ったのがこれ。


サイドバーに表示できるサイズのものにしてみた。ブログに電卓というのも何だか無意味なように思われるが、子供の頃から暗算が苦手の私には、救世主なのである。なにせ、未だに二桁以上の足し算と引き算は苦手(というか出来ない)。買い物をしても釣り銭が正しいかどうかは全く判らないし、端数を小銭で出すというのも苦手なので、財布は釣り銭のコインでいつも満杯だ。

こういうのを学習障害(LD)ということを最近知ったが、そう言えば、小学生の頃から算数のドリルと、漢字の書き取りテストの点数は惨憺たるものだった。一部の専門家によると、この手の学習障害は、左利きと相関関係があるそうだが、私も強度の左利きなので妙に納得してしまった。
過日、紹介したCELLABのムービーだが、AVI形式なので、ファイルがダウンロードされ表示が始まるまでに時間がかかる。しかも、WindowsMedia等の外部プログラムで見ることになるのも些か面白くない。そこで、フラッシュのストリーミングビデオに変換してみたのがこれ。ピクセル単位の精細度と、色の鮮やかさでは負けるが、ブログ内に埋め込めるのが利点だと思う。

 

方法は少々複雑だが、心覚えのために以下に手順の概略を記しておく。

1)CELLABを用いてAVI形式の動画ファイルを作成する。これは「File」?「Make Movie」で簡単にできる。

2)作成したムービーファイルは、15f/secなので、通常だと表示が速すぎて状態遷移が良く判らない。このため、VirtualDubを用いてフレームレートを3f/sec程度に落とす。「Video」?「Frame Rate」で適当な値に設定すると同時に「Video」?「Direct stream copy」を選択。

3)これでゆっくりとした表示のAVIファイルが生成されるので、これをAny DVD Converterを用いてflvファイルに変換する。このソフトには無料体験版があり、変換対象の動画再生時間は3分に制限されるが、このような用途には、十分である。「出力形式」を「Flash 動画{*flv)」に指定するとともに、プロパティウィンドウで、ビデオサイズを元のAVIファイルのそれと合わせること。

4)生成した「*.flv」ファイルをAny FLV Playerで読み込む。「Publish」?「Publish Options」でPlayer file nameとFlv video URLを指定し、SizeのリストボックスからCustomizeを選択してWidthとHeightを元のAVIファイルのそれに設定しOKボタンを押す。

5)出力先に指定したフォルダに、「*.flv」ファイルと「player.swf」ファイル、および「flvplayer.html」ファイルが生成しているので、「*.flv」ファイルと「player.swf」を4)で指定したURLにアップロードし、「flvplayer.html」にアクセスする。動画のプレビュー画面と、埋め込み用のHTMLスクリプトが表示されるはずなので、これをブログ等の埋め込み場所に貼り込む。

以上で、完了である。5)の段階で動画プレビューが表示されない場合は、4)でURLが正しく設定されていないか、4)で設定した場所に「*.flv」ファイルと「player.swf」がアップロードされていないかのどちらかである可能性が高い。5)で貼り込んだHTMLファイルの内容を手動て修正する。


Veoh.comに沖浦啓之監督、押井守脚本の「JIN-ROH」のドイツ語版ビデオクリップがアップロードされていた。



この作品は、アニメーションとしては、私の最高のお気に入りの一つである。もちろん、日本映画だが、1999年のファンタスポルト国際映画祭で審査員特別大賞と最優秀アニメーション賞を受賞するなど欧州を中心に大変に高い評価を受けた。このビデオクリップは、ドイツ語吹き替え版であるが、ドイツ語の硬質で鋭く尖った響きが、作品に一層の緊迫感を与えているように感じられる。欧州での高い評価は、作品の完成度の高さもさることながら、そこにグリム童話の「赤ずきん」のテーマが通奏低音のように流れていることとも無関係ではあるまい。

ストーリーは昭和30年代の不安定な日本の社会情勢を背景に、都市ゲリラ化した「セクト」と呼ばれる反政府組織と、それを取り締まる制圧部隊である「首都圏治安警察機構」との対立を描いたものだが、それは単なる物語のうしろだてで、組織に縛られた個人が、その内面に抱えざるを得ない矛盾と葛藤こそが、この作品のライトモチーフなのだと思う。組織の冷徹な論理と個人の人間的な心情の対立という不条理が、ノスタルジックなリリシズムの中に厳然として立ち現れ、物語は、もはや回避不可能な終局へ向けて一気に収斂するのだ。

この作品を観て、頭に浮かぶのはライプニッツの「可能世界」という考え方だ。戦後十数年の日本が、もしかしたらそうなっていたかも知れない架空の現代史が、そこには描かれているように感じられるからである。事実、私が小中学生だった頃には、日米安保闘争や、東大の安田講堂事件があり、高校に進学しても、ヘルメットをかぶり「タテカン」の前で「アジビラ」を配っていた上級生の姿は、珍しいものではなかった。大学に入学した後、最初の二年間を過ごした教養課程のキャンパスで、ある日の昼休みに過激派の内ゲバがあり、鉄パイプでめった打ちにされた活動家が死亡するのを目にしたことすらある。こうした実体験があるからか、作品に妙なリアリティを感じてしまうのかもしれない。

私自身は、上記のようなゲバルトの主役であった団塊の世代より少しだけ若いが、彼らの当時の社会認識は、どうしても理解できなかった。武力闘争により社会の矛盾が解決できるなんてとても考えられなかったし、世の中が少しだけ豊かになり、治安が改善されつつあった時代に青少年期を過ごしたことから、社会問題に対する関心がそもそも希薄だったこともあるだろう。マスコミは、私たちの世代を「ミーイズム」と呼び批判したが、そんなことは当人達にとっては、どうでも良いことであった。

これは、存外、団塊の世代の皆様についても言えることではないかと思う。結局、現代日本の中枢をで権力をふるっているのは、まさにこの団塊の世代の方々だからである。ミーイズムの世代と異なるのは、歩道の敷石や火炎瓶を機動隊に向けて投げつけるという通過儀礼を経なくては、自ら社会を変えるという妄想から抜け出せなかったことだけだ。彼らは、そうしたことを通じて、自らの方法論によっては、結局何も変えることができないとういうことを学んだ。そうして熱病から回復したかのような涼しい顔をして、かつて彼らが蛇蝎のごとく嫌っていた官僚機関や資本家の元に就職したのである。まるで餌をくれる主人におべっかを使う犬のように。変わったのは彼ら自身であったというのは、歴史的皮肉だろう。変わらなかったという条件での可能世界もあり得たかもしれないからである。まさしくJIN-ROHの世界のように。


TETRIS.JPG
雨の一日だった。肌寒いので軽く暖房を入れた部屋で、テトリスで遊ぶ。プラットフォームマシンはNINTENDO DSだ。ただし、ゲームカートリッジは、DS専用ではなくゲームボーイアドバンス用のものだ。DS専用のものも手元にあるが、BGMが気に入らない。アドバンス用のBGMの、ちょっとミニマルテクノ風なのが好きだからだ。

元々、ポータブルゲームマシンには興味がなかったのだが、例の「大人の脳トレ」ブームでDSを衝動買いしてしまった。しかし、単純計算を延々と繰り返したり、画面に表示される単語の記憶数を競ったりして、「脳年齢」なるものの若返りを図るというこのソフトの馬鹿馬鹿しさに気付いて、やる気が失せてしまった。

最近のゲームソフトは、CGを駆使した高精細かつ高速なものが多いようだが、正直言って、どこが面白いのか良く判らない。やはりゲームのルールは単純なのが一番だ。そんな意味でテトリスは、1980年代後半の日本初登場以来、私のお気に入りのゲームなのである。平面を予め決められた数種類のブロックで充填するという極めてミニマルなルールのゲームで、当時のソヴィエトで開発された時には教育目的だったそうだ。

前述のアドバンス用のカードリッジは、近所のDVDショップで中古品を安価で手に入れたものだ。前の持ち主がプレイした記録が残っており、購入時のHIGH SCOREは、35万少々であった。DSでプレイし始めた時には、この数字にはとても到達できなかった。そもそも、十万オーダーにはとても及ばないという情けない力量だった。しかし途中から、面白いことに気付いた。それは、ゲームの初期設定で、レベルを「最高」に、そして難易度を「Very Hard」に設定した方が、結果として高得点となるという一見矛盾した事実である。

考えてみれば、ハイリスク・ハイリターンということなのだろうが、この設定でプレイし始めてから得点は軽く数十万ポイントに跳ね上がった。そして、つい先日、855ライン、562万ポイントという当初では考えられなかったような結果を得ることができた。これが、どの程度のものなのかについては、判らないが、少なくとも、前の持ち主より一桁上であることは確かだ。

調子が良かったこともあるが、300ラインをクリアするあたりから、私がテトリスをプレイしているのか、テトリスが私にゲームを行わせているのか判らないような状態になる。ゲームのルールは、極めて幾何学的かつ数理的なのだが、プレイしている本人の頭は、そんなことは考えていないようだ。ほとんど脊髄反射的にマシンを操作しており、自分で止めようと意識しない限り、いつまでもプレイし続けることができるような状態となるのだ。こういうのをトランス状態と言うのかもしれない。


Cellab

| | コメント(0)
Islam5.jpg久しぶりに、セルオートマトンシミュレータの「CELLAB」でムービーを作ってみた。有名なのは、ジョン・コンウェイのライフゲームだが、ルールを変えればいくらでも面白い挙動を示すものを発見することができる。今日は、自作のルールを適用して、ちょっと面白い幾何学模様を生成するセルオートマトンで遊んでみた。

上に示す画像がそれだが、幾何学模様の面白さを示すためには、無圧縮の画像でないとダメなので、AVIファイル形式となっている。WindowsMedia形式では、圧縮に伴う画像の劣化があり、緻密な変化の面白さが判らないのだ。ダウンロードには少し時間がかかるかもしれないが、なかなか面白いので乞うご期待である。

20年ほど前は、このような計算負荷の重いシミュレーションがPC上で可能になるとは、夢にも思っていなかった。当時は、セルオートマトンに特化したPC用のISAボードが、MITで開発されており、私も大枚をはたいてアメリカから個人輸入して使ったものだ。セルオートマトンに特化したボードなので、速度は、当時の汎用スパコンのCRAY-2並みと言われていた。このハードウェア処理によるシミュレーションのパラメータを設定するのに用いられていたのがFORTHという言語だった。私がこの言語に接したのは、その時が初めてであったが、実に奇妙な、そして融通無碍な言語であった。

それはさておき、その後、PCのCPU処理速度が向上するにつれて、ハードウェアに頼らなくても汎用のCPU上でシミュレーションが可能となった。そのためのソフトウェアも市販されるようになり、何と、CADメーカとして有名なAutodesk社から「CA-LAB」というのが発売されていた。まだWindowsが出現する前のことなので、IBM互換PCのPC-DOS上で、これを動かして遊んだものである。

そして、現在、Windows化されたCA-LABが、前述のCellabである。CA-LABは、セルオートマトンのルールをCやPascalを用いて自分で定義することができたが、Cellabも同じ手法でルールを定義できる。上記の画像に用いられているルールは、私がCで書いたものであり、その内容は以下の通りだ。


#include "jcrule.h"

int jcrule(oldstate,     nw,  n      , ne,
                              w,   self,     e,
                              sw,  s     ,  se
            )
int oldstate, nw, n, ne, w, self, e, sw, s, se;
{
    int count;
    static int firstime = 1;

    if (firstime) {
       firstime = 0;
           strcpy(patreq, "islam");
           strcpy(palreq, "islam");
    }

    count = (nw*2 + n*3 + ne*2 + w*3 + e*3 + sw*2 + s*3 + se*2)%8;


    if(((oldstate >> 2) & 0x01) == 0) {
        if(count == 0 || count == 2 || count == 4) {
            if(self == 1) {
                return 7;
            } else {
                return 5;
            }
        } else {
            if(self == 1){
                return 6;
            } else {
                return 4;
            }
        }
    }
    if(((oldstate >> 2) & 0x01) == 1) {
        if(count == 0 || count == 2 || count == 4){
            if(self == 1) {
                return 3;
                } else {
                return 1;
                }
            } else {
            if(self == 1) {
                return 2;
                } else {
                return 0;
                }
            }
        }
}

変数等の詳しい内容は、前述のCellabのサイトにマニュアルが掲載されているので、興味のある人は、参照すると良いが、何はともあれ、オートマトンのムービーを見てみることをお勧めする。こんな単純なルールからは、思いもよらない多様なパターンが展開されるのに驚くことだろう。因みに、幾何学的な文様を次々と生成するので、このルールを「Islam」と名付けた。決定論的でありながら、予測不可能であるというのが、セルオートマトンの面白さだと改めて思う。




アーカイブ