シムーン #5-#12

アーエルがおじいちゃん子であるということは出し惜しみ気味で,判ってくるにつれ彼女がシムーン乗りになった理由としてそれはまるでアリカ=ユメミヤであるがごとく「じっちゃが言ってた」とかいかにも言いそうな勢いです.泉に行かなくていいからだという普段アーエルが主張するところの理由は,聞く人へ与える衝撃や理屈の単純さからして飛び道具で,その口からさっと出せる使い勝手をたぶんこの人は気に入ってるのではないかなぁ.

自分がここにいる理由というのは説明できないとどうも具合が悪いものです.好きだから,と答えたらなぜ好きなのか,どう好きなのかを聞き返される始末です.自分のキャリアや趣味についてはそれを選んだ理由についていくつもお話を用意しておくもので,生活のほとんどの時間はそのいずれかのお話の上にいたほうが安心できるように,おそらく人はできています.僕の中から出てきたお話だから全く嘘ということはないと思うけど,いくらか真実らしいものを含んでいるだろうそういう話がないと,僕だけじゃなくいまから進路を決めようとしてる人が聞く分にも安心できなくなるんじゃないかと,就職活動をする人たちのそばにいると思います.修士1年のこの時期に始まって修士2年のこの時期に決まるというわけで,なんだ一年中どこかで就職活動の行われる場というのが大学の研究室で,そのなかで時々,博士課程というのが視野に入ります.博士に進学した人となると修士のころから研究が好きで好きで授業にも真面目に出て云々と思われがちですが,そんな真っ直ぐ行くもんかい! でもまあそれをどうにか,どこかに真実も交じっていてくれるであろう魅力的な人生として仕立て上げて語ってみせることも,僕のやるべきことではないかと思います.真実,とか言っちゃったけど,好きなことを持って好きなことをして生きて自分がそうであることに日々感動する,という姿は理想的な絵としてこの世のどこかにあるよう僕は願います.ただし,日々感動,のあたりは気まずいので誰も居ないところでひとりこっそり感動してください.ううん,やっぱ自分では気付いてないくらいがいいです.

さて,アーエルがシムーン乗りになった理由というのはおじいちゃんとの思い出だけじゃなく,たくさん掘り起こせるんじゃないかと思います.17年生きてりゃいろいろあって,それで今そこにいるわけだから.ただ,泉に行かなくていい,っていう思いつきが強力すぎて,自分でも真に迫っていると思えちゃったのではないかと,そんな風に見えます.

他にもマミーナだとユンやロードレアモンがそこにいるからというのが大事で,生まれ育ちについて語る部分は飛び道具なんじゃないかと.ちなみにアーエルが速射力重視でマミーナのは火力ね.それで飛び道具ばっかりじゃなくぜんぶひっくるめてね,自分がその人生であることの真実のようなものは,どこかに交じっていてくれたらいいなあと思います.

疏水太郎

スプライトの仕様

  • スプライトの作成者,およびスタイルは各ページのsprites.datへ保存.sprites.datはStorableによる以下の%hashのダンプ
    • $hash{‘sprite_id’}{‘style’} = “left: xxx; top: xxx; width: xxx; height: xxx; z-index: xxx;”;
    • $hash{‘sprite_id’}{‘author_id’} = “public” or “admin” or “$userid”;
    • $hash{‘sprite_id’}{‘public_password’} = crypt($password);
      “public” ユーザの場合の削除,編集用パスワード
    • $hash{‘sprite_id’}{‘created_time’} = $time; #ページ作成日
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
      $time = sprintf(“%04d%02d%02d%02d%02d%02d”, $year+1900, $mon+1, $mday, $hour, $min, $sec);
    • $hash{‘sprite_id’}{‘modified_time’} = $time; #ページ修正日
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
      $time = sprintf(“%04d%02d%02d%02d%02d%02d”, $year+1900, $mon+1, $mday, $hour, $min, $sec);
  • 要素の中身(innerHTML)は $sprite_id.spr ファイルへ保存

疏水太郎

ロック

lock_nstore, lock_retrieve を使うことにする.flock()の実装されてないシステムだと動かないけど,そこを乗り越えるほど Storable に愛があるわけでもなかった.ver.1.0 まで Storable ベース,以降は SQLite になる予定.

こうしたシステムでは最も辛気臭い箇所であるページ管理,ユーザ管理,ログインまわりが完成してほっとしました.片手間とはいえ一ヶ月かかったか.くやしい.

