はじめに:テレポート移動だけで満足していませんか?
「VR空間をもっと自由に歩き回りたい…」 「テレポート移動だと、どうしても『ゲーム感』が強くて没入できない…」
VR開発を始めたばかりの多くの冒険者(あなた)が、最初にぶつかる壁がこの「移動方法」ではないでしょうか? 確かに、VRテンプレートに最初から入っている「テレポート移動」は、VR酔いを防ぐ優れた機能です。しかし、RPGの主人公のように世界を探索するには、やはり自分の足(スティック)で自由に動きたいですよね。
実は、Unreal Engine 5(UE5)なら、難しいプログラミングコードを一切書かずに、この「自由移動(スムーズロコモーション)」を実装できます。
この記事では、「ブループリント」という魔法の設計図を使って、たった3ステップであなたのVRアバターに「歩く能力」を授ける方法を解説します。
結論から言うと、やるべきことは「入力信号を分解して、移動の命令に繋ぐ」だけ。 さあ、一緒に自由な冒険の旅へ出かけましょう!
1. ブループリントとは?:コードを書かない魔法の設計図 )
まず、今回使用する武器である「ブループリント」について簡単に触れておきましょう。
-
ブループリントは、英語のコードを書かずにゲームが作れるUE5最大の特徴です。
-
画面上の「箱(ノード)」と「線(ワイヤー)」を繋ぐだけで、処理の流れを視覚的に作れるからです。
-
まるでレゴブロックを組み立てるように、「コントローラーのスティックを倒したら」→「その方向に進む」という命令を組み立てられます。
-
つまり、プログラミング知識ゼロの初心者でも、直感的に機能を実装できるのです。
2. 冒険の準備:VRポーンを整える
まずは、移動するための身体となる「VR Pawn(VRポーン)」を改造する準備をします。

-
VR Pawnを開く: コンテンツドロワーから
VRTemplate>Blueprintsフォルダを開き、VRPawnをダブルクリックします。

-
古い魔法を封印する もしくは 改造 :テンプレートには既にテレポート用の処理が書かれています。(Input Action Move)今回はこれが邪魔になる可能性があるため、残したい場合は、テレポート関連のノードの接続を切り、項目を選択してコピーして画面の左、または右側に塊を置いて保存しておきましょう。
削除もいいのですが、今回は改造します。もし、全部消してしまっても大丈夫です。
右クリックをして検索窓でIA_Moveと検索すれば項目が出てくると思いますのでクリックして配置しましょう!

改造する場合は、四角い枠内のノードを選択してDELキーで削除してください。
これで、新しい移動魔法を書き込むための準備が整いました。
3. 移動ロジックの作成:スティックの入力を移動に変える
ここからがいよいよ本番です。コントローラーのスティック入力を、キャラクターの移動へと変換します。
手順①:入力信号を分解する(X軸・Y軸)
まず、スティックが「どのくらい倒されたか」という情報を受け取ります。
-
IA_Moveを展開: イベントグラフ上で
IA Moveノードを探します。 -
ピンを分割: 「Action Value」というピンを右クリックし、「構造体ピンを分割」を選択します。

-
図の様に表示されていればOKです。

-
注意: これでX軸(左右)とY軸(前後)を別々に扱えるようになります。もし分割できない場合は、Input Actionの設定に戻り、Value Typeを「Axis2D」に変更してください。
-
手順②:移動の命令を追加する
次に、分解した信号を移動の力に変えます。
-
Add Movement Input: 右クリックで検索し、「Add Movement Input」ノードを2つ追加します(前後用と左右用)。


-
IAムーブのトリカードピンから白い 線を伸ばして接続します。更にそこからもう1のアドムーブメントインプットにもつぎます。

- VROriginを追加:右クリックで検索して貼り付けます

- Cameraを追加:右クリックで検索して貼り付けます

- GET Camera View:この項目は使用しないので削除

- Select : 右クリックで検索して貼り付けます。
日本語検索もできます。( 選択 と入力)
-
画面左下に注目

- 変数の横の+ボタンをクリック

- 変数の作成: ここで一つ工夫をします。カメラの向いている方向(顔の向き)に進むか、コントローラーの向きに進むかを切り替えられるようにします。
「MovingTowardCamera」という名前でBoolean(ブーリアン)型の変数を作成しましょう。

- Boolean(ブーリアン)は、スイッチの役目ONかOFFのような2択になるモード

- 作成が完了したら、MovingTowardCamera をドラックして領域に貼り付けます。

- そうすると、コマンドが出現するのでGETの方選択します

- 一旦配置は終了して、配線をしてきます。画面の様に配置はできましたか?
出来ていない場合はステップを遡ってください。

手順③:進む方向を決める(重要!)
「前」とはどちらでしょうか? 顔が向いている方? それとも体が向いている方? これを決めるのがベクトル計算です。
-
基準点の接続:
VR Origin(プレイエリアの中心)には:Option 0(False)Camera(視線)を接続します。:Option 1(True)-
これで、変数のON/OFF一つで「体基準」か「視線基準」かを切り替えられるようになります。
-
- Selectノード: 作成した「Select」ノードと、先ほどの変数(MovingTowardCamera)をIndexに繋ぎます。

手順④: コピー & ペーストする
先程作ったノードの塊を コピー & ペーストする

