Character Itemを使ってシンプルな動く乗り物をつくってみよう

今回の記事では、「乗り物機能」を使って前後左右に移動するシンプルな乗り物をつくっていきます。

Ridable Itemに加えて2つのコンポーネントを入れるだけで動かせるようになるので、動く乗り物をつくるのに比較的な簡単な方法を紹介します。工夫次第でさまざまに可能性が広がる乗り物の基本に触れてみましょう。

※今回の記事では前後左右に一定の速度で移動する乗り物をつくります。加速する運動や回転、上下に移動できる乗り物はこちらの記事を参考にしてください。

イスをつくる

まずは乗り物のベースとなるイスをつくっていきましょう。イスのつくり方はこちらの記事でも紹介されています。

  • Hierarchyを右クリックし、シーン上にCubeを設置します。
  • 大きさ(Scale)はそのまま、位置(Position)は縦方向(Y)を地面から0.5mに設定します。Cubeの大きさは1mなので、これで地面についた状態になります。
  • 続いてCubeのInspectorからAdd Componentをクリックし、「Ridable Item」を追加します。

これでCubeに座ることができるようになりますが、このままだとアバターの座る位置がおかしくなってしまいます。次は座る位置を調整しましょう。
※Unity上のプレビュー画面だとアバターは表示されません。

  • HierarchyでCubeを右クリックし、「Create Empty」で空のオブジェクトを作成します。
  • 作成したオブジェクトの名前を「sitPosition」に変更し、位置をX=0m、Y=0.6m、Z=0.4mに設定します。
    Cubeの天面から上に0.1m、前面から内側に0.1mとなるこの位置に座るようにすれば、多くのアバターで自然な見た目にすることができます。
  • 位置の調整ができたらCubeをクリックしてInspectorを開き、Ridable Itemの「Seat」の横にある◎ボタンを押して「sitPosition」を選択してください。

これで座る位置が変更できました。以上で座ることのできるオブジェクトが完成しました。

イスを移動させる

続いてこのイスを移動できるようにします。

  • Ridable Itemを設定したCubeに、Add Componentから「Steer Item Trigger」を追加します。
    これを追加することで、歩くときと同じ操作で乗り物を操縦できるようになります。
  • さらに「Set Velocity Character Item Gimmick」を追加します。
    これはCharacter Itemというタイプのアイテムを地面に沿って移動させることができるギミックです。Steer Item Triggerが受け取った入力を、このギミックで乗り物に反映させます。

ここで、Character Itemについて説明します。
Character Itemは地面の上を移動することに特化したアイテムで、平面上や坂道、階段を転ぶことなく動き回ることができます。またジャンプしたり、地面に接しているかどうかを検出することもできるので、乗り物に適したアイテムとなっています。ただし等加速度運動など物理演算を用いた動きはできない点に注意が必要です。

Character ItemではUnityの機能であるCharacter Controllerを利用しています。Unity公式ドキュメントも参考にしてください。

イスを動かすための設定の説明に戻ります。

  • Steer Item TriggerでMove Input Triggersの下にある+ボタンを押して、出てきた項目のうちTargetを「This」、その隣の欄(Key)を「move」に設定し、Typeを「Input: Vector2」に変更します。

これで、イスに座ったまま前後左右に移動できるようになります!アップロードして試してみましょう。
※Unity上のプレビュー画面だとアバターは表示されません。

ここで用いたVector2ですが、これはxとyの二つの値が組み合わさったものです。移動に使うPCのWASDキーやスマホのスライドパッド、VRのスティックを操作すると、Steer Item Triggerは左右方向と前後方向に分けて入力を受け取ります。

Set Velocity Character Item GimmickはVector2を受け取ってそのまま前後左右方向に移動することができます。

Cube以外にさまざまな3Dモデルに乗れるようにすれば、それだけでオリジナリティのあるワールドができあがります。

ぜひ自分らしい乗り物をつくってみてください!

記事をシェアしてワールド制作を盛り上げよう!