ページ 1 / 1
奥行きのあるスクロールを作りたい
Posted: 2011年11月20日(日) 22:37
by YYSS
参考動画:
~開発環境~
○Windows 7 Ultimate SP1
○Visual C++ 2010 Express
○DXライブラリ
動画の0:12あたりから始まる、背景が奥に流れていくような描画を行いたいのですが、なかなか上手くいきません。
DrawMobiGraphを使用して台形に変形させれば、多少奥行きがあるような感じにはなったのですが、
奥にスクロールさせることが出来ません;;
3D機能を使う手もありそうですが、私がまだ理解しきってないのと、制作中のゲームが全て2Dで描画を行っているので、
いまさら変えるのは大変そうなので;;
動画のゲーム自体、ハード(アーケード基板)にかなり依存した描画を行っているらしいので、
再現するのは難しいでしょうか。
アドバイスをいただけると幸いです。
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月20日(日) 22:52
by softya(ソフト屋)
これは往年のワザでラスター制御を行なっています。昔のアーケード機やサターンやスーパーファミコンまでのラインレンダリングのハードでは比較的一般的なテクニックでした。ラスタースクロールと呼ばれた手法ですね。
面レンダリングであるDirectX(DXライブラリ)で再現するのは重いかもしれませんが、やってみてください。
方法としては元の背景画像を横に数ドット置きにスライスして、各々拡大率や描画位置をずらしてレンダリングします。
これは横に揺らしているだけですが、Y座標に合わせて位置と拡大率を変えてやると奥行ができたように見えます。
「ラスタースクロール - PlayLoud!!~ヘヴィメタル・ハードロックの世界~ゲームはライフワーク~」
http://d.hatena.ne.jp/kei-go/20081102/p1
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月24日(木) 00:28
by YYSS
一応出来ましたー
ラスタースクロール風だと非常に重たくなるので、結局は画像の伸縮で奥行きを持たせるようにしました。
一応どんなものか添付しておきます。
800x600の画像を台形に変形させ、上下左右が繋がるようにループ処理をしました。
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月24日(木) 00:55
by ふりかけ
スーファミのマリオカートみたいな感じでしょうか、面白いですね参考にさせていただきます。
本当のラスタースクロールってハードウェアに依存すると思うのですが配布用プログラムに実装できるんですかねぇ。
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月24日(木) 09:51
by softya(ソフト屋)
ふりかけ さんが書きました:本当のラスタースクロールってハードウェアに依存すると思うのですが配布用プログラムに実装できるんですかねぇ。
上にも書いてますが、昔のアーケード機器やサターン、ファミコン、スーパーファミコンの様なラインレンダリング機構とラスタ割り込みをハードウェアとして持たないパソコンやプレイステーション等はラスタスクロールを擬似的にしか再現できません。
ただ、ラスタスクロール風だと重くなるので3Dポリゴンを使って擬似的に再現できる方法を選べばある程度再現できると思います。
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月24日(木) 17:07
by ISLe
ゼクセクスは、ラスタ単位に拡縮していたりと単純なラスタスクロールではないんですよね。
ステージ開始前の、お姫様の背景がユラユラしてるのはラスタスクロールっぽいですけど、ラスタ割り込みを使っているのではなく、BGはラスタ毎にオフセットと拡縮を指定できる機能を持っているらしいです。
ちなみに、質問にあるリンクの動画がパソコン上で動いているものですから、再現できることは証明されています。
Re: 奥行きのあるスクロールを作りたい
Posted: 2011年11月24日(木) 17:16
by softya(ソフト屋)
[ゲーム開発者向きおじさん雑談] ゲーム機では唯一サターンがBGのラスタ毎のオフセット指定を出来たと記憶しています。使うのにすごい制約があった気が・・・。