さて,あとはこれまで作ってきたフロントエンドのページと整合をとるだけです.

疏水太郎

人生ゲームについて思うこと

人生ゲーム盤面カスタマイズ

これだっ! 小さい頃に自分だけのすごろくって作りませんでしたか.通ることの出来る道は限られているのに,4人一緒に遊べばルーレットのため止まるコマがそれぞれ異なったり,お互い邪魔することもあるので,毎回物語の展開が変わります.対話的な物語生成器というのはまずは人生ゲームを作るのが身近なところであって,そのとき守るべきポリシーは次のようなものになるはずです.

  1. 大局的に見てマス目の内容に流れを持たせる.人生ゲームの場合,就職から始まって結婚,そして余生を過ごすまでという大きな流れを持つ.
  2. 局所的に見てマス目の内容が突拍子なくともあまり問題のない題材を選ぶ.人生万事塞翁が馬.恋はいつだって唐突だ.(ときめきメモリアル2人生ゲーム
  3. 人生がループしていても,深くは考えないこと.「台風で吹きとばされスタートにもどる」

ところで,カレンダーというのはたいした発明で,とぎれることのない時間の流れをマス目で区切ることによって,ジャンプしやすいものとしてくれました.カレンダーを見ることなしにある出来事が何ヶ月前のいつの日の出来事だったかなんてうまく思い出せません.逆にいうと,僕らが感じている過去のいつかというのはカレンダーの過去の日付が指すものとは異なっているということかも知れません.ともあれ,明示的なある点へ時間を戻すという考え方は,自分の頭の中だけで考えているよりは,カレンダーを見たり想像したりしながらのほうが発想しやすいものであると思います.そうすると,人生ゲームの罰則の一つであるマス目を戻ること,つまり時間がある特定の点へ巻き戻されるという発想は,カレンダーのような図表の発想を伴った,空間的なものであると言えます.そしてその空間の醍醐味を追求したところに「台風で吹きとばされスタートにもどる」というふざけたマス目はあって,台風で新卒からやり直しってどんなでしょう.しかし,自分のコマをスタート地点まで一気に戻すときのがっかり感ったらなくて,こうしたダイナミックな移動は盤面上で紡がれる物語をとても面白いものとしています.

「虹色町の奇跡」稼働から10年が経とうとしています記念.まぁ,あまり関係ないけど.

疏水太郎

ページのプロパティ ver 0.2

config.dat : ページのプロパティ.Storableによる以下の%hashのダンプ.

  • $hash{‘author_id’} = $userid; #制作者のid
  • $hash{‘page_title’} = $pagetitle; #ページのタイトル(utf-8)
  • $hash{‘sprite_autobr’} = 0 or 1; #自動改行
  • $hash{‘sprite_autolink’} = 0 or 1; #自動リンク
  • $hash{‘sprite_autoimage’} = 0 or 1; #自動添付画像表示
  • $hash{‘sprite_html’} = 0 or 1; #一部HTML利用可能
  • $hash{‘page_width’} = $worldwidth; #ページの幅
  • $hash{‘page_height’} = $worldheight; #ページの高さ
  • $hash{‘page_autosize_x’} = 0 or 1; #ページの自動サイズ変更(右方向)
  • $hash{‘page_autosize_y’} = 0 or 1; #ページの自動サイズ変更(下方向)
  • $hash{‘page_bgcolor’} = “#ffffff”; #ページの背景色
  • $hash{‘footer_bgcolor’} = “#ffffff”; #フッター領域の背景色
  • $hash{‘background_image’} = $imagefilename; #ページの背景画像
  • $hash{‘created_time’} = $time; #ページ作成日
    ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
    $time = sprintf(“%04d%02d%02d%02d%02d%02d”, $year+1900, $mon+1, $mday, $hour, $min, $sec);
  • $hash{‘modified_time’} = $time; #最終ページ修正日

permission.cgi : ページのパーミッション.Storableによる以下の%hashのダンプ.

  • $hash{‘read_page’}{‘public’} = 0 or 1; # 閲覧権限
    $hash{‘read_page’}{$userid} = 1;
    $hash{‘read_page_group’}{$usergroupname} = 1;
  • $hash{‘write_plainsprite’}{‘public’} = 0 or 1; # 通常スプライト作成権限
    $hash{‘write_plainsprite’}{$userid} = 1;
    $hash{‘write_plainsprite_group’}{$usergroupname} = 1;

  • $hash{‘write_attachedsprite’}{‘public’} = 0 or 1; # 添付スプライト作成権限
    $hash{‘write_attachedsprite’}{$userid} = 1;
    $hash{‘write_attachedsprite_group’}{$usergroupname} = 1;
  • $hash{‘write_supersprite’}{‘public’} = 0 or 1; # スーパースプライト作成権限
    $hash{‘write_supersprite’}{$userid} = 1;
    $hash{‘write_supersprite_group’}{$usergroupname} = 1;
  • $hash{‘create_page’}{‘public’} = 0 or 1; # 新規ページ作成権限
    $hash{‘create_page’}{$userid} = 1;
    $hash{‘create_page_group’}{$usergroupname} = 1;

参照: ページ・ユーザ・権限

疏水太郎

ビデオゲームについて思うこと

ビデオゲームの未来についてよく想像することがあって,それは一体いつまで人がこの平面芸術にかかずらうことになるのかな,ということです.絵や写真や映画でもそうなんですが,特別なデザインがなされない場合,額縁やディスプレイで切り出された平面の世界は僕の動きに対して日常とは異なる連動をします.ふだん実世界のものは僕がいろんな方向から見ようとするとその動作に連動して立体的に見えが変化します.一方,ディスプレイ上の世界のものはディスプレイの側の立体的な見えの変化に伴う写像として,回転や拡大縮小,シアーといった2次元的な座標変換を受けた姿を見せることになります(それをメタにアニメ表現するとD4プリンセスとかまじぽかのエンディング映像になります).人がゲームをするという身体運動とともにどのような視覚世界がそこにあるのか,というのを調べてゆくことは相当手間のかかる仕事で,実験室では状況が限定されますが,僕ら実際は恐ろしく雑多なプレイスタイルを持っていて,ディスプレイの大きさ,僕とディスプレイの距離,寝転んでいるか起きてるか床か椅子かといった見る角度,携帯ゲームも含めれば手で持つ角度と距離が異なってきます.家庭用ゲーム機のコントローラーとアーケードのコンパネとニンテンドーDSと携帯電話各機種の操作系は明らかに異なっています.表示デバイスによって明るさや色合いも異なります.主にガンマ値の差について,多様なデバイスを使い分けているPDA絵描きの間では,デバイスごとに自分の絵が全く異なって見えることについていつも怨嗟の声が上がっています.そして,どのようにプレイ中は体を動かすのか,おそらくはまるで違う.そんな話をこれまでも何度か書き散らしてきました.ことはゲームに限った話ではないだろうと映画に詳しい友人に尋ねてみたところ,映画館の大型スクリーンでは画面のまんなかが注目されるけれど,ビデオでは画面の端まで目を配ることが簡単なので,映像の細かい仕込みにも注目できる,という答えが返ってきて,なるほど,そういうことはありそうだと僕も思いました.ただしビデオに関しては巻き戻しが可能になったことも大きいと思われます.

たとえば First Person Shooting (FPS) を一人称たらしめてるのは,いまのところ小説が僕や私といった一人称表現を用いるのに似た,一人称的な視野の絵が表示されているという観念的な理由であると思われます.素朴にFPSっていう言葉を聞くと,プレイヤーは半透過型HMDをつけることにして,実世界に敵のCGを重ね合わせて,僕ら走り回りながら撃ち倒してゆく図を想像するのだけど,どうでしょう.ジリオン銃でももちろんいいよ.今のFPSにおける一人称っていうのは絵によって強化された一人称小説くらいの意味しか持たないです.それでようやく初めの話に戻りたいのですが,僕らの身体運動からは日常的な意味合いでは切り離されてると言える,いわば観念的な平面の芸術について,僕らはいつまで付き合うことになるのか,あるいは付き合うことができるのか.ここはうまく根拠を示すことができないのですが,アーケードゲームにおいても学術的にはヒューマン・コンピューター・インタラクション(HCI)分野で発表されてきたような考え方が数歩遅れで導入されて,ガンシューティングにおける身体のセンシングや,カードやタッチパネルを用いたゲームの操作法などが,研究云々を引き合いに出すのがあほらしいほど当たり前になってきて,そうするとHCI研究者がこぞってバーチャルを捨てて実世界とヴァーチャルの境界面へ駆け出してる(ように僕には見える)昨今,これからはゲームにも相当,センシングとアクチュエーターに代表される実世界的インタラクションの要素が入ってゆくのではないかなぁ,と思いました.EyeToyであるとか剣神ドラゴンクエストだなんて,コンシューマー向けでもここまで出来るのかって,僕はあごが落ちました.ファミリートレーナーや家庭用DDRマットからは一世代違うセンスです.いやセンシングか.

僕らの運動と視覚が普段の生活どおりに連動するような世界がビデオゲームに訪れるとき,それは今までとは別の視覚世界を提供するという意味においてもうビデオゲームではない別のゲームであると思われます.それが実現する日はまだ遠いだろうけれど,たとえばEyeToyにせよ剣神にせよあれはプレイヤーとセンサとの位置や距離を制限する必要があって,身体の運動を持ち込むことによる連動感というのは実は緻密な位置合わせによるものであることから,それは連動感という心地よさから想像されるものとは反対の,つまりプレイスタイルに枠をはめるものであるということになります.寝転んで剣神ドラゴンクエストをするのは寝転んでギャルゲーをするよりはやりにくそうです.そもそもセンサがうまく反応してくれないような気がします.もちろん,枠があるから面白いということもよく言われます.そして,日常どおりに運動と視覚が連動することを自由と呼んでいいならば,こうした枠をはめ続けた先に,いつかまた別の自由が待っているということになります.

もう少し研究の話をすると,ビデオゲームといえば視覚的な表現に注目されるところだと思うのですが,僕はビデオゲームにおける視覚的表現の話には深入りしたくないと思います.視覚的表現,といってもアドベンチャーゲームにおける立ち絵表現のような話はアニメーション表現の研究へ譲ったほうが筋が良いと思います.それでアクションゲームにおいて,もう少し細かく言うならFPSであるとかレーシングゲームであるとかFPSではないシューティングゲームなども含めて,プレイヤーの操作を反映して視覚的表現が変化する,というのはビデオゲームらしい特徴の一つだと思うのですが,ただの表現ならまだしもプレイヤーとのインタラクションを抜きに考えられそうもないことについて,上ではプレイスタイルと呼びましたが,その多様でありかつ技術の進歩に沿ってすぐ変化してしまうところは時間のかかる分析的な科学研究をするとすれば相当難しいということになります.こうしたビデオゲームにおけるインタラクティブな視覚体験について,分析的な意味での本質を科学実験によって取り出して,学術の世界に積み上げてゆくという手法をとるとすれば,の話.そこで僕はこうしたインタラクティブな視覚の世界について興味を持ってはいるのですが,一方でゲームに実世界的インタラクションが導入されることについて前倒しで評価しているので,それとの比較において特殊であってもしかしたら消えてゆくかもしれないとすら想像している平面芸術に関するそれにはコストをかける気持ちになれないでいます.もっと制約条件をつけていいなら,僕らのプレイスタイルとかいう生態学的な要素ははずして,実験室環境で生理的な反応を分析するということはできるでしょうし,こちらのシンポジウムの発表者にもそういう方がおられるように見受けます(この日は東京にいるけどちょうど他の用件の時間帯と重なってるので参加できません).児童心理学や教育学について僕はまともなコメントが難しいのだけど,定性的な知見について面白いものが出てくるのではないかと期待します.

生態学的な話はいつでも面白いと感じます.文化人類学ではなく生態学と呼びたい気持ちは僕がギャルゲーの彼ら彼女らと対峙するときにあって,僕の部屋にある小物や本など,つまりグッズとか同人誌というやつを巻き込んだ彼ら彼女らの生態と僕の生態,そこに人類という区分があまりそぐわないような気がしてこういうのですが,その一緒に過ごしてゆく暮らしぶりの変化というやつを,ゲームをする姿や態度のことも含めて長い目で見つめてゆく,というのが研究者としての僕なりのゲームとの接点ではないかなと思います.ビデオゲームに限らずおそらくは今後生まれてくるだろう彼ら彼女らをひとまとめに含めた,それ.

ともよちゃんさんの「モニターを介した体験」あたりについての僕が考えてること.コメントというか例によって僕の話ばっかりでごめんだけど.

疏水太郎

スタンダードな青春

高校生の毎日というのはほっといてもいろいろあるもので,そうであることをスタンダードな青春とひとくくりにして呼ぶことはできると思うけれど,そのとき当事者としては毎日の雑多なあれやこれやにいちいち追われているわけで,それらをひとつにまとめられてはたまったものではないです.そうであったとしても,僕がスタンダードな青春という言葉を使うときの事情というのは,彼ら彼女らと同じようにものを見ようというのは年寄りの冷や水であるので,ちょっと距離をおいて関係することしかできない,そこで年をとると悪いところばかり子供に戻りまして好かれたい人にイジワルするというあれでしょうか,かまって欲しくて,それはスタンダードな青春だ,なんて言い方をしてしまうのね.おとなしく黙ってりゃいいのに.

宇宙人,未来人,超能力者や世界の改変,あるいは思惟生命でもいいんですが,そういう超常的な要素を抜きにしてどうやっておはなしを納得してゆくことができるのか,というのが sense off 以来の僕の楽しみとなっています.例えば宇宙人だということもある人の魅力のひとつなんでしょうけれど,そういうぎらぎらしたところの探求はハルヒのような若い人に任せて,だけど,じつは宇宙人でないと考えたとき,宇宙人を信じてない人として見たときにも,その普通の中学生や高校生としての活動を,自分自身のそれから時を経て歳が離れてから見るときにようやく愛しさを感じるものとして,興味深く掘り起こしてゆくことが出来るものと思われるのです.

アニメは見てないんですが,たまたまさっき谷川流へのインタビューを読んだので,某所へのご参考までに一部引用.

ーーー「サムデイ イン ザ レイン」をご覧になっての感想は?
谷川 この話では,小説の完全1人称視点を崩し,部分的に3人称視点にして脚本を書きましたが,実際に見ると「なんてスタンダードな青春をしているんだろう」と思いました.
(メガミマガジン 2006/8)

谷川流がどういうつもりでスタンダードな青春という言葉を使ったのかは判らないし,元のアニメも知らないのだけど,たまには3人称の冷や水な気分になったのかもしれないです.

疏水太郎

少女地獄

能登麻美子とは関係なく,殺人リレーの小嶺麗奈.

少女バスガイドと聞いて,戦後間もない頃のバスの女車掌さんの話であるところの「ユメノ銀河」を思い出しました.舞台は玄海バスなので博多のイメージ.当時,バスの女車掌は憧れの職業であったようなので,バスガイドじゃなくてセーラー車掌さんってことはないかなぁ.いやしかし,そちらは明治時代か.

ぐるぐるしているうちに,ユニフォームメーカーによる素敵ページをみつけました.ユニフォーム研究室の文章がなかなかに熱い.女車掌さんのユニフォームもここにあります.小嶺麗奈が着ていたのもたしかこんなだったか.

疏水太郎

データ形式のメモ

  • $userid:ユーザ名.0-9a-zA-Z-@_ からなる文字列.
  • $password:パスワード.上記に加えて # % & ( ‘ ) * + ” . / : ; < = > ? [ ] ^ ` { | } \ を利用可能.最大8文字→crypt().
  • $usergroupname:ユーザグループ名.utf-8で定義される全ての文字.
  • $usergroupnameenc:URLエンコードされたユーザグループ名.
  • $pageid:ページid(ディレクトリ名).日付+ランダム英字2文字.060717aB
  • $pagetitle:ページタイトル.utf-8

  • authentication.cgi : 認証データ.Storableによる以下の%hashのダンプ.
    $hash{$userid}{‘password’} = crypt($password);
  • usergroup_$usergroupnameenc.cgi : $usergroupname におけるユーザリスト.Storableによる以下の%hashのダンプ.
    $hash{$userid} = 1;
  • usergrouplist.cgi : 全ユーザグループリスト.Storableによる以下の%hashのダンプ.
    $hash{$usergroupname} = 1;

データベースにURLエンコード後の値を入れてしまうと,検索とか後々面倒になるということに留意.

疏水太郎

ネギま! #1

アニメ原理にも程はあって,30人がみんな違う髪の色というのに圧倒されます.女子中学生がこれだけいたらそりゃあ見た目にもこれくらいやかましいわけです.わはは.かわいい.

そして双子だけが同じ髪の色なのね.髪の色によって唯一さや同一さを語り得るこの世界において,わざわざ31人がみな異なる声優であるということにも人はもっと驚いていいと思います.

疏水太郎