ページ 11

RPGの仕掛けの仕組みが分からない

Posted: 2011年4月12日(火) 19:40
by glfd
斜め見下ろし型のRPGについて疑問がわきました(スーパーマリオRPGを見ていて思いました)

①奥行きという概念があるためキャラクターの奥行きの並び順が常に入れ替わりますよね?
 2Dでの移動だと画像を読み込む順番を考えればよかったのですが、この場合どうすれば?

②2Dでの自然なジャンプの仕組みは分かりましたが斜め見下ろし型だと
 画面向かって奥側にジャンプした場合などy座標がもととは変わりますよね?どうすればいいのでしょう?

Re: RPGの仕掛けの仕組みが分からない

Posted: 2011年4月12日(火) 21:07
by softya(ソフト屋)
①奥行きという概念があるためキャラクターの奥行きの並び順が常に入れ替わりますよね?
 2Dでの移動だと画像を読み込む順番を考えればよかったのですが、この場合どうすれば?
描画順番を見た目の奥から順にZソートします。
SFC時代の2DのアクションRPGでもRPGでも普通にしてると思いますが。
聖剣伝説2とか動画をチェックしてみてください。
[youtube][/youtube]
②2Dでの自然なジャンプの仕組みは分かりましたが斜め見下ろし型だと
 画面向かって奥側にジャンプした場合などy座標がもととは変わりますよね?どうすればいいのでしょう?
横の座標と奥行きの座標、高さの座標を別に持てば良いことです。
それらの情報を合成して画面表示します。

Re: RPGの仕掛けの仕組みが分からない

Posted: 2011年4月13日(水) 17:07
by glfd
手前の方から順番に描画していくってことができるのでしょうか?
できるとしたら、どうやってやればいいのでしょうか?

2つ目のものも理解が出来ません

頭が悪くて読解力がないのも分かっています  できれば教えてください

Re: RPGの仕掛けの仕組みが分からない

Posted: 2011年4月13日(水) 17:37
by softya(ソフト屋)
プログラムコードが提示されていないので概念的に説明します。
キャラクタの左下座標がCX,CZ,CHで管理されているものとします。
CXが横座標で右に行くと大きくなります。CZがマップ上の奥行きの位置座標で奥に行くほど大きくなります。CHがジャンプの高さで高いほうが大きな数値です。

①奥行き管理
キャラクタが番号で管理されていたら、キャラ番号とCZの奥行き方向の座標を構造体配列に入れてZの大→小で並ぶように構造体をソートします。
あとは、構造体を先頭から取り出して構造体に記録されたキャラ番号で描画処理すれば奥から描画できます。

②ジャンプ処理
スクリーンに表示するマップの左下座標はSX,SZで、スクリーンサイズはSCREENX,SCREENYとします。
キャラクタの画面上の左下の表示座標は 
viewX = CX - SX
viewY = SCREENY - (CZ - CH - SZ)
となります。

[追記]
これは、あくまで一例でこういう考え方もあるよって事です。
処理する方法や考え方には色いろあると思ってください。