VRの基礎。

ダンウロード VR Samples  

新規プロジェクトにAdd

Assets->VRSampleScenes->Scenes->MainMenuを開き

MainCameraをコピーして、自分新規のシーンに貼り付け。

(新規のシーンのカメラを削除して)

今から本題に入ります。

VRで要はカメラはそのまま人間の目になること。

では先ほどコピーしたのは人間の目です。28CDD855-021B-4A26-A397-090833B226B4

MainCameraに cameraControl というスクリプトを作る

下のコードを貼り付け(テストのため)

[SerializeField] private GameObject m_Camera;

void Update ()
{
float x = 2 * Input.GetAxis(“Mouse X”);
float y = -2 * Input.GetAxis(“Mouse Y”);
m_Camera.transform.Rotate(y, x, 0);
float z = m_Camera.transform.eulerAngles.z;
m_Camera.transform.Rotate(0, 0, -z);
}

cubeの3Dオブジェクトを作る、

cubeに VRInteractiveItem を追加する、

(VR インタラクティブ アイテム)

cubeに cube のスクリプトを作る。

 

using VRStandardAssets.Utils;
using UnityEngine.UI;

[SerializeField] private VRInteractiveItem vrinteractiveitem_;

private void OnEnable()
{

}
private void OnDisable()
{

}

UE4でのサウンドの活用

※音を出すか、イヤホン推奨

どんなゲームでも必ずサウンドが入っています
人によってはゲームのサウンドが良いからという理由でゲームを購入する人も少なくありません
3Dのゲームにはより重要な要素で、音の方向や聞こえる範囲などでゲームから伝わる
臨場感は違ってきます

UE4には様々なサウンドに関しての機能が備わっています
今回はサウンドに関しての機能についての基本的な使い方や
テクニックのいる使い方などをちょっとだけ解説していきたいと思います

基本的な扱い方

レベル上に配置するだけで音が自動的に流れ始めます

図1

また、サウンドの再生するタイミングを決めたい場合は
サウンドを選択すると右側の「Detalis」の中に
「AutoActive」という項目があるので
チェックを外すと自動で再生されなくなります

図2

再生したいブループリント上(今回はレベルブループリント)で
レベル上にあるサウンドの名前を入力すると
「Create a Reference to ○○○(サウンドの名前)」が出てきます

図3

選択をすると次の画像のようなノードが出てくるので
再生したい場合はその下の画像の様に「PlaySound」ノードを使うと再生できます

図4
図5

キャラクターの足音

サウンドはBGMだけではなくSEなどの効果音もあります
今回はキャラクターに足音を付けていきたいと思います

ブループリントを編集する前に下準備をします
左上にある「Edit」を押して「Project Settings…」という項目を選択します
下のような画面が出てくるので左側にある一覧の中から「Physics」という項目を選択します
右側を下にスクロールしていくと「Physics SurfaceType」という項目が出てきます
今回はSurfaceTypeの1,2,3をそれぞれ「Grass」、「Sand」、「Concrete」に設定します

図23

Content Browserで「SoundAttenuation」と「SoundCue」を作っておきます

次にSoundCueを編集していきます
右側のPaletteから「Switch」と「Wave Player」を3つ作成します
それぞれのノードを画像の様に接続します
「Switch」のParameterNameを「SurfaceType」にしておきます
「Wave Player」には設定したい足音を入れておきます
最後に「Out put」のAttenuation Settingsに先ほど作った「SoundAttenuation」を設定しておきます

図16

足音を追加するために、「Content Browser」から「ThirdPersonRun」と「ThirdPersonCharacter」と「ThirdPerson_AnimBP」を開きます

まずは足音を鳴らすタイミングを取得するために「ThirdPersonRun」を編集します

「Notifies」という項目の下にあるTimeLineを右クリックします
「New Notify」という項目があるので選択をすると、TimeLine上にある様な
「FootSound」と同じようなものが出てきます

図7

ここで、「Play Sound」を選択してSEを再生することも可能ですが
今回は地面によって音を変えたいので今回は「New Notify」を
選択します

次は「ThirdPersonCharacter」を編集をします
先にViewportで必要なものを用意しておきます
左上にあるAdd Componentから「Static Mesh」を作成します
今回は足元から音を出したいので「Static Mesh」を足元に移動させます
名前をわかりやすいように「FootSoundPoint」と名付けておきます

図8

次にEventGraphでブループリントを作ります

まずはCustomEventを名前をわかりやすいように「FootSound」で作ります

キャラクターの足元の情報がほしいので「LineTraceByChannel」ノードを作ります
そして、「TryGetPawnOwner」ノードを作り、そこから「GetActorLocation」で位置を取得します
Startにはそのままの値を入れますが、EndにはZ軸を-100をして値を入れます

さらに地面の詳細な情報がほしいのでOut Hitから「Break Hit Result」ノードを作ります
「Break Hit Result」の一覧の中からPhys Matから「Surface Type」という変数を取得します
さらにそこから「Select」というノードを作っておきます

「Branch」から「SpawnSoundAttached」を作成しSoundには先ほど作った「FootSoundCue」を入れます
Attach to Componentには先ほど作った「FootSoundPoint」ノードをつなげます
最後に「SetIntegerParameter」でTargetは「SpawnSoundAttched」のReturn Valueを、
In NameにはSurfaceTypeを、in intには先ほどの「Select」のReturn Valueをつなげます
ThirdPersonCharacterは以上です

図22

最後に、先ほど「ThirdPersonRun」で作った「FootSound」を「ThirdPerson_AnimBP」でイベントとして作ります

図17

最後にマップ上の設定を行いたいと思います

まず、Content Browserで「Physics Material」を3つ作ります
それぞれの名前を「GrassPhysicsMaterial」、「SandPhysicsMaterial」、「ConcretePhysicsMaterial」にします

「Project Settings…」で設定したSurfaceTypeを対応したものに設定します

図20

マップ上に3つ「Cube」を設置し、Detailsの中にある「Collision」の「Phys Material Override」にSurfaceTypeに対応したものを設定します

図21

これでキャラクターに様々な種類の足音がつけれるようになりました