X

初心者が3Dゲームを作るスレ

■ このスレッドは過去ログ倉庫に格納されています
1Dr.D
垢版 |
2006/05/21(日) 00:24:28ID:HuR5iTxT
こんにちは。
ゲームプログラミングはそこそこできるけど、

3Dプログラミングはからっきしです。
サーフェイス?「サーフィン…とは別物だよな、きっと」
行列?「並ぶのは嫌いさ」
Xファイル?「そう言えば最終シーズン見てないなぁ」

そんなレベルの俺ですが、コツコツ作ります。

ではスタート!
2006/06/20(火) 00:26:29ID:sFktv1uZ
三角形と線分の交点?
2006/06/20(火) 00:27:34ID:Csx6/cfg
3D初心者は一番簡単な「球」で当たり判定してればいいよ。
それで適当なシューティングでも作ってればいいさ。

最初は小難しいことやらないで、自分に分かる範囲から
少しずつ勉強していかないと、すぐに挫折するぞ。
2006/06/20(火) 00:31:01ID:RRjthpri
球wwww
2006/06/20(火) 00:37:58ID:9rwJB1S8
当たり判定の取り方、2Dは矩形、3Dは球が基本だとよく聞くね
2006/06/20(火) 01:02:02ID:3eo7HEKQ
>3D初心者は一番簡単な「球」で当たり判定してればいいよ。
>それで適当なシューティングでも作ってればいいさ。
知ったかぶりも大概にシル

キャラなら球かも知れんが
ステージの壁とか球でやる必要ないだろ・・
むしろFPS食って遅くなる
しかも球は三次方程式なんだよ
一次方程式で苦戦している子に無理させるな

結局、レイを使う方法(面と垂線の交点)も学ばんといけません

それにな、まずは点でキャラ作って当たり判定だろ・・それができて
アニメーションさせたりする頃に「キャラの肩が壁に食い込む・・」で球なんだよ
順番にした方が良い、でないとデバックできないプログラマーになるよ
2006/06/20(火) 01:35:02ID:3eo7HEKQ
面(三角形のポリゴン)とキャラクターの位置を表す点から
その点は面の垂線(法線ベクトル)かどうか判断させる

答えが真なら今度はどれぐらい離れているか

その値は面が張られている重心からの法線ベクトルの値を
正の方向とみなして正か負か見る

それらが分れば当たっているか?
当たっていないか?
突き抜けているか?分る
2006/06/20(火) 01:47:02ID:WcdFUVKV
>>131
なんか勘違いしてない?
球って楕円じゃなくて、距離だけで判定する真ん丸の球。
それに面との当たり判定を、球でやれと言ってるわけじゃないよ。

3Dを勉強始めて一週間、3Dの仕組みも分かんないのに
当たり判定なんかで躓いてるなら、もっと基本的なことから
やってった方がいいんじゃないのか? って言いたいだけ。
2006/06/20(火) 02:06:55ID:sFktv1uZ
自分の場合はこんな感じ。

@線分のパラメータtを決定(三角形の式と線分の式からtを決定する式を求めておく)
Atの範囲をチェック
Btから交点を求める
C交点から三角形のパラメータu,vを求める
Du,vの範囲チェック

あくまで線分(or半直線)と三角形との判定だけど。
2006/06/20(火) 02:11:11ID:3eo7HEKQ
>球って楕円じゃなくて、距離だけで判定する真ん丸の球。
そんじゃそれの式書いてミソ
結局XYZで三次方程式になるよ
一次方程式うんぬんなのにその式を導けるだろうか
・・・・
もしかしてCASE文やif文で処理させようと考えてる・・まさかね・・
2006/06/20(火) 03:27:24ID:sFktv1uZ
>>132
興味深い判定方法ですが、
御披露ついでに凹状の角での判定方法をご教授ください。
下図ABDでの判定は問題なさそうですが、

A ┃B
─┗━
C │D

Cからの垂線はいずれの面にも乗らないように思えます。

>>135
こんな感じにすれば、三次方程式にならないと思います。

