手相では、CD-DA も使われました。
System32 から CD 制御して、音を流すのね。別に CD-ROM とかではなく、単に音楽再生しているだけ。
この事は以前に書いていますね。
企画の人から、占いの説明などをアニメっぽい動きで説明するから、音に合わせて動かしてね、と言われていました。
CD には、すでに音楽と一緒に、絵コンテに合わせたタイミングでナレーションなどが入っています。
#絵コンテには、アニメーションのタイミングを秒単位で指定してありました。
さて、音源が基板上にある物であれば、「音と映像」を同期させるのは、それほど難しくないです。
映像に音をあわせたいなら、効果音を出すようにサウンドドライバに指令を出すだけ。
逆に、音に合わせて映像を動かすなら、音楽の中に「タイミング」を示すデータを入れておいてもらって、サウンドドライバからタイミングを教えてもらいます。
でも、CD に合わせて、となると、タイミングの目安となるものがなにもありません。
安いポータブル CD プレイヤー買ってきて、音を聞きながら絵コンテに合わせてキャラを動かします。
何度も何度も、動かしながら調整していくしかない。
#この時点では、まだ CD を System32 から制御する基板を貰ってなかったように思います。
だから、自分で CD プレイヤー買うしかなかった。
…デザインの人も、同じ絵コンテ見て絵を描いているのですが、どう考えてもこの動きが出来る絵ではないだろう、ということもしばしば。
どうやって動かそうと思ってました? と聞いても「え、特に考えてない。なんとなく動くかな、と…」。
しかし、このゲームやたらと絵が多かった。しかも、多数ある説明アニメの1枚で一瞬出てくるだけの絵、とかもある。
そういう絵にダメ出しして描き直させていたら、時間がもったいないわけです。
まぁ、そんな具合なので「無理やり動かした」ものも多数。
細かく動きを設定していると気になる、というだけで、普通に見たら普通に見られますので、問題ないです。
企画の方がアニメ好きで、同人誌なんかも描いている人だったので、それなりにわかりやすい絵コンテだったのが救いでした。
この時の、どんどん動きを作っていく作業は楽しいものでした。
#占いの内容に応じて、なので、数十種類作ったと思う。
1か月くらい、ひたすらアニメの動きを作り続けていたのではないかな。
System32 から CD を制御できるようになってみると、思っていたのと少し違うタイミングで音が出てしまったりします。
「再生」を指示しても、そのタイミングですぐに音が再生されるわけではないのね。
読み取りヘッドがシークして、それから本当の再生が始まる。
ここで問題になるのが、シーク時間が一定ではない、ということです。
直前にかかっていた曲によって、ヘッドの位置が違うから、シーク時間も変わってくる。
これは、曲番号を指定して「再生」した後に、すぐに一時停止を指示することで解決しました。
一時停止が指示されても、シークは行われます。しかし、一時停止中なので演奏は始まりません。
0.5秒くらい待ってから一時停止を解除すると、すぐに曲が演奏されます。
その時点では、もうシークが終わっているから、すぐ演奏に入れるのですね。
これで、完全に曲と映像をあわせることができました。
企画の人のイメージでは、画面などは「全体にウゴウゴルーガっぽい感じで」でした。
#当時人気のあった、子供番組のふりをした番組。
番組タイトルが、1993年の流行語大賞を受賞するくらい人気でした。
ずっと後に、「日本のメディア芸術100選」にも選ばれています。
ウゴウゴルーガは、画面を常に「ガチャガチャとした動き」で動かしていました。
だから、これを目指して、アニメも余り滑らかすぎる動きをしない。
文字も常に動かし続ける。
先ほど書いた、アニメを無理やり動かした、という話も、この「全体の雰囲気」に助けられてます。
それじゃないと、不自然な動きはやっぱ不自然だもの。
文字は、ウゴウゴルーガでは手書きの文字を何枚も書いて動かしているのだけど、手間暇もかけられないし、時間もないので絵としては一つだけ。
ただ、常に座標を変えてガクガクと動かし続けています。
「読みにくくならない程度に常に動かす」のは、文字ごとにちょうどいい動きが違う。
最後の方には慣れて、見ただけでちょうどいいパラメータが思い浮かぶようになったけど、基本的に試行錯誤。
画面周りの技術面で、非常に細かなどうでもいい話。
System32 では、フレームバッファスプライトと、複数枚のスクロール画面が使えます。
#サターンは、System32 の家庭用として開発が始まった、という噂もあります。
この「スクロール画面」は、レジスタをいじると即座に(次のフレームで)位置が反映されます。
スプライトは、表示座標などを設定すると次のフレーム(1/60秒)で裏画面に描画し、さらに次のフレームで表示されます。
つまり、スクロールとスプライトは、1フレームずれて表示されるんだわ。
完全に表示を一致させたいなら、スクロール表示の設定を一時溜めるバッファでも用意しておいて、わざと1フレームずらせばいい。
でも、当時はそんな簡単なことを気付かず、やってません。
画面がカットインする(背景の上にキャラクターが乗ったものが、画面横から入ってくる)ような演出があるのだけど、スクロール時にスプライトが少しずれている。
まぁ、作った自分は気になっているけど、見た人は誰も気づかないだろう、という程度の問題です。
原因がちゃんと理解できていない時に、ずれるなー、なんでだろうなー、って何度も見ていたら、先輩プログラマ(手相の先輩とは別)に、「そういうハードだから合わせる方法は無い」って断言されました。
いや、合わせられないってことはないだろ。1フレームずれるだけだから合わせる方法はある。
常に1フレーム待って設定しようか、とか考えたけど、面倒なことになるからやめました。
後で考えると、バッファを数バイト用意すれば、それだけで済む話なんだけどね。
合わせる方法が無い、って言った人も、別に技術力が無いわけではないです。多くのゲームを作ってきた人だし。
ゲーム作るうえでは、こんな細かな話は「些細な事」で、気にする必要はあまりなかったというだけ。
同じ現象はサターン・ST-Vでもありました。
今は、スプライト+BGなんて環境が無くなったので、あまり気にすることは無いと思います。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |