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

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

【unity learn】 Create with VR capter2

概要

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


総評

・stepが細かく刻まれすぎていたり冗長でテンポが悪く飽きる


・スクリプトがVRやunityやプラグインの一般的なものなのかこの講座だけに用意されたものなのかがわからない。


出てきたコンポーネント・プロパティ一覧

・Haptic Eventsプロパティ(XR Rig > Camera Offset > RightHand Controller and LeftHand Controllerのプロパティ)
 ・概要:ものをつかんだ時などにあるイベントでコントローラが振動するようにする


・Audio Eventsプロパティ(XR Rig > Camera Offset > RightHand Controller and LeftHand Controllerのプロパティ)
 ・概要:ものをつかんだ時などのイベントで音が鳴るようにできる。


・Audio Source コンポーネント
 ・概要:オブジェクトから音を出せる。
 ・AudioClipプロパティ:音アセットをセットする
 ・play on awakeプロパティ:オンにするとゲームスタート時から音が鳴る
 ・loopプロパティ:音がループする。
 ・volumeプロパティ:音の大きさ
 ・spatial blendプロパティ:3Dにすると距離と方向によって聞こえ方が変わる
 ・3D sound settingsプロパティ:音の広がり分散ドップラー効果などの設定


・Audio Reverb Zoneオブジェクト
 ・概要:音の反響を設定するオブジェクト。反響させたい壁の子オブジェクトとして作る。ヒエラルキーを右クリック。
 ・Min Distanceプロパティ:部屋の距離とこのプロパティの広さを合わせる
 ・Reverb Presets プロパティ:音の反響の仕方のプリセットがいくつかある。バスルームや講堂など。


・relevant spatializer plugin (capter2.1 オプションステップ)
 ・概要:VRヘッドセット用に最適化されたオーディオのプラグイン
 ・設定の仕方
  ・下記のリンクからoculus用のunityオーディオプラグインをダウンロードできる。
  ・https://developer.oculus.com/downloads/package/oculus-spatializer-unity/
  ・ダウンロードしたファイルを解凍して.unitypackageをダブルクリックするとインストールできる。
  ・project setting>audio>spatializer pluginをoculusSpatializerに設定する。
  ・audio sourceコンポーネントのspatiallizeプロパティをオンにする。
  ・spatiallize post effectsプロパティも追加される(よくわからない)
 ・ONSPオーディオソースコンポーネント:追加すると様々な設定ができる(参照:https://developer.oculus.com/documentation/unity/audio-osp-unity-spatialize/)


・Interactable Eventsプロパティ(XR Grab Interactableコンポーネント)とPlay Quick Soundコンポーネント
 ・概要:つかんだ時のイベントを使って音を鳴らす。


 ・play quick soundコンポーネント:スクリプトで書かれたコンポーネント、soundプロパティにオーディオアセットを入れて一瞬音を鳴らす。


 ・Interactable Eventsプロパティ:XR Grab Interactableコンポーネントのプロパティ、各種イベントを取得し、効果を発生させる。


 ・on activate:Interactable Eventsプロパティのイベントの一つ。トリガーコントローラのトリガーを引いたらイベントが起きる。


 ・input action manager:xr rigオブジェクト>input action managerを選び、projectの中のxri default input actionsを選ぶとinputの設定が見れる。使い方はわからない。XR interacion toolkitプラグインの一部。


・3d sound settings>min distanceプロパティ:audio sourceコンポーネントのプロパティ これを1以下にすると近づけると大きな音がなるようになる。


 ・change materialコンポーネント:other materialにセットしたマテリアルをイベントで呼び出せるようになるスクリプト。


・rayでものを持てなくする(テレポートのみでrayを使えるようにする。rayでものをつかめるのは不自然らしい)


 1.XR Ray Interactor>interaction layer mask でadd layer>interaction layers リストにray選択用のレイヤーを作る。(教材ではinspectorウインドウの左上からadd layerを選び、layers一覧に追加しているが、それだとなぜか反映されなかった。interaction layers リストに追加するとできる)
 2.XR Ray Interactor>interaction layer mask を一度nothingにしてからray選択用のlayerを追加する。
 3.XR Ray Interactor>hide controller on selectを選ぶと選択時に手が消えなくなる。
 4.任意のleportation anchor>interaction layer maskにraychastsを設定する。


・interaction layer maskプロパティ:様々なコンポーネントに共通のプロパティ、相互作用するオブジェクトをlayerで制限できる。add layer>interaction layers リストに制限したいレイヤーを作る。(教材ではinspectorウインドウの左上からadd layerを選び、layers一覧に追加しているが、それだとなぜか反映されなかった。interaction layers リストに追加するとできる)
・hide controller on selectプロパティ:XR Ray Interactorコンポーネントのプロパティ、オンにするとrayでのオブジェクト選択時に手が消えなくなる。


・XR controller(action-based)コンポーネントのプリセット:コンポーネントインスペクタの右上のセッティングボタンからプリセットを選べる。コントローラを選ぶと学べる。


・Toggle Ray コンポーネントスクリプト:レイを切り替えるためのスクリプト


・on Button Press コンポーネント(スクリプト):capter 2.3.6
 ・概要:ボタンを押したときと話した時の挙動を決める。actionにprimaryButton(ボタン:)、thumbstickTouched(スティック)
 ・Primary Button:基本的なボタンoculusではXとAボタン
 ・thumbstick touched:スティックのこと。


・UI Canvaオブジェクト:
 ・概要:UIを作るためのオブジェクト、XRの中にある
 ・主なプロパティ
  ・Order in layerプロパティ:レンダーの時のレイヤー
  ・RayCast Targerプロパティ:オフにするとレイが当たった時に色が変わるのを防げる。


・Button オブジェクト:
・概要:buttonのためのオブジェクト
 ・主なプロパティ:
  ・raycast target:textmeshpro-text(UI)>Extra settings>Raycast Target:これをオフにするとレイが当たった時に色が変わるのを防げる。
  ・transitionプロパティ:button>transiton animetionを作るためにはこれを選ぶ。
  ・On clickプロパティ:ここにオブジェクトとファンクションをセットするとボタンを押したときに反応する


・Load Scene(script):
・イベントでLoadScene.ReloadCurrentScenceを呼び出すとシーンを再ロードする。


・GameObject.setActiveファンクション:イベントに紐づけるファンクション、チェックがオンオフでそれぞれtrue,falseを決める。


・on button press(script):
 ・action:プラスでadd buindを押しpathでXR controller>optional controllerでコントローラのボタン一覧が出るのでそれを選択するとアクションを紐づけられる。


・teleport Player(script):イベントでteleportplayer.teleportファンクションを呼び出すとanchorにセットしたオブジェクトの上にテレポートする。(providerにXRrigを置く)


・create trail(script):イベントでcreate trail.starttrailファンクションとendtrailファンクションを呼び出すとtrail prefabにセットした線オブジェクトを描くことができる。(trail rendererというオブジェクトがいる)