// x0,y0,z0 : 点0の座標
// x1,y1,z1 : 点1の座標
// size_2 : サイズの二乗
dx = x1-x0;
dy = y1-y0;
dz = z1-z0;
if(dx*dx + dy*dy + dz*dz <= size_2)
{
// 当たり
}
else
{
// はずれ
}
2006/06/20(火) 06:41:55ID:mSOw/G6z
>>135
球はどうみても多変数二次方程式。

3Dで簡単に判定できるものの順に
Sphere>AABB>OBB>N-DOP>ConvexHull
そもそもAABBと面の衝突判定なんかめんどくさいんだよ。
面が全部xyz軸に平行であるわけもないんだぞ(ついでに言えば2Dだってそうだが)
2006/06/20(火) 09:21:15ID:xCW0SmV8
if( (x^2 + y^2 + z^2) <= r^2 )
2006/06/20(火) 15:23:09ID:f59jmO5J
>ID:3eo7HEKQ
 
イ`_
2006/06/20(火) 16:32:05ID:t+g0M0dT
ID:3eo7HEKQは釣りだと思ったんだが・・・
2006/06/20(火) 19:21:44ID:x5ZOe6BS
>>140氏のIDに仮面ライダーがいるw

AABBってAxis-Aligned Bounding Boxes Treeですよね

A ┃B
─┗━
C │D

って厚さが0の壁だとできませんね
まぁ厚さゼロの壁ってあえて作らなくても
よほど速度を必要としない限り壁を2重にすれば良いことですが

A ‖B
=#=
C ‖D

2006/06/20(火) 19:25:50ID:x5ZOe6BS
すいません
>>141は私です。
2006/06/20(火) 19:42:30ID:x5ZOe6BS
>面が全部xyz軸に平行であるわけもないんだぞ(ついでに言えば2Dだってそうだが)
xが正か負か
yが正か負か
zが正か負か
の組み合わせで法線ベクトルの内容から
8パターンメソッド作れば曲面だろうとできますね
@x>0、y>0、z>0
Ax<0、y>0、z>0
Bx>0、y<0、z>0
Cx<0、y<0、z>0
Dx>0、y>0、z<0
Ex<0、y>0、z<0
Fx>0、y<0、z<0
Gx<0、y<0、z<0
ちなみにxyz三成分のどれかが0ベクトルの場合は
8パターンのどれかが併用できます。
三成分とも0ならって・・・壁じゃないですし



2006/06/20(火) 20:23:15ID:x5ZOe6BS
重力がかかってる場合は

xが正か負か
zが正か負か
と天上か床(坂)か
の組み合わせで法線ベクトルから
4パターン+天上、床で作れば曲面でもできることになります
@x>0、z>0
Ax<0、z<0
Bx>0、z<0
Cx<0、z>0

ちなみにxz三成分のどれかが0ベクトルの場合は併用
坂になる場合はy成分分移動して上げてやれば良いですし

2006/06/20(火) 20:30:06ID:7foOlmqj
3eo7HEKQ=x5ZOe6BSなん?
146名前は開発中のものです。
垢版 |
2006/06/20(火) 21:52:27ID:q3QYoQKK
>>126
struct VECTOR
{
float x;
float y;
float z;
};
void VectorAdd( VECTOR *vec, const VECTOR *vec1, const VECTOR *vec2);//ベクトル和
void VectorSub( VECTOR *vec, const VECTOR *vec1, const VECTOR *vec2);//ベクトル差
void CrossVector( VECTOR *vec, const VECTOR *vec1, const VECTOR *vec2);//外積
float DotVector( const VECTOR *a, const VECTOR *b);//aとbの内積を返す
147名前は開発中のものです。
垢版 |
2006/06/20(火) 21:54:00ID:q3QYoQKK
>>146
int CheckTriangleCross( VECTOR begin, VECTOR end, VECTOR* pos, VECTOR *v)
{
// 平面の方程式より n(法線ベクトル)、d を求める
VECTOR n, p1, p2;
VectorSub( &p1, &v[1], &v[0]);
VectorSub( &p2, &v[2], &v[0]);
CrossVector( &n, &p1, &p2);

float d = -1 * (n.x * v[0].x + n.y * v[0].y + n.z * v[0].z);

// 直線の方程式より a、p を求める
// p = a*t + b
VECTOR a;
VectorSub( &a, &end, &begin);

// tを求めることで、交点を求める
float top = -(begin.x*n.x + begin.y*n.y + begin.z*n.z + d);
float bottom = DotVector( &n, &a);

// 平行判定
if ( bottom == 0.0f) return false;

// tは直線のパラメータ
float t = top / bottom;
148名前は開発中のものです。
垢版 |
2006/06/20(火) 21:54:59ID:q3QYoQKK
>>147
// 面と線の交点を求める
VectorMultiply( &a, &a, t);
VectorAdd( pos, &a, &begin);

// 0 = < t = < 1 以外の場合、交差していないので抜ける
if ( t < 0.0f || t > 1.0f) return false;

// 三角形内外判定
for ( int i = 0; i < 3; i++)
{
// 外積を利用して内外判定
VECTOR pn, p1, p2;
VectorSub( &p1, &v[((i+1)==3) ? 0: i+1], &v[i]);
VectorSub( &p2, pos, &v[i]);
CrossVector( &pn, &p1, &p2);

// 法線の方向判定用
pn.x = pn.x * n.x;
pn.y = pn.y * n.y;
pn.z = pn.z * n.z;

// すべての場合の法線が同一方向ならば、p は三角ポリゴン内に存在する
if ( (pn.x < -0.001) || (pn.y < -0.001) || (pn.z < -0.001)) return false;
}

// ここまで来たら交点有り
return TRUE;
}
2006/06/20(火) 22:14:30ID:t+g0M0dT
>>148

// 法線の方向判定用
pn.x = pn.x * n.x;
pn.y = pn.y * n.y;
pn.z = pn.z * n.z;

// すべての場合の法線が同一方向ならば、p は三角ポリゴン内に存在する
if ( (pn.x < -0.001) || (pn.y < -0.001) || (pn.z < -0.001)) return false;

上の部分って↓みたいにならん?
if ( DotVector( &pn, &n ) < 0.0f ) return false;
150名前は開発中のものです。
垢版 |
2006/06/20(火) 22:49:13ID:q3QYoQKK
>>149

それでも大丈夫だと思います。
2006/06/20(火) 23:12:15ID:RRjthpri
>150
見てもらいたいからってそんなにあげんでいいよ。
ここ過疎だし固定客しか見てない。
2006/06/21(水) 00:08:56ID:tL5CMgOs
検索した方が早い
2006/06/21(水) 00:31:19ID:nchM9XqJ
ここは、なかなかセクシーなスレですねっ!!!
上段はさておき自分の場合、

Sを始点、Eを終点、tをパラメータとする線分の式
P = S(1-t)+Et…@
P0,P1,P2を頂点、u,vをパラメータとする三角形の式
P = P0u+P1v+P2(1-u-v)…A
交点は@とAのPが一致する座標となるから
S(1-t)+Et = P0u+P1v+P2(1-u-v)…B

ここでパラメータt,u,vのうち、
線分の式により交点の座標が定まるよう、まずはtを求める。

BのS,E,P0,P1,P2はそれぞれx,y,zの次元を持つから、
Sx(1-t)+Ext = P0xu+P1xv+P2x(1-u-v)
Sy(1-t)+Eyt = P0yu+P1yv+P2y(1-u-v)
Sz(1-t)+Ezt = P0zu+P1zv+P2z(1-u-v)
この連立方程式からtをを定める式を導き出してる。

計算コストで言うと、明示的な掛算の回数が少なくなるけど。
ポリゴンの範囲チェックでパラメータを求める分、
割り算の回数が多い。。。まぁ、よく判らないんで放置w
2006/06/21(水) 00:36:30ID:2oEFK81Z
>3eo7HEKQ=x5ZOe6BSなん?
一応、違うと言っときます。
2006/06/21(水) 00:37:59ID:8NdrsnlZ
なんでトリ付けてるの?
どっか活動中?
2006/06/21(水) 01:01:19ID:nchM9XqJ
> 一応、違うと言っときます。
それは残念。
ID:3eo7HEKQ氏の処理はどの程度うまく動くか判断できなかったのですが、
ID:3eo7HEKQ氏=ID:x5ZOe6BS氏ならうまく動く事確実なので、
そこらへんの細かいお話を伺えると思ったのですが。。。。
157126
垢版 |
2006/06/21(水) 09:40:41ID:XQIjdcmw
>>146さん
直線のパラメータtなどはちょっと勉強不足で、理解できなかったので、

線分と平面の当たり判定は、
/////////////////////////////////
線分 : P1(x1,y1,z1)、P2(x2,y2,z2)
平面 : 平面上の点P0(x0, y0, z0)
平面の法線ベクトル : N=(nx, ny, nz)

線分の端点P1(or P2)が平面の表にある場合は、
P0からP1(or P2)へ向かうベクトルと法線ベクトルとのなす角度が常に鋭角になるので

「((P1-P0)・N) * ((P2-P0)・N) <= 0ならば線分は平面と衝突を起こしている」
/////////////////////////////////
という方法を使わせてもらいました。
(あるサイトで紹介されていた方法なのですが、自分でも理解できたのでこれを使わせてもらいました。)

たくさん書いてもらってすみませんでしたorz
2006/06/21(水) 19:15:47ID:DHibxNni
ふむふむ。、>>146じゃないが、
>>157の方法だと確かに平面と線分なら問題はなさそうだ。。
ただ平面というのは無限に広がる面なので、
自分の場合はちょっと使いどころが無いのが残念w
2006/06/29(木) 01:33:15ID:+myyGLQc
保守
160名前は開発中のものです。
垢版 |
2006/06/30(金) 09:42:14ID:JQhm0Yve
>>43

現在win APIの勉強中・・・(・∀・)人(・∀・)ナカーマ!!

いたら教えて。
なんていう本、またはソースで勉強してるの?

ちなみに漏れは、windowsゲームプログラミング(本)。

亀レススマソ。
16143
垢版 |
2006/06/30(金) 18:43:04ID:Fh8kUW/J
俺と同じ本だ・・・
今は諦めてDXライブラリでゲーム作ってるよ・・・なさけねぇ
いつかまたwinAPIに触れようと思っている
2006/07/01(土) 00:06:02ID:j5ebeXWh
しかしDXライブラリって簡単かねぇ。
他人のソース読むのがめんどくさいから自分で書くほうが楽でいいわw
2006/07/01(土) 09:49:01ID:8VNO6grd
マジレスすると超簡単
2006/07/01(土) 11:15:28ID:H2hy9ae2
WinAPIやDirectXを直接叩くより数倍楽。
板ポリにテクスチャ貼って描画するだけでもえらい面倒だよ。
165名前は開発中のものです。
垢版 |
2006/07/01(土) 15:26:03ID:p53ONq7r
>>161

いいんだ。ぜんぜん気を落とすことなんてないんだ。
実は漏れも1年くらい前、途中でマンドクセ('A`)なって
一回投げたことがあるから。

