C++でVRのモーションコントローラーを使う方法
今回はC++でVRのモーションコントローラーを使い方法をご紹介します。
モーションコントローラーについてはご説明しませんのでこちらを参考にどうぞ…(適当)
早速サンプルコードです。
VRHand.h
#pragma once #include "GameFramework/Actor.h" #include "MotionControllerComponent.h" #include "VRHand.generated.h" UCLASS() class VRTest_API AVRHand : public AActor { GENERATED_BODY() public: AVRHand(); virtual void BeginPlay() override; virtual void Tick( float DeltaSeconds ) override; private: UPROPERTY(VisibleAnywhere) UMotionControllerComponent* MotionController;//モーションコントローラー };
VRHand.cpp
#include "VRTest.h" #include "VRHand.h" AVRHand::AVRHand() { PrimaryActorTick.bCanEverTick = true; MotionController = CreateDefaultSubobject(TEXT("MotionController")); Mesh = CreateDefaultSubobject (TEXT("Mesh")); MotionController->AttachTo(RootComponent); Mesh->AttachTo(MotionController); } void AVRHand::BeginPlay() { Super::BeginPlay(); } void AVRHand::Tick( float DeltaTime ) { Super::Tick( DeltaTime ); }
ちなみに上の二つだけでは動きません。ここがはまりポイントです。
ソリューションのデフォルトの設定ではVR系のヘッダーをどうやらビルドしてくれないらしくてこれらを一緒にビルドしてくれるように若干設定がいります。
「プロジェクト名.Builld.cs」というファイルにHTC VIVEなら
using UnrealBuildTool; public class VRTest : ModuleRules { public VRTest(TargetInfo Target) { PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); /* VR Required Modules */ PrivateDependencyModuleNames.AddRange(new string[] { "HeadMountedDisplay", "SteamVR" }); // Uncomment if you are using Slate UI // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); // Uncomment if you are using online features // PrivateDependencyModuleNames.Add("OnlineSubsystem"); // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true } }
のように追加してください。
これでビルドが通るようになります。
UE4でVRホラーゲーム開発始めました。
みなさんこんにちは。Lightn(らいとん)です。
10月始めくらいからUE4を使ってゲーム制作を始めたので気づいたことや技術などを公開していきたいと思います。
(主にプログラマ向け、たまにアート向け)
そんなわけで今回は作る予定のゲームについて紹介したいと思います…
- ジャンル ホラー
- 対応環境 HTC VIVE
- プレイ時間 約10分
- 開発 UE4.13
- メンバー プログラマ2人 3DCGアーティスト6人~
現在対応環境としてはVIVEでやっていますがOculusにも対応させようかと思っています。
プロトタイプのスクリーンショット
現在某専門学校に通っておりその一つのプロジェクトとして立ち上がったところです。
目標としては1月終わりごろに締め切りを迎える「GFF AWARD 2017」に応募できたらな…と思っています。
開発のスタイルみたいなのも少しご説明します。
UE4ではBluePrintが流行っていますが今回ははあえてC++をうまく使いながら開発を進めようと思っています。
すでにプロトタイプはかなりC++で書きながらやっている状態です。
理由としては実行速度とかもあるんですが
BluePrintじゃ就職できないよね?
という学生ならではの理由もあったりします。(今後においてはC++できなくてもよさそうになったりするかもしれないけど…)
まあプログラマはそんな感じでやっています。
3DCGアーティストの方も一人UE4を扱える方がいるので各アセットの作成からMapへの配置までやっていただけるので大変助かっています。
そんなわけでぼちぼちと開発を進めております。
質問とかありましたらこちらまで