奥行きのあるスクロールを作りたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
YYSS
記事: 125
登録日時: 9年前
連絡を取る:

奥行きのあるスクロールを作りたい

#1

投稿記事 by YYSS » 8年前

参考動画:


~開発環境~
○Windows 7 Ultimate SP1
○Visual C++ 2010 Express
○DXライブラリ

動画の0:12あたりから始まる、背景が奥に流れていくような描画を行いたいのですが、なかなか上手くいきません。

DrawMobiGraphを使用して台形に変形させれば、多少奥行きがあるような感じにはなったのですが、
奥にスクロールさせることが出来ません;;

3D機能を使う手もありそうですが、私がまだ理解しきってないのと、制作中のゲームが全て2Dで描画を行っているので、
いまさら変えるのは大変そうなので;;


動画のゲーム自体、ハード(アーケード基板)にかなり依存した描画を行っているらしいので、
再現するのは難しいでしょうか。


アドバイスをいただけると幸いです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 奥行きのあるスクロールを作りたい

#2

投稿記事 by softya(ソフト屋) » 8年前

これは往年のワザでラスター制御を行なっています。昔のアーケード機やサターンやスーパーファミコンまでのラインレンダリングのハードでは比較的一般的なテクニックでした。ラスタースクロールと呼ばれた手法ですね。

面レンダリングであるDirectX(DXライブラリ)で再現するのは重いかもしれませんが、やってみてください。
方法としては元の背景画像を横に数ドット置きにスライスして、各々拡大率や描画位置をずらしてレンダリングします。

これは横に揺らしているだけですが、Y座標に合わせて位置と拡大率を変えてやると奥行ができたように見えます。
「ラスタースクロール - PlayLoud!!~ヘヴィメタル・ハードロックの世界~ゲームはライフワーク~」
http://d.hatena.ne.jp/kei-go/20081102/p1
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
YYSS
記事: 125
登録日時: 9年前
連絡を取る:

Re: 奥行きのあるスクロールを作りたい

#3

投稿記事 by YYSS » 8年前

一応出来ましたー

ラスタースクロール風だと非常に重たくなるので、結局は画像の伸縮で奥行きを持たせるようにしました。

一応どんなものか添付しておきます。

800x600の画像を台形に変形させ、上下左右が繋がるようにループ処理をしました。
添付ファイル
2011-11-24 0-18-21.png
magm.png

ふりかけ

Re: 奥行きのあるスクロールを作りたい

#4

投稿記事 by ふりかけ » 8年前

スーファミのマリオカートみたいな感じでしょうか、面白いですね参考にさせていただきます。
本当のラスタースクロールってハードウェアに依存すると思うのですが配布用プログラムに実装できるんですかねぇ。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 奥行きのあるスクロールを作りたい

#5

投稿記事 by softya(ソフト屋) » 8年前

ふりかけ さんが書きました:本当のラスタースクロールってハードウェアに依存すると思うのですが配布用プログラムに実装できるんですかねぇ。
上にも書いてますが、昔のアーケード機器やサターン、ファミコン、スーパーファミコンの様なラインレンダリング機構とラスタ割り込みをハードウェアとして持たないパソコンやプレイステーション等はラスタスクロールを擬似的にしか再現できません。
ただ、ラスタスクロール風だと重くなるので3Dポリゴンを使って擬似的に再現できる方法を選べばある程度再現できると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: 奥行きのあるスクロールを作りたい

#6

投稿記事 by ISLe » 8年前

ゼクセクスは、ラスタ単位に拡縮していたりと単純なラスタスクロールではないんですよね。
ステージ開始前の、お姫様の背景がユラユラしてるのはラスタスクロールっぽいですけど、ラスタ割り込みを使っているのではなく、BGはラスタ毎にオフセットと拡縮を指定できる機能を持っているらしいです。

ちなみに、質問にあるリンクの動画がパソコン上で動いているものですから、再現できることは証明されています。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 奥行きのあるスクロールを作りたい

#7

投稿記事 by softya(ソフト屋) » 8年前

[ゲーム開発者向きおじさん雑談] ゲーム機では唯一サターンがBGのラスタ毎のオフセット指定を出来たと記憶しています。使うのにすごい制約があった気が・・・。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る