だから今回はそん時のリベンジマッチってことになる。

幸先悪い話聞いたな…(´・ω・`)…なんて思わないから
ガンガッテイコウ!!(`・ω・´)


2006/07/02(日) 13:37:42ID:GP7aSXlD
中高の数学には今になって感謝してる。
人生どこで中高の勉強が役に立つかわからんね。
2006/07/02(日) 15:06:57ID:q2LDxFVa
>人生どこで中高の勉強が役に立つかわからんね。
いや、ここで役に立つのはわかる。
168165
垢版 |
2006/07/02(日) 18:13:42ID:qyshWDdK
ふぁ。
ようやくウィンドウ作ってそん中に図形描けるようになったぜ!(`・ω・´)

PolyPolyline で。
四角形とかの単純な図形を。


・・・(´-`;).。o0(…急がば回れ…千里の道もはじめの一歩…マックノウッチ…マックノウッチ…)




2006/07/02(日) 18:53:47ID:h9xmz31D
>>168
回ってる途中で急いだ俺はダメだな
2006/07/02(日) 19:06:02ID:GP7aSXlD
つ[回転椅子]
2006/07/02(日) 20:02:24ID:zXthLev1
つ [まどかひろし]
2006/07/20(木) 23:49:01ID:uxr6R5W7
保守?
173名前は開発中のものです。
垢版 |
2006/08/16(水) 10:16:36ID:rq/Dm8hs
http://jbbs.livedoor.jp/game/19583/
http://x3dero.s10.x-beat.com/sexy/imagebbs/index.shtml
ゲームは出来上がってるが外見の改造から入って見るのはどうだ?
174161
垢版 |
2006/08/22(火) 18:19:49ID:3gvfnaQX
3Dをやるためについに!C言語からHSPに以降しました・・・なさけねぇ
Easy3Dを使えば簡単に3Dゲームが作れるんだね
2006/08/22(火) 23:31:33ID:IkFxpiNA
内心、俺はどこまで落ちていくんだ?うへへへへ
とか喜んでいたりして
2006/08/23(水) 22:24:38ID:57PriyyJ
次はツクールかな
177名前は開発中のものです。
垢版 |
2006/08/23(水) 22:34:04ID:piSWrXf+
>>176
俺はそこまでは落ちないよw
絶対にHSPで3Dのゲーム作るから応援してよ
2006/08/23(水) 22:40:09ID:ixV4pUya
ガンガレ
2006/08/24(木) 01:00:20ID:7bCQmUSK
>>177はたぶん途中で飽きてC++に以降する。
2006/08/24(木) 01:36:16ID:lpN4Jq6L
>>178
ありがちょん

