ページ 11

3D当たり判定

Posted: 2010年4月22日(木) 19:30
by tokage
3Dの壁や床のあたり判定を作ろうとしています。
自分で作ろうとすると壁を突き抜けるか、
DXライブラリのサンプル「3Dアクション基本」のパクリにしかなりません。
皆さんはどうやっていますか。 どなたか詳しい方、お願いします。

環境 Visual C++ 2008 Express Edition

Re:3D当たり判定

Posted: 2010年4月23日(金) 05:22
by Ma
あたり判定、というよりは接地しながら移動するなら、いかのとおりです。(私なら、、、)
ただ、ステージの仕様次第で計算がかわってきます。
ダンジョンのような完全にマスになっているような場合は、床は単純に計算できます。
壁は単純に移動後、どこにあるか計算して、移動可能範囲に出たら適当な処置を加えて移動可能範囲に戻すなどが有効かと。

リアルな地形の場合、そうはいきません。
この場合、自分の位置から地形データのある三角形の各頂点へベクトル3つをつくり、
それらを内積して足した角度で三角形上に現在いるか判定できます。
三角形上にないなら、179.99...度以下になる。

判定したら、現在のx,y座標と3つの頂点座標を用いてz座標を計算できます。

もちろん、他にもいろんな方法があるとおもうので、他の方の意見もきいてみてください。
*私はアマチュアで、他人が書いたアルゴリズムの一部を知っているだけなので。

Re:3D当たり判定

Posted: 2010年4月23日(金) 12:50
by softya
DirectXでの処理方法(主に理論面)ですが、こちらが参考になりませんでしょうか?
http://marupeke296.com/COL_main.html

Re:3D当たり判定

Posted: 2010年4月23日(金) 13:47
by たいちう
> DXライブラリのサンプル「3Dアクション基本」のパクリにしかなりません。

サンプルのパクリだと、何がまずいのですか?

オリジナリティが欲しい? → 掲示板で聞くのはOKなの?
○○という問題がある? → 問題を具体的に書くべき。

Re:3D当たり判定

Posted: 2010年4月23日(金) 16:22
by tokage
Maさん softyaさん たいちうさん 回答ありがとうございます。

現在、私はリアルなステージで作っています。
衝突判定の理論はなんとなくわかりました。これから試すつもりです。

パクリになるのを避けた理由はいずれ配布する予定で、パクリだと著作権などで
問題があるかもしれないと思ったためです。

Re:3D当たり判定

Posted: 2010年4月23日(金) 22:11
by tokage
いろいろ試そうとしてみましたが、どうやったらいいのかわかりませんでした
が、当たり判定自体は出来ました。壁や床の押し出す処理ができません。

ところでDXライブラリのDXライブラリのサンプルの一部を自分のプログラムに
組み込んだ場合著作権はどうなるのか、わかる方いませんか。

Re:3D当たり判定

Posted: 2010年4月23日(金) 22:47
by ookami
押し出す処理というのは分かりませんが、とりあえず著作権について。

まず、DXライブラリ本家の著作権に関するページは読まれましたか?
http://homepage2.nifty.com/natupaji/DxL ... cense.html


> ・DXライブラリの著作権は山田 巧が保持します。
> ・DXライブラリを使用して作成されたソフトウエアにDXライブラリを使用した旨を記載する
  必要はありません。(記載されれば嬉しいですが)

↑厳密にはサンプルについては言及されていないので、万全を期すなら著作者さんに問い合わせるのが良いと思います。が、readme.txt的なものにDXライブラリの使用を明記しておけば問題ないんじゃないでしょうか。

Re:3D当たり判定

Posted: 2010年4月24日(土) 08:19
by tokage
わかりました。
とりあえずDXライブラリの掲示板できいてみます。

Re:3D当たり判定

Posted: 2010年4月24日(土) 13:58
by tokage
きいてみたところ、どうやら
アプリケーションに組み込むなら問題ないようでしたので
解決にします。

皆さん ありがとうございました。