WEBVTT 00:00:00.000 --> 00:00:02.084 コライダとは、 00:00:02.084 --> 00:00:03.874 ゲームオブジェクトにアタッチすると 00:00:03.874 --> 00:00:05.585 他のコライダに反応するコンポーネントであり、 00:00:05.585 --> 00:00:07.585 そのためには衝突するゲームオブジェクトのどちらかが 00:00:07.585 --> 00:00:09.585 Rigidbody コンポーネントをアタッチされている必要があります。 00:00:10.209 --> 00:00:12.828 コライダには様々な形状や種類があり、 00:00:12.828 --> 00:00:14.828 緑色のラインに囲われて 00:00:14.828 --> 00:00:16.235 シーンビューで描画されます。 00:00:16.459 --> 00:00:18.982 形状は次に挙げるプリミティブ (原始図形) のいずれかです: 00:00:18.982 --> 00:00:31.062 Sphere, Capsule, Box です。 00:00:32.663 --> 00:00:35.273 より複雑な形状には二つのオプションがあります。 00:00:35.474 --> 00:00:37.406 これらのプリミティブ形状のいずれかを 00:00:37.406 --> 00:00:39.708 組み合わせるために、別のオブジェクトに 00:00:41.730 --> 00:00:42.852 プリミティブ コライダを Hierarchy 上で 00:00:39.708 --> 00:00:41.730 適用します。 00:00:42.852 --> 00:00:44.852 この workbench オブジェクトには 00:00:44.852 --> 00:00:46.852 複数のオブジェクトがあり、 00:00:46.852 --> 00:00:49.156 いくつかのエリアの 00:00:49.156 --> 00:00:50.682 別のコライダからなっています。 00:00:50.782 --> 00:00:54.156 もうひとつのオプションはメッシュ コライダを使用することであり、 00:00:54.156 --> 00:00:55.988 これにより指定したメッシュの形状に 00:00:55.988 --> 00:00:57.686 完全に一致します。 00:00:58.186 --> 00:01:00.620 右の workbench オブジェクトには階層はなく 00:01:00.620 --> 00:01:02.620 その代わりにメッシュ コライダを使用します。 00:01:02.620 --> 00:01:04.620 メッシュ コライダを使用しない理由は、 00:01:04.620 --> 00:01:06.620 指定したメッシュの形状と完全に 00:01:06.620 --> 00:01:08.620 一致するためです。 00:01:08.620 --> 00:01:11.073 つまり、複雑なモデルのメッシュを指定すると 00:01:11.073 --> 00:01:13.073 複雑すぎるコリジョン メッシュを提供するかもしれず 00:01:13.073 --> 00:01:15.611 パフォーマンスに影響します。 00:01:15.794 --> 00:01:17.693 複合的なセットアップを使用したほうが 00:01:17.693 --> 00:01:19.693 良い理由はこのためです。 00:01:20.076 --> 00:01:21.840 しかしコリジョンする物体を作成するには 00:01:21.840 --> 00:01:24.463 3 つめの選択肢があり、 00:01:24.463 --> 00:01:26.861 別のよりシンプルな物体に修正して 00:01:26.861 --> 00:01:29.664 メッシュ コライダを使用する方法です。 00:01:29.997 --> 00:01:32.248 この例では、複雑なロボット アームの 00:01:32.248 --> 00:01:33.997 アセットがあります。 00:01:34.331 --> 00:01:36.196 これは非常に複雑なメッシュですが 00:01:36.196 --> 00:01:38.196 衝突の際にここまで複雑な 00:01:38.196 --> 00:01:39.929 メッシュは必要ではありません。 00:01:40.162 --> 00:01:43.428 ここでは 00:01:43.428 --> 00:01:45.827 二個目の物体のセットを作成して 00:01:45.827 --> 00:01:48.279 一連のメッシュ コライダに適用してます。 00:01:48.279 --> 00:01:50.279 例えば爪のこの部分は 00:01:50.279 --> 00:01:51.809 そのために作成したコリジョン メッシュよりも 00:01:51.809 --> 00:01:53.275 複雑です。 00:01:53.625 --> 00:01:55.547 二つの別の FBX ファイルで行われてます。 00:01:55.547 --> 00:01:59.642 元のモデル作品と物体をローポリにした物体の 00:01:59.642 --> 00:02:01.557 二つです。 00:02:01.742 --> 00:02:03.591 それから各々を見ていって、 00:02:03.591 --> 00:02:05.591 メッシュ コライダを適用して 00:02:05.591 --> 00:02:07.524 使用するコリジョン メッシュとして 00:02:07.524 --> 00:02:09.121 ドラッグしてます。 00:02:09.206 --> 00:02:10.935 整理するとパフォーマンスのオーバーヘッドなく 00:02:10.935 --> 00:02:12.935 衝突という意味で必要な正確性が 00:02:12.935 --> 00:02:14.935 得られるということです。 00:02:15.602 --> 00:02:17.602 ゲームエンジンで衝突が起こるとき 00:02:17.602 --> 00:02:20.024 ひとつのコライダが別のものと衝突して、 00:02:20.024 --> 00:02:22.024 OnCollisionEnter がコールされます。 00:02:22.307 --> 00:02:26.087 このシーンにおいて prop samoflange オブジェクトには 00:02:26.087 --> 00:02:28.928 別の Sphere Collider コンポーネントおよび Rigidbody コンポーネントがあります。 00:02:29.061 --> 00:02:31.695 Rigidbody は重量(mass)および重力(gravity)を提供します。 00:02:31.961 --> 00:02:34.378 ゲームを再生するとき、ひとつが 00:02:34.378 --> 00:02:36.108 倒れて、もう片方に衝突します。 00:02:36.608 --> 00:02:39.725 powerCube は Box Collider がアタッチされています。 00:02:43.061 --> 00:02:45.533 これは 落下するオブジェクトにも 00:02:45.533 --> 00:02:47.334 アタッチされています。 00:02:47.733 --> 00:02:50.383 スクリプトは三つの衝突イベントを検知します。 00:02:50.383 --> 00:02:53.573 OnCollisionEnter, OnCollisionStay および 00:02:53.573 --> 00:02:54.935 OnCollisionExit です。 00:02:55.135 --> 00:02:57.135 これらの 各々が発生するとき、 00:02:57.135 --> 00:02:59.418 Debug.Log を使用してコンソールに書き込みを行ないます。 00:02:59.568 --> 00:03:01.805 Enter がコールされたとき、 00:03:01.805 --> 00:03:03.805 Stay が発生したとき、 00:03:03.805 --> 00:03:05.805 また、Exit がコールされたときに登録されます。 00:03:09.809 --> 00:03:11.936 もしコンソールをみれば 00:03:11.936 --> 00:03:14.477 Enter がコールされたか、Stay がしばらくの間発生したか、 00:03:14.477 --> 00:03:16.946 また、Exit がコールされたか確認することが出来ます。 00:03:17.162 --> 00:03:19.635 もしゲームをポーズして再生すると、 00:03:19.635 --> 00:03:21.635 このサンプルをゆっくりと眺めることが出来ます。 00:03:22.135 --> 00:03:24.431 コリジョンが発生したときに 00:03:25.682 --> 00:03:27.429 フレームごとにステップ実行すると 00:03:27.429 --> 00:03:30.315 OnCollisionEnter がコールされているので、OnCollisionEnter は 00:03:30.315 --> 00:03:32.315 発生した直後です。 00:03:32.815 --> 00:03:36.509 その後続けると、OnCollisionStay が発生しています。 00:03:37.259 --> 00:03:39.027 この右側で、 00:03:39.027 --> 00:03:41.027 二つのコライダがまだ衝突中であるため 00:03:41.027 --> 00:03:43.344 数回これが発生していることを確認できます。 00:03:43.344 --> 00:03:45.344 その後続けてステップ実行すると 00:03:45.344 --> 00:03:48.126 最終的に二つのコライダが衝突しなくなったとき 00:03:48.126 --> 00:03:49.925 OnCollisionExit が 00:03:49.925 --> 00:03:51.925 コールされます。 00:03:53.142 --> 00:03:54.906 OnCollision メッセージが送信されるためには 00:03:54.906 --> 00:03:57.461 衝突する二つのオブジェクトの一つに 00:03:57.461 --> 00:04:00.016 Rigidbody コンポーネントがアタッチされている必要があります。 (翻訳:gamesonytablet)