>>179
レベルあがってんじゃんw

モデリングって大変だね・・・みんな何のソフト使ってるの?
ちなみにおれはRiosだけど

2006/08/24(木) 01:41:51ID:6CXrqNdd
定番のMetasequoiaとか

最近はBlenderに手を出してる
機能は豊富だが日本語資料が少なくて辛いぜ
2006/08/24(木) 01:54:08ID:lpN4Jq6L
>>181
メタセコは慣れてないなぁ
おれもBlender触った事あるよ・・・資料がなくて諦めたw
2006/08/24(木) 02:05:03ID:6CXrqNdd
使いこなせれば高価な商業ソフトにもケンカ売れるんだけどなー
Blenderだけでアニメを作ろうってプロジェクトがあったけど、それが凄ぇ
ttp://orange.blender.org/

でもモデリングだけなら他にもっと使いやすいのがあるなw
2006/08/25(金) 00:48:26ID:fE3sKsfU
>>183
スゲーなぁ
暇があったら見てみよおっと


作りたいゲームが決まりました・・・車で悪い人たち倒すゲームです。カーマゲドンみたいにね♪
185名前は開発中のものです。
垢版 |
2006/08/25(金) 09:30:46ID:lMXmC7J1
>車で悪い人たち倒すゲームです

悪い人たちって、まさかただの通行人なんじゃ・・・・
186名前は開発中のものです。
垢版 |
2006/08/25(金) 23:35:33ID:fE3sKsfU
>>185
いえいえ、そんな残酷なものは作りませんよ。

