パスワードを忘れた? アカウント作成
13539890 journal
日記

leiqunniの日記: 【教えて】8 bit パソコン時代のグラフィックの高速描画【エロイ人】 25

日記 by leiqunni

スクウェアのWillとかブラスティーとかから、
グラフィックを「瞬間描画」してアニメーションする技術が出てきましたが、
あれはどういった技術をだったのでしょうか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2018年03月03日 3時46分 (#3370535)

    飛空艇ノーチラスの8倍速もファミコンのバグを利用したもので本来は不可能だとか聞いたし

  • by Anonymous Coward on 2018年03月03日 6時33分 (#3370546)

    それらが該当するか知らないけど、VRAMの開始位置を変更できることを利用して、VRAM1、2を準備
    VRAM1で表示しているうちにVRAM2に描画、必要に応じてVRAM2に切り替えていたんだと思います

    • by Anonymous Coward

      要はダブルバッファですね。
      差分のみの再描画に限定するのが定番かな。
      キャラクタブロック単位に同じものは再描画しないとかやっているのがロマンシアやソーサリアンあたりの技法でしょうか。
      森田のバトルフィールドなんかだとVRAMのプレーン2枚と1枚と分けてオブジェクトと地面の描画が干渉しないようにしていたはず。使える色数がかなり制限うけますけれど。

    • by Anonymous Coward

      VRAMの開始位置(読出し位置)を変更して、、、は別の手法。
      ザナドゥの背景は、それで高速移動したと聞いた事がある。
      前景と背景で、別のVRAMプレーンを使う。
      VRAM1/2 の切替えだけでは次々に変わる画像の表示には間に合いません。
      別コメントにある帰走査線(?)時間に画面書き換えるとか、手法は一つではない。

  • by Anonymous Coward on 2018年03月03日 10時45分 (#3370622)

    ビデオ出力の垂直同期に同期してブランク時間に描画する、とか。

    • by Anonymous Coward

      >ブランク時間に描画する
      これはきれいに(画面の乱れなしに)描く方

      8801のCLS 2だっけか
      ブランキング期間を無視して画面消去をする
      早いけど画面にノイズが乗った風になる

      ビデオ用とバスが分離されてないとそもそもブランキング期間しか
      CPU動いてなかったりする(8001とか)

    • by Anonymous Coward

      当時はVRAMも遅く、デュアルポートメモリも一部機種だけだったから、メモリアクセスが競合する走査期間のVRAMアクセスは意味が無かった気がする。
      画面表示を消して、その間に一気に描画する手法はあった。

      スクウェアやファルコムがやったのは、技術的な技法プラス、額縁を付けてアニメ領域を小さくする。差分だけ描写する、一部パレットアニメ、といった視覚的な手法。
      Y'sIIのオープニングが、ダームの塔から射出され、地面が高速スクロールして空を飛ぶあたりまで音楽がだいたい同期してるのに、イースの全容を表示する縦横スクロールで同期が外れ、リリアのテーマが流れるまで場合によっては終わってしまうのは、そういう事情。
      スクロール部分を大胆にカットしてフィーナとレアの描写を入れた新海誠版も好きだよ。作風全然ぶれねぇ!

      • by Anonymous Coward

        > スクウェアのWillとかブラスティーとかから、
        > グラフィックを「瞬間描画」してアニメーションする技術が出てきましたが、

        これにちゃんと答えてるのこの辺くらいだな。

        (#3370720)
        > スクウェアやファルコムがやったのは、技術的な技法プラス、額縁を付けてアニメ領域を小さくする。差分だけ描写する、一部パレットアニメ、といった視覚的な手法。
          (#3370736)
        > VRAM1/2 の切替えだけでは次々に変わる画像の表示には間に合いません。

        後の連中はWillとかブラスティーがどんな作品だったかも知らないし調べようともしないで
        イースとかザナドゥの解説をし始める始末。

        • うろ覚えな記憶と戦いつつ興味深く話の流れを眺めてたのですが、
          そもそも、Will(1985)やブラスティー(1986)の出た当時の「瞬間描画」とは何かを考える上では、それまでのゲームが「イラスト的な画像」をどう表示していたか、を考えないとダメじゃないかな。

          当時のゲームの「イラスト的な画面描画」というのは、ベクターグラフィックが基本。線を引いて閉領域を塗りつぶす、という描画過程が目に見えるものが多かったです。参考: デゼニランド(1983) [youtube.com]

          それに対して「瞬間描画」というのは「描画過程なくいきなり表示される」ものを示す言葉です。Willなんかは、単に描画過程が見えないだけでなく、限定的ながらも「アニメーション」する。目パチと涙が流れる程度とはいえ「絵が動くように見える」というだけでも驚異的だったわけです。

          「瞬間描画」とは、そういう主にアドベンチャーゲームの描画機能を示す言葉であり、イースだとかザナドゥとかの「アクションゲームの描画」とは全然別カテゴリーの話でしょう。
          アクションゲームでは「描画過程が見える」なんていうのは論外ですが、そこは絵作り的に描画すべき箇所を減らすことで対応。そのかわりに「キャラクターのリアルタイム合成」という別の問題が出るわけですが。

          そんなこんなで、じゃあ具体的に「瞬間描画はどういう何か」というと、「VRAM上で直接描画するのではなく、一旦メインメモリ上で描画したものをVRAMに転送する方式」と言えるでしょうかね。技術というより方法論。

          親コメント
          • by Anonymous Coward

            88だと640×200(16000バイト)×8色(3プレーン)のVRAM一画面分の容量が48KBで、RAMのユーザ領域が64KB。
            ブラスティーのアニメーション領域が1/4の面積だとすると12KB。ただしブラスティーのアニメーションの色数は背景は真っ黒で色は白青赤の3色しか使っていないのでプレーン数は2。更新する必要な処理も2/3。アニメーション領域いっぱいに描いてある場合でも8KBで絵が小さいコマもあるから6~8、9コマくらいまではメモリに置ける。これをVRAM領域に転送。画面をクリアするのはスタックポインタ使った高速技法があったはず。言われる通り単なる方法論ですね。

          • by Anonymous Coward

            やや、一枚絵のベクターグラフィックはさすがにもっと古いよ。
            ウィズ(移植)だって敵絵はディザ処理されたラスターじゃん。

            当時の88ゲームの聖杯はタイルグラフィックでは無い一枚絵によるアニメーションだった。
            Y'sIIのオープニングアニメはSR世代の到達点だけど、ブラスティーは88無印世代での先駆者なので確かに比べるのは違うかも知れない。ザナドゥはタイルグラフィックのゲーム画面しかないのでやっぱり違う。
            ラスターグラフィックは昔も今も単なるメモリ転送なのはその通り。88では転送速度よりメモリの制約のほうが厳しい。だからメインメモリ描画は無理。

            ブラスティーはアニメのグラフィックプレーンを一色省いてるんじゃないかな。その上で手動でアニメの動いた部分をライン単位で抽出して転送している。代わりにメモリが犠牲になり、ゲームシステムや敵パターンが少なくなっている。

            • 「当時の88ゲームの聖杯」というのは、ちょっと私には覚えがないのですが、
              とりあえず、Willと同じ1985年の軽井沢誘拐案内 [youtube.com]なんかはLINE&PAINTですね。

              国内PC移植のWizardryも1985年ですが、こっちは小さな「キャラクター」単位での表示ですから、それをもって「当時の絵作りではラスターグラフィックが普通」と論じることはできないかと。

              あと、すみません、ちょっと誤解を招いてしまったようですが、「インメモリ上で描画したものをVRAMに転送する方式」は、メインメモリ上にVRAMと同等のものを用意してLINE&PAINT、というつもりはありませんでした。「VRAM上で段階的に絵を作り上げていく」のではなく、「できあがった絵を、一気にVRAMに転送していく」という方式であり、その「できあがった絵」の用意の仕方については、言及(方法論として特定)しない方がいいと考えてました。まあ、順当に考えれば「更新不要な部分はデータを持たない」「圧縮した形式でディスクに保持」などといった小手先の技術の積み重ねでしょうけど。
              ちなみに、WillのYoutube動画 [youtu.be]を見てると、画面転換時の再描画は、明らかにプレーン単位転送してる感じで、RGBが順番に表示されていくのが目に見えますね。

              > 88では転送速度よりメモリの制約のほうが厳しい。だからメインメモリ描画は無理。
              だからこそ、「瞬間描画」が驚きを持って評価されてたんではないかな。

              親コメント
            • by Anonymous Coward

              > その上で手動でアニメの動いた部分をライン単位で抽出して転送している。

              ブラスティのアニメは板野サーカスっぽい作画で各フレーム間で再利用できるところがない。このアイデアは使えませんな。

              • by Anonymous Coward

                黒が多いんだな、これが。
                ブラスティーのミサイル描写は引きが多くてかえって圧縮しやすい。

              • by Anonymous Coward

                確かに1色のビームだけがババーッと出るとか、アップから急に遠ざかるとか
                リピートを使って連続射撃を表現したりなかなかごまかしがうまい。

                まあブラスティーは日本サンライズにメカデザインを依頼するという点で企画勝ちですな。
                それまでのパソコンゲームのメカデザは良くてテグザー、良くてヴォルガ―ドといった感じでダサダサだったから・・・
                ザースに出てきたバイファムもどきはヨカッタ

        • by Anonymous Coward

          だってブラスティー良ゲーとは言いがたいから。
          スペース3Dダンジョン全部見えない壁だもん。

  • by Anonymous Coward on 2018年03月03日 11時44分 (#3370650)

    見た感じ6コマくらいだからいちいちディスクから画面1枚分くらいの絵を読み込んで
    順番に表示してるだけじゃないの。垂直同期もそんなに気にしてるようには見えない。
    https://www.youtube.com/watch?v=tGujyVYkcuM [youtube.com]
    アニメーションの前に時間が結構あるからアニメーションの都度にディスクから読み込んでるような。
    動画のコメントに戦闘シーンでディスクを入れ替えるのが辛かったというのがあるね。

    • by Anonymous Coward

      ディスクもそのまま入れちゃうと数枚しか絵が入らないから単純な圧縮もして
      容量と読み込みスピードの改善を図っているはず。

    • by Anonymous Coward

      当時のFDのアクセス速度やグラフィック画面描画の速度を知らないからってそんな馬鹿丸出しのコメントしなくてもいいんだよ

      • by Anonymous Coward

        知らねえのはオメーだろ。
        ブラスティーみたいな小さいグラフィックの瞬間描画の何が珍しいのか言ってみろよ。

        • by Anonymous Coward

          しったかくん?

          • by Anonymous Coward

            知識も無くても、相手に言えとだけ書くのは
            まぁそうだろうな

            • by Anonymous Coward

              by Anonymous Coward on 2018年03月03日 16時52分 (#3370760)
              しったかくん?
              by Anonymous Coward on 2018年03月03日 16時55分 (#3370765)
              知識も無くても、相手に言えとだけ書くのは
              まぁそうだろうな

              自分と会話すんなよ。

        • by Anonymous Coward

          ブラスティーはFD側のCPUもアニメーションに使ってますな
          そこが珍しい

          • by Anonymous Coward

            サブCPUを何に使ったんでしょうか。圧縮したデータの展開?

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...