3Dゲーム制作独学レポート

3D初心者が独学をしてVR3Dゲーム作りを目指すためのレポート記録です。

【学習レポート】Unityl learn > path way >Create with VR capter0 ~1

概要

unityの公式の教材で学習した内容を復習もこめてまとめる。


総評

・unityは今回初めて使った。シーンという舞台に、アセットというオブジェクトを置き、アセトにコンポーネントという機能を持たせる部品を接続してプロパティをいじって操作するという流れらしい。
・capter1は基本的にunityのVRで使うコンポーネントとプロパティの説明だった。

・ビルドのrun deviceの設定で、スマホアプリで開発者モードにしなければいけないのがわからずはまった(oculus実機で開発者モードにしていた)。またスマホアプリにバグがありはまった。何故スマホアプリを仲介しなければいけないのか?

・動画の英語翻訳がうまく機能せず何を言っているかわからない箇所が多々あった。
・チャレンジチャプターはなぜか動作しなかった。

・課題とクイズチャプターが難しくてできなかった。

・環境構築1(oculus実機の設定):unitylearn capter0

 ・unityでoculus quest2で使うためのセットアップの方法

  ・unityのバージョン 2020.3 LSTをインストール、
  ・Andoroid ビルドサポートモジュールを2020.3 LSTに追加。(android用のモジュール)
  ・oculus開発者登録:oculus開発者サイトで開発者登録
  ・開発者モード:スマホのoculusモバイルアプリとoculus実機をリンクしてアプリの設定で開発者モードにする。
  ・oculusADBドライバをwindowsPCにはインストールする。

参考ページ:Meta quest  デバイスセットアップ



 環境構築2(unity projectの設定):unitylearn capter1.1

 ・Project立ち上げで最初にやる事

  ・プラグインの追加
    ・XR プラグイン管理
    ・XR インタラクションツールキット
    ・OpenXR プラグイン
    ・ユニバーサル RP (レンダーパイプライン)
  を追加する。(チュートリアルのセットでは全部すでにインストールされている。)

  その他の設定は未学習。下記のチュートリアルで説明しているらしい。後でやる。
参考:


動作テスト(シミュレーターでのテストと実機でのテスト):capter1.1


XR デバイスシミュレータ

 ・capter1.1でインストールしたassetからXR デバイスシミュレータを探し出してヒエラルキーに追加するとシミュレーターで動作テストできる。


実機テスト

 ・デバイスシミュレータをオフにする。

 ・プロジェクト設定>編集>XR プラグイン管理>plug-in providersからoculusチェック


・ビルド

 ・ビルドとは:他のプラットフォームで動作するようなアプリを作る事をビルドという?.apkはアンドロイド上で動作するファイル形式。

 ・oculus quest2はandroidで動いているのでプラットフォームをandroidに設定してrun deviceをoculus questにする。ここでスマホのoculusアプリで開発者モードにしておかないといけないが、スマホアプリにバグがあり、oculus実機を一度工場出荷状態に初期化にしないとoculus実機とリンクできない。

参考:【画像付き】Oculus Go・Questを初期化(リセット)する方法 – アストネス|Astoness®︎


各種コンポーネントとプロパティ

 ・XRrigアセット

  ・概要:playerのカメラとコントローラーがセットになったアセット

  ・主なプロパティ

   ・Model Prefabプロパティ:XR Rig > Camera Offset > LeftHand Controller> Model Prefabプロパティにハンドモデルを追加すると手のモデルを設定できる

  ・備考:XR インタラクションツールキットプラグインを入れると使えるようになる


 ・VR Locomotionコンポーネント

        ・概要:XRrigに追加する。場所を管理するコンポーネント


 ・Snap turn provider(action-based)コンポーネント

  ・概要:XR rigに追加するとplayerの方向転換を管理できる。


 ・Teleportation Provider コンポーネント

  ・概要:XR rigに追加するとテレポートを管理できるオブジェクト


 ・Teleportation Areaコンポーネント

  ・概要:オブジェクトに追加すると。追加したオブジェクトの上に移動できる


 ・Teleportation Anchorコンポーネント

  ・概要:オブジェクトに追加すると、追加したオブジェクトにテレポートできるようになり、方向を変えられる。

  ・主なプロパティ

   ・custom reticleプロパティ:レクチル用のアセットを設定するとビームを指した時にそのレクチルが見えるようになる。

  

 ・ XR Grab Interactable コンポーネント

  ・概要:オブジェクトに追加するとコントローラーで持てるようになる。

  ・主なプロパティ

   ・Anchor Controlプロパティ:XR Rig > Camera Offset > LeftHand Controlle>XR Ray Interactor コンポーネント>Anchor Controlプロパティをオフにすると物を持った時にコントローラーの手を隠せる。

   ・Smooth Position と Smooth Rotation プロパティ:オンにすると動きが滑らかになる

   ・Attach Transformプロパティ:オブジェクトの子として空オブジェクトを子に作りAttach Transformプロパティにセットすると持つ向きを設定できる。

  

  ・Sphere Collider コンポーネント

   ・概要:衝突を検知するコンポーネント

   ・主なプロパティ

    ・material プロパティ:跳ね返り度合いを設定できる。

    ・collidion detectionプロパティ:contiuosdynamicにすると床に衝突する(これを設定しないとすり抜ける)

   ・備考:XR Grab Interactableコンポーネントを追加すると自動的に追加される


  ・空オブジェクトヒエラルキーを整理:空オブジェクトを作ってフォルダのように使いヒエラルキーを成立整理する。


  ・ XR Socket Interactor コンポーネント

   ・概要:オブジェクトに追加すると XR Grab Interactableで持ったオブジェクトをひっかけることができる。

   ・設定手順:

    ・ひっかけたいオブジェクトの子にエンプティオブジェクトを追加し、XR Socket InteractorコンポーネントSphere Collider コンポーネントを追加する。

    ・is triggerプロパティ:Sphere Collider コンポーネントのis triggerをオンにする。

    ・コライダー編集:コライダーの半径や位置を変える。

    ・Attach Transformプロパティ:引っかけたいsocketのオブジェクトの子にエンプティオブジェクトを追加しAttach Transformプロパティに追加。

   

   ・頭にソケット: XR Rig > Camera Offset > Main Cameraの子にエンプティを追加してXR Socket Interactorコンポーネントを置くと頭にオブジェクトを置ける。


成果物

 ・悪い蛇を土で埋めるゲーム

  ・悪い蛇にソケットを設定

  ・土をグラブで持つ

  ・悪い蛇に重ねると埋めることができる