leiqunniの日記: 【教えて】8 bit パソコン時代のグラフィックの高速描画【エロイ人】 25
日記 by
leiqunni
スクウェアのWillとかブラスティーとかから、
グラフィックを「瞬間描画」してアニメーションする技術が出てきましたが、
あれはどういった技術をだったのでしょうか?
スクウェアのWillとかブラスティーとかから、
グラフィックを「瞬間描画」してアニメーションする技術が出てきましたが、
あれはどういった技術をだったのでしょうか?
物事のやり方は一つではない -- Perlな人
ナーシャの超絶技巧なのでは (スコア:0)
飛空艇ノーチラスの8倍速もファミコンのバグを利用したもので本来は不可能だとか聞いたし
VRAMのアドレス変更では? (スコア:0)
それらが該当するか知らないけど、VRAMの開始位置を変更できることを利用して、VRAM1、2を準備
VRAM1で表示しているうちにVRAM2に描画、必要に応じてVRAM2に切り替えていたんだと思います
Re: (スコア:0)
要はダブルバッファですね。
差分のみの再描画に限定するのが定番かな。
キャラクタブロック単位に同じものは再描画しないとかやっているのがロマンシアやソーサリアンあたりの技法でしょうか。
森田のバトルフィールドなんかだとVRAMのプレーン2枚と1枚と分けてオブジェクトと地面の描画が干渉しないようにしていたはず。使える色数がかなり制限うけますけれど。
Re: (スコア:0)
VRAMの開始位置(読出し位置)を変更して、、、は別の手法。
ザナドゥの背景は、それで高速移動したと聞いた事がある。
前景と背景で、別のVRAMプレーンを使う。
VRAM1/2 の切替えだけでは次々に変わる画像の表示には間に合いません。
別コメントにある帰走査線(?)時間に画面書き換えるとか、手法は一つではない。
たぶん違う (スコア:0)
ビデオ出力の垂直同期に同期してブランク時間に描画する、とか。
Re: (スコア:0)
>ブランク時間に描画する
これはきれいに(画面の乱れなしに)描く方
8801のCLS 2だっけか
ブランキング期間を無視して画面消去をする
早いけど画面にノイズが乗った風になる
ビデオ用とバスが分離されてないとそもそもブランキング期間しか
CPU動いてなかったりする(8001とか)
Re: (スコア:0)
当時はVRAMも遅く、デュアルポートメモリも一部機種だけだったから、メモリアクセスが競合する走査期間のVRAMアクセスは意味が無かった気がする。
画面表示を消して、その間に一気に描画する手法はあった。
スクウェアやファルコムがやったのは、技術的な技法プラス、額縁を付けてアニメ領域を小さくする。差分だけ描写する、一部パレットアニメ、といった視覚的な手法。
Y'sIIのオープニングが、ダームの塔から射出され、地面が高速スクロールして空を飛ぶあたりまで音楽がだいたい同期してるのに、イースの全容を表示する縦横スクロールで同期が外れ、リリアのテーマが流れるまで場合によっては終わってしまうのは、そういう事情。
スクロール部分を大胆にカットしてフィーナとレアの描写を入れた新海誠版も好きだよ。作風全然ぶれねぇ!
Re: (スコア:0)
> スクウェアのWillとかブラスティーとかから、
> グラフィックを「瞬間描画」してアニメーションする技術が出てきましたが、
これにちゃんと答えてるのこの辺くらいだな。
(#3370720)
> スクウェアやファルコムがやったのは、技術的な技法プラス、額縁を付けてアニメ領域を小さくする。差分だけ描写する、一部パレットアニメ、といった視覚的な手法。
(#3370736)
> VRAM1/2 の切替えだけでは次々に変わる画像の表示には間に合いません。
後の連中はWillとかブラスティーがどんな作品だったかも知らないし調べようともしないで
イースとかザナドゥの解説をし始める始末。
Re:たぶん違う (スコア:1)
うろ覚えな記憶と戦いつつ興味深く話の流れを眺めてたのですが、
そもそも、Will(1985)やブラスティー(1986)の出た当時の「瞬間描画」とは何かを考える上では、それまでのゲームが「イラスト的な画像」をどう表示していたか、を考えないとダメじゃないかな。
当時のゲームの「イラスト的な画面描画」というのは、ベクターグラフィックが基本。線を引いて閉領域を塗りつぶす、という描画過程が目に見えるものが多かったです。参考: デゼニランド(1983) [youtube.com]
それに対して「瞬間描画」というのは「描画過程なくいきなり表示される」ものを示す言葉です。Willなんかは、単に描画過程が見えないだけでなく、限定的ながらも「アニメーション」する。目パチと涙が流れる程度とはいえ「絵が動くように見える」というだけでも驚異的だったわけです。
「瞬間描画」とは、そういう主にアドベンチャーゲームの描画機能を示す言葉であり、イースだとかザナドゥとかの「アクションゲームの描画」とは全然別カテゴリーの話でしょう。
アクションゲームでは「描画過程が見える」なんていうのは論外ですが、そこは絵作り的に描画すべき箇所を減らすことで対応。そのかわりに「キャラクターのリアルタイム合成」という別の問題が出るわけですが。
そんなこんなで、じゃあ具体的に「瞬間描画はどういう何か」というと、「VRAM上で直接描画するのではなく、一旦メインメモリ上で描画したものをVRAMに転送する方式」と言えるでしょうかね。技術というより方法論。
Re: (スコア:0)
88だと640×200(16000バイト)×8色(3プレーン)のVRAM一画面分の容量が48KBで、RAMのユーザ領域が64KB。
ブラスティーのアニメーション領域が1/4の面積だとすると12KB。ただしブラスティーのアニメーションの色数は背景は真っ黒で色は白青赤の3色しか使っていないのでプレーン数は2。更新する必要な処理も2/3。アニメーション領域いっぱいに描いてある場合でも8KBで絵が小さいコマもあるから6~8、9コマくらいまではメモリに置ける。これをVRAM領域に転送。画面をクリアするのはスタックポインタ使った高速技法があったはず。言われる通り単なる方法論ですね。
Re: (スコア:0)
やや、一枚絵のベクターグラフィックはさすがにもっと古いよ。
ウィズ(移植)だって敵絵はディザ処理されたラスターじゃん。
当時の88ゲームの聖杯はタイルグラフィックでは無い一枚絵によるアニメーションだった。
Y'sIIのオープニングアニメはSR世代の到達点だけど、ブラスティーは88無印世代での先駆者なので確かに比べるのは違うかも知れない。ザナドゥはタイルグラフィックのゲーム画面しかないのでやっぱり違う。
ラスターグラフィックは昔も今も単なるメモリ転送なのはその通り。88では転送速度よりメモリの制約のほうが厳しい。だからメインメモリ描画は無理。
ブラスティーはアニメのグラフィックプレーンを一色省いてるんじゃないかな。その上で手動でアニメの動いた部分をライン単位で抽出して転送している。代わりにメモリが犠牲になり、ゲームシステムや敵パターンが少なくなっている。
Re:たぶん違う (スコア:1)
「当時の88ゲームの聖杯」というのは、ちょっと私には覚えがないのですが、
とりあえず、Willと同じ1985年の軽井沢誘拐案内 [youtube.com]なんかはLINE&PAINTですね。
国内PC移植のWizardryも1985年ですが、こっちは小さな「キャラクター」単位での表示ですから、それをもって「当時の絵作りではラスターグラフィックが普通」と論じることはできないかと。
あと、すみません、ちょっと誤解を招いてしまったようですが、「インメモリ上で描画したものをVRAMに転送する方式」は、メインメモリ上にVRAMと同等のものを用意してLINE&PAINT、というつもりはありませんでした。「VRAM上で段階的に絵を作り上げていく」のではなく、「できあがった絵を、一気にVRAMに転送していく」という方式であり、その「できあがった絵」の用意の仕方については、言及(方法論として特定)しない方がいいと考えてました。まあ、順当に考えれば「更新不要な部分はデータを持たない」「圧縮した形式でディスクに保持」などといった小手先の技術の積み重ねでしょうけど。
ちなみに、WillのYoutube動画 [youtu.be]を見てると、画面転換時の再描画は、明らかにプレーン単位転送してる感じで、RGBが順番に表示されていくのが目に見えますね。
> 88では転送速度よりメモリの制約のほうが厳しい。だからメインメモリ描画は無理。
だからこそ、「瞬間描画」が驚きを持って評価されてたんではないかな。
Re: (スコア:0)
> その上で手動でアニメの動いた部分をライン単位で抽出して転送している。
ブラスティのアニメは板野サーカスっぽい作画で各フレーム間で再利用できるところがない。このアイデアは使えませんな。
Re: (スコア:0)
黒が多いんだな、これが。
ブラスティーのミサイル描写は引きが多くてかえって圧縮しやすい。
Re: (スコア:0)
確かに1色のビームだけがババーッと出るとか、アップから急に遠ざかるとか
リピートを使って連続射撃を表現したりなかなかごまかしがうまい。
まあブラスティーは日本サンライズにメカデザインを依頼するという点で企画勝ちですな。
それまでのパソコンゲームのメカデザは良くてテグザー、良くてヴォルガ―ドといった感じでダサダサだったから・・・
ザースに出てきたバイファムもどきはヨカッタ
Re: (スコア:0)
だってブラスティー良ゲーとは言いがたいから。
スペース3Dダンジョン全部見えない壁だもん。
ネックは描画速度ではなくメモリ容量 (スコア:0)
見た感じ6コマくらいだからいちいちディスクから画面1枚分くらいの絵を読み込んで
順番に表示してるだけじゃないの。垂直同期もそんなに気にしてるようには見えない。
https://www.youtube.com/watch?v=tGujyVYkcuM [youtube.com]
アニメーションの前に時間が結構あるからアニメーションの都度にディスクから読み込んでるような。
動画のコメントに戦闘シーンでディスクを入れ替えるのが辛かったというのがあるね。
Re: (スコア:0)
ディスクもそのまま入れちゃうと数枚しか絵が入らないから単純な圧縮もして
容量と読み込みスピードの改善を図っているはず。
Re: (スコア:0)
当時のFDのアクセス速度やグラフィック画面描画の速度を知らないからってそんな馬鹿丸出しのコメントしなくてもいいんだよ
Re: (スコア:0)
知らねえのはオメーだろ。
ブラスティーみたいな小さいグラフィックの瞬間描画の何が珍しいのか言ってみろよ。
Re: (スコア:0)
しったかくん?
Re: (スコア:0)
知識も無くても、相手に言えとだけ書くのは
まぁそうだろうな
Re: (スコア:0)
by Anonymous Coward on 2018年03月03日 16時52分 (#3370760)
しったかくん?
by Anonymous Coward on 2018年03月03日 16時55分 (#3370765)
知識も無くても、相手に言えとだけ書くのは
まぁそうだろうな
自分と会話すんなよ。
Re: (スコア:0)
ブラスティーはFD側のCPUもアニメーションに使ってますな
そこが珍しい
Re: (スコア:0)
サブCPUを何に使ったんでしょうか。圧縮したデータの展開?