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