HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0628
ななしさんHGIMG3での障害物の衝突応答のしかた4解決


ななしさん

リンク

2009/6/28(Sun) 20:21:56|NO.26075

HGIMG3を使って、3Dゲームを作っていますが、どうしても衝突応答のところで詰まってしまいます。

たとえば、四角い箱が合った場合、横からぶつかったら、押し戻され、上からぶつかったら、箱に乗るとします。
下のURLにある押し戻しを実装しましたが、角の部分で誤差が出ます。
http://marupeke296.com/COL_3D_No14_OBBvsPlane.html
obb同士の判定は、hgimg3のmodelcolsとgetcoliである程度の判定が出来ますが、当たり判定の範囲が整数値までで、たとえば15.0も15.9999でも15で判定しますので、0.99分離れていても当たった判定をします。コレが誤差の原因じゃないかと思っています。
やっぱり、当たり判定自体を全部自前で計算したほうがいいのでしょうか?
また、もっと効率のいい計算方法があるんでしょうか?

よろしくお願いします。



この記事に返信する


いなえ

リンク

2009/6/29(Mon) 10:23:54|NO.26083

HGIMG3において、modelcolsとgetcoliによる判定は単純な直方体判定で、
オブジェクトの回転は当たり判定に反映されなかった気がします。
回転していない直方体オブジェクト同士でないと
当たり判定はうまくいかないのではないでしょうか。
つまり、一般の場合には自前で計算するしかないと思います。
もしくは他人のスクリプトに頼るのもありかもしれません。

なお、「当たり判定の範囲が整数値まで」とありますが、
実験した結果そのようなことは生じませんでした。
その結論に至ったサンプルスクリプトなど挙げていただけるとありがたいです。



ななしさん

リンク

2009/6/29(Mon) 23:11:38|NO.26105

いなえさん、コメントありがとうございます。

昔、テストしてmodelcolsで当たり判定範囲を設定すると回転も反映されると確認したつもりでしたが、今日もう一度試してみたら、どうも反映されていないみたいです。
どうも、自分の勘違いみたいです(でも、前に試したときはうまくいったような感じだったのに・・・)。

getcoliで大まかな判定をして、その後自前のスクリプトを組んで、細かな判定をすることにします。

お手数かけてすみません。



ななしさん

リンク

2009/6/29(Mon) 23:12:00|NO.26106

解決チェック入れます



まぅ

リンク

2009/6/30(Tue) 00:27:13|NO.26109

ぼくもコリジョンをちょうどやっていたのですが、
回転には対応していないのに気づかずおかしいなぁと考えていました。
ヴァージョンアップで回転できるようになるとうれしいですね!
おにたまさんよろしくお願いします。



ONION software Copyright 1997-2023(c) All rights reserved.