今日はちゃっちい重力を追加してみたいと思います
2006/08/25(金) 23:43:08ID:RVtfbAQ1
> 車で悪い人たち倒すゲーム

悪人の後ろから忍び寄り…
悪人が歩くタイミングに合わせて直径2〜3センチの車(輪)を転がして…
悪人を転ばすゲームを想像した。
188名前は開発中のものです。
垢版 |
2006/08/26(土) 00:16:20ID:Xe1T2ygq
>>187
そう読み取る事もできるねw

自動車で悪い人たちを轢いてやっつけるゲームです
これでいいよね?
2006/08/26(土) 00:43:13ID:rYAFjXGI
最近の若者は発想が怖いなあと思った俺はもう歳か
190名前は開発中のものです。
垢版 |
2006/08/27(日) 02:57:11ID:T4cgU/7K
>>189
できない事ができるのがゲームなんだよ!
出血とかはしないようにするよ。

きょうは自動車の動きを車っぽく調整・・・ねみぃ疲れた
2006/08/27(日) 06:20:42ID:DcPmG1mi
ホントに怖いのは
犯罪を犯す奴も、批評する奴も仮想と現実の区別が付かない人間
2006/08/27(日) 12:00:05ID:T4cgU/7K
>>191
なんでそんな人間になっちゃうんだろ?
2006/08/27(日) 12:24:20ID:f+3tvpuV
その発想は無かった。
ゲーム・漫画のせいとは必ずしも限らないとは常々思っているが。
ちょっと心理学関係でググってみる・・・。
2006/08/27(日) 12:55:48ID:f+3tvpuV
体系的に調べたわけじゃないけど分かってきたことを。
詳しいやついたら突っ込み求む。
現実・仮想との区別がつかなくなるというのは
どうも受動的なものではなくて、
能動的なもの、若しくは何らかの結果みたい。
例えばアイデンティティ・同一性の崩壊といったストレス要因や
その他認知症など精神病によって引き起こされる等。
で、現実を見つめるのは嫌だから
その代替として存在するのがバーチャルな世界。
または自殺など。アルコールに依存するのもこの類かも。
ゲームはそういった受け皿の一つになってしまってるようだ。
だから別に何時の時代でも存在しうるものだよなぁ。
2006/08/27(日) 13:05:32ID:8lU4MMS6
ココに行けば(死)神になれるかもw

