Unityに関連する記事です

 4回の手順に分けて、プレイヤーのオブジェクトが、アイテム用のオブジェクトに侵入した際に、アイテムに紐づいているムービーを再生する機能を実装します。

 下記の動画は完成図です。
カプセルがプレイヤー役、キューブがアイテムなどの獲得可能なオブジェクト役です。
スクリプタブル・オブジェクトの機能を利用することで、この獲得可能なオブジェクトには、任意のムービーの情報を紐づけておくことが出来ます。


<実装動画 
動画ファイルへのリンク


<実装動画◆
動画ファイルへのリンク



設計


 実装までの手順が大変多く、どこを作っているのか、機能が分からず、迷子になりやすいです。

 最終的な目標としての全体像を把握しておく必要はありますが、
制作していく場合には、少しずつ小分けにして実装を行っていきます。



 最初にもお伝えしているように合計4回の手順に分けて、
プレイヤーのオブジェクトが、アイテム用のオブジェクトに侵入した際に、アイテムに紐づいているムービーを再生する機能を実装します。


<実装内容>
 1.ゲームの舞台用のステージと、プレイヤーのゲームオブジェクト、およびこれらに関連する機能を作成する(この手順で行います)
 2.アイテムのデータ情報を登録するためのスクリプタブル・オブジェクトを作成し、データを登録する
 3.アイテムのゲームオブジェクトを作成する
 4.複数のスクリプトを作成し、【1】〜【3】までの機能と、ムービーの再生機能とを紐づけることで
   プレイヤーのオブジェクトが、アイテム用のオブジェクトに侵入した際に、アイテムに紐づいているムービーを再生する機能を実装する

 以上のような手順で制作を行います。


ステージの作成


 前回のデバッグをおこなったシーン内で作業を継続しても問題ありません。
その場合には、Test_Canvas ゲームオブジェクトについては一旦非表示の状態にしておいてください。


Terrain を利用するケース


 ステージは任意に制作してください。
Terrain を利用してもよいですし、アセットを利用しても構いません。

 舞台となる世界観を決めておくことで、ステージの制作もイメージがわきやすくなります。


アセットを利用するケース


 アセットについては無料アセットを紹介しておきます。













プレイヤーのゲームオブジェクト作成


 非VR の場合の作成例です。
VR の場合には、プレイヤーのゲームオブジェクト、プレイヤーの移動、カメラの機能が搭載済ですので、ページの下段にある【VR の場合】の部分までスキップしてください。

 下記の記事を参考に作成しています。
  → キャラクターの移動とカメラの回転機能



 プレイヤーのゲームオブジェクトを作成します。
3Dモデルのアセットを利用するか、Capsule などを作成してプレイヤーのゲームオブジェクトとしてください。

 この例では Capsule をプレイヤーのゲームオブジェクトに見立てて利用しています。


インスペクター画像



Sceneビュー画像




プレイヤーの移動用のスクリプト作成


 プレイヤーのゲームオブジェクトを移動させるためのスクリプトを作成します。


PlayerController.cs

<= クリックすると開きます。


 スクリプトを作成したらセーブします。


プレイヤー用のゲームオブジェクトに PlayerController スクリプトをアタッチして設定を行う


 プレイヤー用のゲームオブジェクトに、先ほど作成した PlayerController スクリプトをドラッグアンドドロップしてアタッチします。

 インスペクターを表示し、スクリプトが正常にアタッチされていることを確認します。
合わせて、MoveSpeed 変数に値の設定を行ってください。3 〜 7 位が目安値です。


インスペクター画像




カメラの回転用のスクリプト作成


 カメラの制御については Cinemachine を利用している前提です。
Cinemachine を利用していない場合や、カメラの回転機能が不要の場合には、このスクリプトは不要です。

 下記に参考値を掲載します。


インスペクター画像 MainCamera



インスペクター画像◆Cinemachine による VirtualCamera



インスペクター画像 Cinemachine による VirtualCamera の Body



Game ビュー画像 Cinemachine の Soft Zone 設定





 マウスの右クリックを押したままドラッグすることでカメラの上下左右回転を実装するスクリプトです。


CameraControllerFromCinemachine.cs

<= クリックすると開きます。


 スクリプトを作成したらセーブします。


VR の場合


 VR デバイスに Meta Quest 2、アセットには OculusIntegration を利用する場合のケースを提示します。

 アセットストアより OculusIntegration をインポートしてください。
こちらに記事を用意していますので、参考にしてください。

 => VR の準備



 このアセットには VR 用のプレイヤーの移動機能を持つプレハブが用意されています。
移動のためのスクリプトを新しく作成する必要はありませんので、こちらを利用する方法が便利です。

 下記のパスにある OVRPlayerController プレハブをヒエラルキーにドラッグアンドドロップしてください。


パス
Assets/Oculus/VR/Prefabs/OVRPlayerController



 OVRPlayerController の子オブジェクトには OVRCameraRig ゲームオブジェクトが含まれており、こちらが VR 用のカメラになります。
そのため、ヒエラルキーにある MainCamera ゲームオブジェクトは削除するか、非表示にしてください。



 移動処理自体は OVRPlayerController のみで実装済ですが、侵入判定に必要なコンポーネントはアタッチされていません
そのため、Rigidbody コンポーネント、および CapsuleCollider コンポーネントを追加し、侵入判定に必要な設定を行ってください


インスペクター画像例



コライダー設定例




 また、VR の場合には、プロジェクトの設定を行う必要があります。
下記の MetaQuest 公式サイトを参考にプロジェクトの設定を行ってください。


参考サイト
MetaQuest
Unity設定を構成する




 VR に関しては記事も多く用意されています。
なるべく新しい記事を見つけて読んでおくことをお勧めします。

 また実装方法については、OculusIntegration を利用する場合と、XR Interaction Toolkit を利用する場合でも内容が異なります。
記事の趣旨を理解した上で参考にしてください。


参考サイト
MANURITO 様
【VR】ド素人と始めるVR開発【Quest2】Part2 歩き回る、モノを掴む
note 天野 スズラン 様
UnityでVRゲーム製作!XR Interaction Toolkit 移動&ターン編



 以上でこの手順は終了です。

 => 次は VideoPlayer を利用したイベント処理の実装例 です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます