この記事はアドベントカレンダー「【VCI】テーマパークを作ろう 」の4日目の記事です。
今回の内容
今回は観覧車を作成しながら以下のことを学びます
- コライダーの種類について
- コライダーの設定方法
コライダーとは
コライダーとは簡単に言うとオブジェクトに物理的な判定(衝突など)をもたせる機能です。
オブジェクトがぶつかった際にコライダーがない場合はすり抜けてしまいますが、コライダーがあるとオブジェクトがぶつかるようになります。
VCIではコライダーの種類(レイヤー)が以下のようにいくつかあり、何とぶつかりたいか、何とぶつかりたくないかに応じてコライダーを変更します。
今は理解できなくてもレイヤーの種類によってぶつかるものとそうでないものがあるということだけ把握してれば問題ないと思います
(人間はCharacterとHumanoidPartsという2種類のコライダーを持っております)
詳細は VCIwikiのコライダーページ 参照
また、「物理的な判定は持たせたくないが物体が触れ合ったことは検出したい」という時用に、コライダーには「トリガー」という設定が存在します。こちらは今後登場時に詳しく説明します。
今回は前回作成したゴンドラに乗ってもすり抜けて落ちないようにするためコライダーが必要となります。
コライダーを設定する
Unity内で作成したアイテムとは違い、Blenderから持ってきたファイルにはFBXファイルにはコライダーがついておりません。
このままだと中に乗ることができないのでコライダーを作成していきます。
今回は環境オブジェクト(持ったりしないが人は衝突させたい)として作成したいのでコライダーレイヤーをLocationとして作成をしていきます。
追加したゴンドラのオブジェクトを選択し、Incpecterの一番上にあるレイヤーをLocationにします。
Incpecterの下にあるAddConponentボタンを押し、追加したいコライダーを選びます。
今回は例として長方形型のBoxColliderを追加しました。(2dというのもありますが、2dがついていないものを選択して下さい)
するとオブジェクトにコライダーが追加されます(緑で枠表示されている部分がコライダーです)。サイズもいい感じのサイズに設定してくれます。
ただ持つだけのアイテムなどであればこれだけで十分なことも多いのですが、今回は中に入る必要があるため調整を行います。
円柱の外枠のみというコライダーはないため、代替として長方形を並べて八角形をつくるイメージで作成します。
1つのオブジェクトに複数のコライダーをもたせることはできるのがすが、コライダーの設定項目には回転の項目がなく斜めのコライダーが設定できないため別の方法で作成します。
(コライダーのサイズや位置はInspecterから変更可能です)
まずは先程作成したコライダーを一旦削除し、ゴンドラの子に空オブジェクトを追加します。
作成したオブジェクトの中心をゴンドラの中心まで移動し、床面となるコライダーを設定します。
次にこのオブジェクトを7つコピーし、TransformのRotateionを少しずつ変えて設定し八角形となるようにします。
これで側面部分は完了です。最後に全面と背面のコライダーを設定して完了です。
(全面は入れるように隙間を開けています)
(今回はコライダーを分けましたが、衝突をスクリプトで検出したい場合は分けないほうがいい場合もあります。(後日説明予定))
ついでに乗り場も作成しました。こちらはUnityのCubeのオブジェクトを使用しました。
坂や階段などを作るときは繋ぎ目部分に段差ができないように注意して下さい(Vキャスは少しの段差でも引っかかってしまいます)
あとはVCIを再度エクスポートしてルームに持って行くだけです!以下のようにゴンドラに乗ることができました。
以上で今回の作業は完了です。
終わりに
いかがでしたでしょうか?
今回addcomponentからコライダーを作成しましたが、他の機能を実現する際にもこのaddcomponentからコンポーネントを追加することが多いので是非覚えておいて下さい。