手順⑤:左右の動きを情報処理するノードを追加
① Widget Interaction Right は削除します。
② ⑴select から Get Right Vectorに接続 ⑵更に左右用のAdd Movement Inputの「World Direction」に繋ぎます
③ 左右の移動設定は完了
手順⑤:前後の動きを情報処理するノードを追加
- 前方向(前後移動): Selectノード一式をコピーし貼り付けた隣に、今度は
Get Forward Vectorを呼び出します。
- Widget Interaction Right は削除します。

- ⑴select から
Get Forward Vectorに接続⑵更に左右用のAdd Movement Inputの「World Direction」に繋ぎます。

- 前後移動用ノードは完成です。
手順⑤:スティックの動きを伝達するノード配線を追加
ここで最も多くの新米冒険者が陥る罠、それが**「XとYの取り違え」**です。
-
Y軸 (Action Value Y): 前後の動き(Forward/Backward)
-
X軸 (Action Value X): 左右の動き(Left/Right)
もしこれを逆に繋いでしまうと、「前に進もうとしたのに、カニ歩きで横にスライドする」という奇妙な呪いにかかってしまいます。まずはこの**「Y=前後」「X=左右」**という鉄の掟を心に刻んでください。
さあ、線を繋いでいきましょう……と言いたいところですが、ちょっと待ってください! ただ闇雲にノード同士を繋ぐと、線が複雑に絡み合う「スパゲッティ状態」になってしまいます。これはバグの温床であり、未来の自分を苦しめることになります。
そこで登場するのが、冒険の便利アイテム**「Reroute Node(リルートノード)」**です。これは配線の中継地点となるピンのようなものです。
-
ノードの追加: 何もないところで右クリックし、「Add Reroute Node」と検索して配置します。

-
配置: これを合計4つ作り、X用とY用の中継点として配置します。

このピンを使えば、直角に折れ曲がる美しい配線を作ることができます。
「見た目が美しいコードは、バグも少ない」。
これは熟練の魔導師(プログラマー)たちが口を揃えて言う真理です。
電子回路のように整然と並べましょう。
手順⑤:配線の儀式:信号を正しく流そう
準備が整ったら、いよいよ接続(コネクト)です。慎重に進めていきましょう。
① 左右の動き(X軸)の接続 まず、IA Moveノードにある**「Action Value X(緑色のピン)」から線を伸ばします。
② 先ほど置いたリルートノードを経由させて、左右移動用のAdd Movement Inputにある「Scale Value」**に繋ぎます。
③ 前後の動き(Y軸)の接続 次に、**「Action Value Y」から線を伸ばし、同様にリルートノードを経由させて、前後移動用のAdd Movement Inputにある「Scale Value」**に繋ぎます。
これで、あなたの指先の動き(入力値)が、そのままアバターの足の動き(移動スケール)として伝わるようになりました!
手順⑥ 最後の仕上げ:コンパイルと保存を忘れるな
配線が終わっても、まだ安心はできません。最後に必ず行わなければならない「儀式」があります。
-
✅ コンパイル(Compile): 画面左上のボタンをクリック。これを行わないと、書いたプログラムがゲームに反映されません。「あれ?動かないぞ?」という時の原因No.1です。
-
💾 保存(Save): その隣にある保存ボタンも忘れずに。冒険の記録はこまめに残しましょう。
まとめ:自由な冒険への第一歩

今回は、UE5のブループリントを使って、VR空間を自分の足で歩く「自由移動」の魔法を実装しました。
テレポート移動という「瞬間移動」から卒業し、スティック一つで世界を探索できるようになった今、あなたのプロジェクトは一気に「ゲーム」としてのクオリティが上がったはずです。
しかし、自由な移動を手に入れた冒険者には、次に解決すべき**「2つの課題」**が立ちはだかります。
次は「自分にぴったりの身体」へカスタマイズしよう

今の状態だと、「歩くスピードが速すぎてVR酔いしてしまう」、あるいは**「カメラの高さが合わずに、地面に埋まっている(または浮いている)ように感じる」**といった違和感があるかもしれません。
-
自由移動を実装した後は、「移動速度」と「カメラの高さ」を調整することが不可欠です。
-
プレイヤーの体感と、VR内のアバターの動きがズレていると、脳が混乱して激しい「VR酔い」を引き起こすからです。
-
リアルでは時速4kmで歩いている感覚なのに、VRで時速20kmで進んでしまうと、一瞬で気分が悪くなってしまいます。
-
快適な冒険を続けるためには、キャラクターコンポーネントの設定をマスターし、自分にぴったりの「歩幅」と「視点」を手に入れる必要があります。
今回の「移動ロジック」は非常に重要ですが、実はまだ50点です。残りの50点、つまり**「キャラクターの個性を決めるコンポーネントの調整方法」**については、こちらの記事で詳しく解説しています。
次回【UE5】スムーズ移動によるVR酔いを防ぐ!移動速度とカメラの高さ調整ガイドへ]
「歩けるようになったけど、ちょっと操作しにくいな…」と感じている方は、ぜひこの記事を読んで、あなたのVRアバターを完成させてください。一緒に、もっと快適な冒険の旅へ出かけましょう!
この記事が、あなたのVR開発の冒険の役に立てば嬉しいです。 それでは、良きVRライフを!
下記も参考にしてみてね!
ブログ↓(リンク)
前回 UE5 スティック移動で没入感UP!VRスムーズ歩行の完全ガイド【設定編】
YouTube↓


削除もいいのですが、





