不謹慎ゲームを作ってウプするスレッド
ttp://pc8.2ch.net/test/read.cgi/gamedev/1010757112/
2006/08/28(月) 14:10:29ID:HIo9+j87
むしろ「空想と現実の区別をつける」ことが当たり前になりすぎている。
自分の行動から予想される未来に現実味を感じることができなくなり、
すぐバレる嘘をついたり稚拙な犯罪を継続的に繰り返すことをやめられない。
2006/08/28(月) 14:24:45ID:flHdpTau
3行に纏めたのは評価するが意味不明
2006/08/29(火) 01:15:19ID:mwqFXy+t
というか、人間が本質的に持っている空間に対する同質性と
ヒトの心情がもつ独特の疎外感とが空間論理の形成において
大きな親密性を齎してると思うよ。
人間の創造性から成り立つ模擬空間の執着点が結局の所は
ヒト自身のの思考に還元されてるわけだし。
2006/08/29(火) 01:34:34ID:IhhKOa9o
恥ずかしくないのか?
200名前は開発中のものです。
垢版 |
2006/08/29(火) 10:55:23ID:zR1U2plI
>人間が本質的に持っている空間に対する同質性と

これは何を意味しているのか。 常識感ぐらいの意味か?


>ヒトの心情がもつ独特の疎外感とが

この疎外感はなんらかの異常によってもたらされ
ものか。 ヒトには昔からあるもの?

> 人間の創造性から成り立つ模擬空間の執着点が結局の所は
>ヒト自身のの思考に還元されてるわけだし。

