2015年03月17日の日記です


手相開発時の技術話(3)  2015-03-17 10:28:48  業界記

手相では、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なんて環境が無くなったので、あまり気にすることは無いと思います。




同じテーマの日記(最近の一覧)

業界記

別年同日の日記

04年 誕生日?

08年 いろいろ書く

08年 下の子入院

11年 自宅待機

11年 「輪番」停電について

12年 windows8

17年 長男卒業式


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -