ゲームプログラミング相談室【Part6】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/03/06 01:25ID:d2e/eEyg扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
■過去スレ
【Part2】http://pc.2ch.net/tech/kako/985/985540361.html
【Part3】http://pc.2ch.net/tech/kako/1002/10028/1002894129.html
【Part4】http://game.2ch.net/gamedev/kako/1005/10050/1005040025.html
【Part5】http://pc2.2ch.net/test/read.cgi/gamedev/1036410116/
■関連スレなど
>>2-5
0716名前は開発中のものです。
2006/01/27(金) 14:01:24ID:ZzcOIWPUダブルバッファリング使ってマップ描画したいんだけど
そうすると当たり判定とか訳分からない
0717名前は開発中のものです。
2006/01/27(金) 14:23:04ID:vJBgpAN1ねらって書いただろ?
ダブルバッファリング使ってマップ描画の方法をしりたい。
マップ描画したあとの当たり判定をしりたい。どっち?
どっちにしろ俺はプログラム素人だから知らないがな。
0718名前は開発中のものです。
2006/01/27(金) 14:25:00ID:odjJ0rRD>どっちにしろ俺はプログラム素人だから知らないがな。
おまい潔いな( ´ー`)y─┛~~
0719名前は開発中のものです。
2006/01/27(金) 14:50:59ID:ZzcOIWPU>ねらって書いただろ?
恥ずかしくて「はいそうです」としか言いようが無い
どちらも
簡単な横スクロールは作ってみたけどどうもおかしい
普通なプログラマのやり方が知りたい
0720名前は開発中のものです。
2006/01/27(金) 14:54:34ID:odjJ0rRD>> ねらって書いただろ?
> 恥ずかしくて「はいそうです」としか言いようが無い
おまいも潔いな( ´ー`)y─┛~~
0721名前は開発中のものです。
2006/01/27(金) 15:10:22ID:6gofb40N0722名前は開発中のものです。
2006/01/27(金) 16:01:58ID:k5wFytZR細かく判定したいのなら当たり判定用のマップを別に作る。
0723名前は開発中のものです。
2006/01/27(金) 16:07:12ID:ZzcOIWPUチップナンバーとは何でしょう?
0724名前は開発中のものです。
2006/01/27(金) 16:21:18ID:k5wFytZRRPG作るなら、マップエディタがいるだろ?
マップチップはわかるな?
マップチップ0=海
マップチップ1=草原
0とか1がチップナンバー。
それを頼りに判定する方法。
海に囲まれた島があったら
0000000000
0011111100
0111111110
0111111110
0011111100
0000000000
こういうマップになるだろ?
で1なら通れるわけだ。
当たり判定にバッファリングは関係ない。
0725名前は開発中のものです。
2006/01/27(金) 16:23:55ID:sZghv91r当たり判定は当たり判定用データで処理すればいい。
難しいことは、単純なことに分解、小分けにしていくことで大抵クリアできるんぽ。
0726名前は開発中のものです。
2006/01/27(金) 17:05:37ID:ZzcOIWPUごめん、本当に初心者です
バッファリング用のint二次元配列と当たり判定用のint二次元配列を一緒にしようと思ってたので頭がこんがらがってしまって
別々に作ってみます
ありがとうございました
0727名前は開発中のものです。
2006/01/27(金) 17:10:51ID:Cddpk7ys0728名前は開発中のものです。
2006/01/27(金) 18:16:19ID:ZzcOIWPUマップデータ(ブロック種類記述)読み込み
マップデータからマップデータ配列
struct MapData{
POINT pt;
int type)
0729名前は開発中のものです。
2006/01/27(金) 18:16:51ID:ZzcOIWPU0730名前は開発中のものです。
2006/01/27(金) 20:46:59ID:IEFBcBylその恥じらう姿がたまらなく可愛いよ>>729
0731名前は開発中のものです。
2006/01/27(金) 21:24:04ID:Cddpk7ys書きかけだし、ミスならアレだけど、
なんで POINT が必要なのかな・・・かな?
0732名前は開発中のものです。
2006/01/27(金) 21:48:01ID:ZzcOIWPU座標は1チップ読み込む度に座標+=1チップのサイズ
これを100チップx100チップの仮想BMP(マップファイル)に書き出す
キャラクターの座標はクライアント領域内の座標じゃなくマップ内の座標にする
・・ってのをやってみたいと思ってる
マップ作っちゃうと重くなるかな?
0733名前は開発中のものです。
2006/01/27(金) 22:41:59ID:Cddpk7ysそんなんでいいと思うよ。
0734名前は開発中のものです。
2006/01/27(金) 22:43:08ID:ZzcOIWPUがんばってみる
0735名前は開発中のものです。
2006/01/27(金) 22:44:24ID:Cddpk7yshttp://gamdev.org/w/?%5B%5B%A5%DE%A5%C3%A5%D7%A5%A8%A5%C7%A5%A3%A5%BF%5D%5D
0736名前は開発中のものです。
2006/01/27(金) 22:48:15ID:ZzcOIWPU今エディタ探してたところ
0737名前は開発中のものです。
2006/01/28(土) 05:38:41ID:7XpuQXDc今のPCパワーなら何ら問題無い
メモリの有効利用がキーになるけど
それよりもマップの画像データを
作るほうが大変
0738名前は開発中のものです。
2006/01/28(土) 10:21:30ID:oms8+w1B有名どころのマップ集。デザインの参考にはなるんでない?
0739736
2006/01/28(土) 20:54:31ID:mw6mWgjCここまでやってみた。画像はマップ作成ツールのサンプル
ただスクロールがなんかおかしい
当たり判定はuser構造体内のPOINT型mptとmapdata構造体配列でやりたいと思ってるけど実装の仕方がわからなくてグダグダ
マップとか画像はセンスが無いからどうにも・・・
0740名前は開発中のものです。
2006/01/29(日) 01:48:00ID:UzEuhqPh仮想BMP、まさか本当にマップファイルの大きさのBMPを用意するのはさすがにまずいと思う。
それからマップチップの画像は一枚にまとめておいたほうが扱いやすいと思う。
struct MapChipData {
POINT src; // マップチップ「「画像」」の開始座標を格納
int type;
}
int MapData[MAP_HEIGHT][MAP_WIDTH]; // ここにマップデータをそのまま読んで番号を格納していく
こういうの用意して、例えば0,0からマップを画面に書きたかったら
for (int y = 0; y < 20; y++) { for (int x = 0; x < 15; x++) {
POINT src = MapChipData[ MapData[y][x] ].src; // これでチップの座標取って
// ここらでsrcを使って裏画面にマップを描画。ソースは省略
}}
あと、初心者で普通のRPGのように滑らかな移動を初めから実装するのは無謀だと思う。
まずは、チップサイズ(この場合32ドット)毎にキャラが移動するように作って
それで、仕組みを理解してから滑らかにスクロールするところを作りこんだほうがいいと思う。
当たり判定については、キャラを実座標で扱っているからごちゃごちゃしてるんだと思う。
例えば右に移動するのを+10ドットとするのではなく、右に+1とする。
そのとき、一緒に当たり判定するとか。
// 右に移動したとき呼ばれたとして、typeで判定かな
if ( MapChipData[ MapData[自キャラのY座標][自キャラのX座標 + 1] ].type == 1 )
{ 自キャラのX座標 ++ }
当たり判定用のマップ作りたい場合はマップデータをintじゃなくて構造体にして詰め込めばいい。と思う(´・ω・`)
0741名前は開発中のものです。
2006/01/29(日) 15:34:49ID:Pz5ng5yEそれだと、ウインドウモードでFPSが変わると速度の変化があるよね。
60Hzと75Hzで同じような処理を行うには、75のときに5回に一回飛ばせばいいだけなの?
それだとカクカクしない?
0742名前は開発中のものです。
2006/01/29(日) 16:01:50ID:38NWeupeでもそれは仕方の無いことだとあきらめてる。
解決策教えてエロい人。
速度を一定に保ちたいなら、1秒間でどのくらい動くかということを考えて
フレームごとの移動量を足していくようにすればいい。
0743名前は開発中のものです。
2006/01/29(日) 16:16:20ID:Fm34QVYsはじめに数枚のマップチップを張り合わせたbmp画像を読み込んでおき、
struct MapChipData {
POINT src; // マップチップ「「画像」」の開始座標を格納
int type;
}mapchipdata[読み込むチップ数]
にマップチッブを張り合わせたbmp内の目的チップの座標とタイプを格納して
マップの再描画が必要になったとき(スクロール時等)にマップチップをメモリデバイスに貼り付け
ということでしょうか?
あと当たり判定の
if ( MapChipData[ MapData[自キャラのY座標][自キャラのX座標 + 1] ].type == 1 )
はMapData[自キャラのY座標/チップサイズ][自キャラのX座標/チップサイズ + 1]ですか?
そろそろGDI卒業してDirectGraphic使いと思って本屋で探したけど2Dからの入門書探しても3Dしかない・・
0744名前は開発中のものです。
2006/01/29(日) 16:48:30ID:38NWeupeそのところは好きに実装すればいいんじゃね?
単にキャラの座標を32倍して保持するか、しないかの差だろ。
歩くたびに割り算するのはあんまり好きじゃないけど、今時のPCならどうでもいいことだろうし。
要は短形で判定する必要はないってことじゃないかね。
1ピクセルが一歩なら別の方法取らなければならんが。
0745名前は開発中のものです。
2006/01/29(日) 17:05:54ID:Fm34QVYsキャラの1歩を32ドットとして当たり判定は移動先の座標にブロックがあるかないかで判断すると
キャラ移動時のアニメーションが必要になりますね
その辺りも勉強しておかないと
0746名前は開発中のものです。
2006/01/29(日) 17:34:55ID:op7RmHi90747724
2006/01/29(日) 17:36:03ID:38NWeupe「自キャラの座標」は適当に直して使えということではないかな?
俺だったら32倍して持たないけど。
745の二行目以降はよく意味が解らん。アニメーション関係あるか??
0748名前は開発中のものです。
2006/01/29(日) 17:50:53ID:Fm34QVYsポケモンとかのゲームは1歩が1マスで移動時にアニメーション
同じように1歩を1マスにするとアニメーション使わないと見栄えが悪くなるかなと思って
まだまだそんなこと言ってられるレベルじゃないけど
>「自キャラの座標」は適当に直して使えということではないかな?
なるほど。自キャラの座標は実座標で扱ってたのでマスとして扱ってみます
0749名前は開発中のものです。
2006/01/29(日) 17:53:21ID:38NWeupe/ 32 自体が間違ってるから不要と言ってるのではなくて
まぁ初心者だから、好きなようにやってみるといいんじゃね?
あとから仕組みがわかるだろうさ、という意味。
0750名前は開発中のものです。
2006/01/29(日) 18:12:51ID:vc0WpJnf0751名前は開発中のものです。
2006/01/29(日) 19:33:33ID:plNhfuQ3http://hobby-const.bbs.thebbs.jp/1126798622/
こんな感じのか?
0752名前は開発中のものです。
2006/01/29(日) 20:27:43ID:9zZt3Bjn3Dダンジョンはどのように作れば良いでしょう。
0753名前は開発中のものです。
2006/01/29(日) 20:42:43ID:plNhfuQ3「どのように」って質問されてもな。何答えろって言うんだろうな。
大工さんに頼めという答えを期待しているのだろうか?
1,データをどのように持つのか?
→ 自分が作りたいものを内部的にどう表現するのか?
2,準備したデータをどのように表示するのか?
→ 自分の場所と方向を変化させても通用するように一般化させてコードに落とす
の2段階を考えれば、全体の流れは明確だと思うのだが。
まず着手してもらえるかい。
その中で個別に問題が出てきたら、ここで質問するといいよ。
0754名前は開発中のものです。
2006/01/30(月) 14:41:03ID:pwza337w状態に応じた画像を用意しておきそれを組み合わせて表示する。
0755名前は開発中のものです。
2006/01/30(月) 20:49:25ID:cASwFPVkマップ間のリンクなんとかならないだろうか
いちいち位置を指定するのは面倒
>>749
いろいろやってみてるけどやっぱり難しいね
前作った物はキャラ移動の度に全てのチップに大して当たり判定してたから酷かった
0756名前は開発中のものです。
2006/01/31(火) 11:37:06ID:bncgzWlZソースをアップするのは自由だが文面から察するに
「誰かソース見て添削してくれ」と言わんばかりだな。
そのスタンスは歓迎されないし自分の為にならない。
僕らは君の先生じゃない。だが焦点を絞って質問すればその限りではない。
>マップ間のリンクなんとかならないだろうか
>いちいち位置を指定するのは面倒
マップを増やすたびにコンパイルが必要と言うのはあまりよくない。
どのマップからどのマップへ移動というデータは外部で持つべき。
そのトリガはマップチップの番号なのは言うまでもない。
とにかくアルゴリズム以外は外部ファイルに追いやる事が慣用。
0757名前は開発中のものです。
2006/01/31(火) 21:00:44ID:DVSWyTVl0758名前は開発中のものです。
2006/01/31(火) 23:47:03ID:9zYTSFdg私だって、す、好きでやってるわけじゃないからね!
べ、別にあんたなんか困っててもかまわないんだから!
バカーーーーーーーーー!!!
0759名前は開発中のものです。
2006/02/01(水) 02:12:15ID:C1VssrMU0760名前は開発中のものです。
2006/02/02(木) 16:47:09ID:zJWaviNk敵とかのプレイヤーが動かすことのできないオブジェクトはどうやって表現するの?
出現条件とかもわからないし
0761名前は開発中のものです。
2006/02/02(木) 16:59:17ID:ITiT6PpE>敵とかのプレイヤーが動かすことのできないオブジェクトはどうやって表現するの?
まぁ基本はこんな感じか。
for (i = 0; i < キャラクタの数; i++)
{
obj[i]->Move();// 移動処理&マリオとの当たり判定など
}
>出現条件とかもわからないし
出現条件はマリオの居る現在位置から割り出し、
画面に出現する直前にキャラクタの登録をしてるんじゃないかな?
それかマップのロード時に一括して登録して移動処理はしないで画面で出そうになったら
移動処理を開始するとか。いろいろ方法はあるな。
0762名前は開発中のものです。
2006/02/02(木) 17:47:28ID:zJWaviNkなるほど。
やっぱり専用のスレッドを作った方がいいでしょうか?
0763名前は開発中のものです。
2006/02/02(木) 18:00:45ID:WY9YNFgU0764名前は開発中のものです。
2006/02/02(木) 18:26:05ID:itlkOWhp0765名前は開発中のものです。
2006/02/02(木) 19:59:29ID:zJWaviNk勘違いしてるかもしれないので一応
_beginthread()で生成して_endthread()で破棄するスレッドのことです
現在メッセージループメイン関数(描画処理をプロージャのWM_PAINT内で行う)のほかに
キャラクター表示座標、マップ内表示座標調整スレッドがあります
0766名前は開発中のものです。
2006/02/02(木) 20:00:39ID:zJWaviNk0767名前は開発中のものです。
2006/02/02(木) 20:34:10ID:ITiT6PpEいやたぶん>>763-764は勘違いしてないと思うよ。
メッセージループとゲーム処理用のスレッドは分けてもいいけど、
ゲームでは仕事ごとにスレッドなんぞ作ったりしない。
マルチスレッドなんぞそれが絶対に必要な状況でなければしないほうがいい。
細かい事だが・・・
>プロージャ
プロシージャな。
0768名前は開発中のものです。
2006/02/02(木) 20:37:45ID:zJWaviNkそうでしたか
スレッド重くなりますかね
>プロシージャ
今までずっとプロージャプロージャ(ry
ありがとうございました
0769名前は開発中のものです。
2006/02/03(金) 17:39:09ID:61rrsxe9まぁゲーム以前にDirectXの扱い方知らないわけですが
0770名前は開発中のものです。
2006/02/03(金) 17:42:45ID:wdE0Xf80途中で絶対飛ばさず最後までやる。
これだけである程度は使えるようになる。
0771名前は開発中のものです。
2006/02/03(金) 18:24:26ID:1irKKshjH S P
0772名前は開発中のものです。
2006/02/03(金) 18:30:17ID:9+40YcymC言語とWindowsAPIは分かってるかもしれない。
0773名前は開発中のものです。
2006/02/07(火) 15:21:25ID:LNshS9pw0774名前は開発中のものです。
2006/02/07(火) 15:42:19ID:hMuL99HK0775名前は開発中のものです。
2006/02/09(木) 00:16:23ID:ECXOumIZ肝心のキャラクターのモデリングが全く進まん・・・
というより、どういうキャラを作れば良いか全く不明orz
ゲームの趣旨考えてなかったツケがこんなに早く回ってきた・・・
0776名前は開発中のものです。
2006/02/09(木) 00:46:35ID:omgxuJLh万死に値する
0777名前は開発中のものです。
2006/02/09(木) 00:48:24ID:ECXOumIZそれ聞くと鬱になる・・・
0778名前は開発中のものです。
2006/02/09(木) 01:21:47ID:4g56q1Crさすがにそれはプギャー
0779名前は開発中のものです。
2006/02/11(土) 20:44:09ID:6UQggnvCそんな君に
つQuaternion
>>778
コンパイルエラーならどこが悪いか箇所教えてくれるだけまし
0780名前は開発中のものです。
2006/02/11(土) 21:09:44ID:QzYc1Fwdテクスチャマッピング機能ってどうやって使うの?
VertexBufferに入れた物体には適応できるけど
Xファイルには適応できないような・・
0781名前は開発中のものです。
2006/02/11(土) 21:57:41ID:6UQggnvC最近のD3Dはわからんのだが、
基本的にXファイル自体はマテリアルやテクスチャを内部で持っている。
読み込むときに自前でテクスチャをロードし、
描画時にデバイスにSetTexture()する。
0782名前は開発中のものです。
2006/02/11(土) 22:34:00ID:86oM2yeqなぜ2フレームと書いてあるのにdwWait*3なのでしょうか?
void CFPSTimer::WaitFrame(){ // (C)yaneurao 1998-1999
DWORD t = timeGetTime();
m_dwFPSWaitTT = (m_dwFPSWaitTT & 0xffff) + m_dwFPSWait; // 今回の待ち時間を計算
// m_dwFPSWaitは、待ち時間の小数以下を16ビットの精度で持っていると考えよ
// これにより、double型を持ち出す必要がなくなる。
DWORD dwWait = m_dwFPSWaitTT >> 16; // 結局のところ、今回は何ms待つねん?
DWORD dwElp = (DWORD)(t - m_dwLastDraw); // 前回描画からいくら経過しとんねん?
if (dwElp>=dwWait) { // 過ぎてるやん!過ぎてる分、250msまでやったら次回に持ち越すで!
DWORD dwDelay = dwElp-dwWait;
//250以上遅れていたら、フレームスキップしない(初期化のため)
//そして、遅れ時間は0として扱う
if (dwDelay >= 250) dwDelay = 0;
/**///2フレームの描画時間以上ならば次フレームをスキップする
m_bFrameSkip =(dwDelay >= dwWait*3);
if (m_bFrameSkip) m_dwFrameSkipCounterN++;
t -= dwDelay;
// 今回の描画時刻を偽ることで、次回の描画開始時刻を早める
m_dwLastDraw = t;
m_dwElapseTime[m_nDrawCount & 31] = 0;
return ;
}
// ほな、時間を潰すとすっか!
m_dwElapsedTime += dwElp; // 時間待ちした分として計上
m_dwElapseTime[m_nDrawCount & 31] = dwElp;
m_bFrameSkip = false;//次はフレームスキップしない
::Sleep(dwWait-dwElp);
m_dwLastDraw += dwWait; // ぴったりで描画が完了した仮定する。(端数を持ち込まないため)
}
0783名前は開発中のものです。
2006/02/11(土) 22:39:19ID:QzYc1Fwdなるほど。
全てXファイルを使用するなら必要のない機能ということですね
0784名前は開発中のものです。
2006/02/11(土) 22:45:31ID:8qUzzjc4(余計にかかった時間が)2フレームの描画時間以上なら…
と読み替えればよろし。
つか、キモいコメントだね。
関西人ってみんなこうなの
0785名前は開発中のものです。
2006/02/11(土) 22:54:06ID:5Zuq4Zo9関西人と一括りにするのは失礼。
0786名前は開発中のものです。
2006/02/12(日) 01:38:10ID:w8yo3LTb0787名前は開発中のものです。
2006/02/12(日) 01:39:35ID:w8yo3LTb0788名前は開発中のものです。
2006/02/12(日) 01:43:36ID:BClNNt0M0789782
2006/02/12(日) 03:40:55ID:MOr6hByS実をいうと2フレームというところからして理解できないので
m_bFrameSkip = dwDelay > 0;
としました。
0790名前は開発中のものです。
2006/02/12(日) 11:39:09ID:n176RnBhコメントもコードもキモすぎると思ったら
あの偏執狂やねうらおか
0791名前は開発中のものです。
2006/02/14(火) 03:36:39ID:G6ky4O6B0792名前は開発中のものです。
2006/02/14(火) 03:47:35ID:eoybXVvM薄い面だけのポリゴンを複数画面に並べ、そこにマップチップ等のテクスチャを貼り付ければいいのですか?
自キャラの描画もキャラ用の薄い面にアルファ値を設定したテクスチャを貼れば大丈夫ですよね?
0793名前は開発中のものです。
2006/02/14(火) 04:05:40ID:Qt9KWBeq日本語で(ry
マジで薄い面って何だよ
0794名前は開発中のものです。
2006/02/14(火) 04:11:34ID:eoybXVvM日本語は苦手
0795名前は開発中のものです。
2006/02/14(火) 08:19:24ID:DFRR3HSf0796名前は開発中のものです。
2006/02/14(火) 08:51:04ID:NbMr8it4それは言い過ぎ。
「ポリゴン」とだけ言った場合は「多角形」という意味。
>>792-794
マジエスパーすると、いわゆる矩形スプライトのことだろう。
0797名前は開発中のものです。
2006/02/14(火) 10:49:04ID:9HsB+cDe0798名前は開発中のものです。
2006/02/14(火) 14:00:53ID:eoybXVvMそれっぽいです
ポリゴンに貼り付けないと2Dは描画できないと思っていたので
>>797
参考書と睨めっことか嫌いだから
いろいろ作りながら覚えていこうと思ってる
いってくる
0799名前は開発中のものです。
2006/02/14(火) 21:01:27ID:m/P5BAbG0800名前は開発中のものです。
2006/02/15(水) 13:57:58ID:DANF+Uun「ビルボード」は爆発とかに使う座標変換ありの1枚板だな
0801名前は開発中のものです。
2006/02/15(水) 18:51:04ID:CAX6fixrゼノギアスの戦闘シーンのキャラとか、FFTのキャラとかがビルボードですな。
爆発にも使えるけど。
どちらかといえば2Dの描画というより、3Dの背景の中に
2D絵をなじませるための技術だと思っていたが、その理解でいいのかな?
0802名前は開発中のものです。
2006/02/18(土) 19:38:52ID:qqhUmVxW描画用マップとコリジョンマップは1ステージ全て1つのXファイルで作るんですか?
0803名前は開発中のものです。
2006/02/18(土) 20:10:32ID:+8ZFcTvr例えば天井に衝突しないゲームなら、デザイナーさんに天井無しにしてもらうとか。
描画用ではカーブでも衝突用のは多少ごつごつしてても平気っす。
描画用もヒットチェック用もXファイルじゃなくってもいいけど、基本別々です。
0804803
2006/02/18(土) 20:13:53ID:+8ZFcTvr0805名前は開発中のものです。
2006/02/18(土) 21:07:24ID:qqhUmVxWなるほど、描画用マップはテクスチャ情報の付いたXファイルなど、
コリジョンマップは壁や各オブジェクトの位置を表したデータファイル・・・であってますか?
>作ってもらうといいじょー。
業界人ではないので誰にも作ってもらえないですorz
コリジョンマップエディタとかあるらしいのですが有料でしょうか
0806名前は開発中のものです。
2006/02/18(土) 21:28:28ID:5dz9KLeS風景を生成するっていう考え方もあるが、まぁ普通は別々に作るんだろうな
0807803
2006/02/18(土) 21:51:17ID:+8ZFcTvrそそ、描画データが大体、x,y,z,nx,ny,nz,u,v,面情報,マテリアル情報などなど〜、とかだけど
コリジョン用は、x,y,z,面情報、で十分なので。
>コリジョンマップエディタ
オラにはわかりませんです。
>>806
風景データの完成後、それをコピって別レイヤーで
がすがす頂点削ってく作業なので結構すぐ作ってくれます。
2〜3週間で作るデータでも、1・2日でコリジョンデータは出来てくるっす。
0808名前は開発中のものです。
2006/02/18(土) 23:15:29ID:vUI3VTnmそういうのもあるらしい。
0809名前は開発中のものです。
2006/02/19(日) 00:17:34ID:GTOCpkngどうやって実現しているんでしょう?
特に、スクロールとかやった時にどうして遠近感や空間関係が破綻しないのか不思議です。
なんたって、キャラは3Dで背景は2Dですからね。作るの難しいですかね?
0810名前は開発中のものです。
2006/02/19(日) 01:57:03ID:prU8DMPB0811名前は開発中のものです。
2006/02/19(日) 09:01:11ID:rJ6jDAqFフィールドは、全部3Dでおおまかなブロックにわけてスクロール。FF7で時々読み込み失敗する;;(飛空挺?とかで)
ダンジョンは、カメラの視点・注視点が動かないシーンは背景を2Dでプレイヤーの前面にくるオブジェを
3D計算で(これは2D計算(描画順序のみ)のままでもいけるところもあるかも)。
ムービーへ切り替えするときは、背景をムービーとして、カメラワークとプレイヤーの前面にくるオブジェだけ3D計算。
0812名前は開発中のものです。
2006/02/19(日) 14:15:08ID:GTOCpkng問題はカメラがキャラを追って大きくパン(背景絵もスクロール)するような広いダンジョンの場合は?
空間関係を保持出来ませんよねぇ?
0813名前は開発中のものです。
2006/02/19(日) 15:12:31ID:rJ6jDAqFカメラワークをキャラクターの位置から背景2D絵に対して平行にすべらせるとFF7〜9のようにできます。
(道がキャラクターより前面にくる時は当然3Dオブジェとして描画します。
というかFF7〜9の背景データは3Dデータから2Dにおとしてる?)
背景データが3Dじゃないと表現できないのはカメラ視点が平行移動せず奥へ向かって行く場合っす。
FF7〜9ではそういう時、ムービーを使用しています。
そういえばバイオハザードとかも同じっすね。
0814名前は開発中のものです。
2006/02/19(日) 15:14:58ID:prU8DMPB単純にスクロールしてるだけだと思ったが
http://gamdev.org/up/img/4707.jpg
■ このスレッドは過去ログ倉庫に格納されています