この場合、 「ヒト自身のの思考に還元されること」について
どう考えているかが書かれていないと
言っていることが判らないが・・・
2006/08/29(火) 12:39:30ID:ZlgvxY7u
スレ違いを通り越して、板違いになってるな。
VIPで好きなだけやれば?
2006/08/29(火) 12:40:54ID:aFcPk/3/
そうやってなんでもVIP押しつけて(ry
2006/08/31(木) 02:25:18ID:p7DQv3N1
xsiからエクスポートしたボーンアニメーションファイルを読み込みモデルをアニメーションさせるプログラムを組んでいるのですが、
xsiファイルのsrtとbaseposeの関係が分かる方いますか?
いましたら、教えて頂きたいのですが…。
2006/09/03(日) 12:57:00ID:MSbAMLeQ
昔のBASICなどのCG本で、ワイヤーフレームから始めたら?
あとQBASICとかで、ソースが公開されているのも海外サイトにはある。
チープなできになるなら、いっそのことワイヤーフレームのほうが面白いと思う。
2006/09/03(日) 13:05:09ID:zsKqvcJI
昔ワイヤーフレームが持てはやされたのは、
ハードウェアの描画能力が貧弱だからであって、
今現在ワイヤーフレームをやったからと言って、
ポリゴンに比べて特に楽をできるわけじゃない。
2006/09/03(日) 13:09:31ID:vD5v1gOy
それでもワイヤーフレームなら
  ワイヤーフレームならやってくれる!
2006/09/03(日) 13:22:04ID:1kU+Ds5D
骨だけのMMO作ったりとか
皮は脳内変換or有料
2006/09/03(日) 14:23:09ID:MD5hbIM2
今のハード環境でワイヤーフレームを簡単に描くって結構難しいよな…
シェーダを駆使すれば意外とできるような気がせんでもないけど。
2006/09/04(月) 01:00:59ID:2vIP0MH6
>>208
んなこたーない
2006/09/04(月) 14:25:51ID:LpOb58zj
3Dゲームのコードを組めても3Dモデルが作れない俺は負け組
2006/09/04(月) 15:06:09ID:UMfcyorO
>>210
豆腐でいいじゃん
後で誰かにやってもらえば
2006/09/04(月) 20:28:51ID:LpOb58zj
>>211
なるほどな
やってくれる人いないけど
2006/09/04(月) 21:44:29ID:fbr17Wpa
オレが作ってやるよ。




豆腐ポリゴン
2006/09/05(火) 00:38:16ID:pHJU/n9G
豆腐なら俺も負けねぇぜ
2006/09/05(火) 01:40:33ID:z1Ic6Xib
俺なんか三角錐型の豆腐つくれるぜ
2006/09/05(火) 02:11:39ID:4BDKYdtt
じゃあ豆腐で萌えキャラつくったる!
2006/09/05(火) 02:33:25ID:kTQ1s7hO
んじゃ、俺豆腐に味噌つけてやるぜ
2006/09/05(火) 07:44:25ID:qx8DPDx9
じゃあ更に豆腐に手足つけてやる。
これでどんなゲームにでも使える。

3DアクションRPG、3Dシューティング、3D格ゲー、3Dエロゲー…


   __
 ヽ|・∀・|ノ ホァッ!!
  |__|
   | |
2006/09/05(火) 16:31:28ID:MbHH/zBe
羊羹はおよびじゃないぜ
220名前は開発中のものです。
垢版 |
2006/09/08(金) 02:48:42ID:TZNoDZC2
キャラクターを複雑な地形の上を移動できるようにしたいと思い
キャラクターは点で、地形はメッシュで衝突判定をとることにしました

今はD3DXIntersectで真上(0,1,0)の方向にレイを飛ばし
レイと衝突するポリゴンがあればその衝突位置までキャラクターを移動させ
衝突が無ければキャラクターを落下させています。

この方法だとどれだけ急激な斜面でも、XZ平面上での移動速度は変わらないため
凄い勢いで斜面をかけのぼりますし、斜面が90度以上の傾斜だとメッシュを突き抜けてしまいます
また、ジャンプして天井に激突みたいな事をしてもポリゴンを突き抜けます
(というかジャンプした瞬間に天井の上に移動してしまう)

なんかうまい方法ないでしょうか?ググっても上記の方法しか見つけられませんでした
2006/09/08(金) 08:34:57ID:LdA3pTQ6
基本は2Dと変わらない希ガス
2006/09/08(金) 12:24:36ID:E5m1O3AC
キャラの移動に方向ベクトル、速度ベクトル、重力ベクトルを
設定して自前で内積判断する。
2006/09/08(金) 14:28:42ID:BVhg1uov
自前もD3DXIntersectもやることは同じ。
220はただテンパってるだけ。冷静に考えれば分かるはず。
2006/09/08(金) 15:50:42ID:oOKY8iDf
つか、この辺が3Dゲームプログラミングの面白いところだよな。
仕事で締め切りに追われてるんで無ければ、じっくり楽しむがよい。

とりあえずジャンプ中はレイを飛ばす方向を上下反転すればいいんじゃねーの?
あと、接触した場合そのポリゴンの法線をどうにかしてゲットして、急すぎるなら
上れないようにすればいいんじゃね?
2006/09/13(水) 11:16:32ID:r9CdL1xq
垂直になっているみたいな急激な段差がある所は進めない方にした方がよくね
移動後と移動前のy座標の差がある一定以上なら過去の座標に戻しておけばOK
226名前は開発中のものです。
垢版 |
2006/09/13(水) 20:56:48ID:XgUJHN5F
>>89
俺はHでつまずくな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況