0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UE6 で FirstPersonTemplate を Verse だけで再実装できるか調べてみた

0
Last updated at Posted at 2026-06-21

はじめに

ue6-main ブランチで UE6 エディタがようやく手元で起動できるようになったので、Verse の勉強がてら、Blueprint / C++ でお馴染みの FirstPersonTemplate を Verse / SceneGraph で作り直してみよう と思い立ちました。

ところが触り始めてすぐ、現状の ue6-main の Verse では、一人称視点の中核に必要なコンポーネントが軒並み揃っていない ことが分かりました。本格的なものでなければ Verse でコードを書いて動かしてみる、くらいはできそうなのですが、「FirstPersonTemplate をそのまま Verse で再現する」のは現時点では無理そうです。

この記事は、その「なぜ無理なのか」を、同梱プラグインとソースを確認しながらまとめたものです。

調査環境について:
ue6-main / コミット: ef011d7aa002、調査日: 2026-06-21
Verse / SceneGraph 関連プラグインは UE6 リポジトリに同梱されていますが、いずれも EnabledByDefault: false(デフォルト無効) です。ステータスは横並びではなく、SceneGraph(EntityFramework)は Beta、UAF は Experimental、Verse コアは安定版(IsBetaVersion: false)だが未有効、という状態でした。いずれにせよ API は今後ガラッと変わる前提で読んでいただければと思います。
プラグインやファイルのリストアップには Claude Code / Codex も併用しています。気になる箇所はソースまで確認していますが、最終的にはご自身の環境でも確認するのを推奨します。

なお、調査の過程で アニメーション周りが AnimBP から「Verse + UAF(旧 AnimNext)の役割分担」へ再編されている ことも分かったのですが、こちらは話のレイヤーが違ううえに分量も多いので、別記事に分けましたUE6 のアニメーションは Verse と UAF にどう分割されたか)。本記事はあくまで カメラ・入力・キャラクター移動・ゲームフレームワーク層 の話に絞ります。


結論:現状 Verse だけでは FirstPersonTemplate は作れない

先に要点だけ。FirstPerson の中核となる以下の機能について、Verse から扱う API が公開されていません

足りないもの(Verse API が未公開)❌

FirstPerson に必要 状況
CameraComponent 相当(一人称カメラ) ✕ SceneGraph に該当コンポーネントなし
CharacterMovementComponent 相当(WASD 移動・ジャンプ・空中制御)
PlayerController 相当
GameMode / GameModeBase 相当
Enhanced Input(IA_Move / IA_Look / IMC_Default ✕ Verse から購読する API が見つからない
AnimBP のステートマシン駆動 △ UAF + Verse modifier の分業で代替(→ 別記事)

今あるもの(Verse から扱える)✅

領域 Verse から扱えるもの
ビジュアル / レンダリング Mesh / Light / Decal / PostFx など一通り
物理 / 衝突 Physics 系・RigidBody・コリジョン
モーション KeyframedMovementComponent(事前定義キーフレーム再生のみ)
ゲームプレイ Possessable / Possessor / Damageable(ただし後述の注意あり)
その他 Sound / Particle / TextDisplay など

つまり、「見た目・データ寄りの SceneGraph エンティティ」は Verse で組める が、「プレイヤーが操作する一人称キャラクター」を成立させる層が丸ごと欠けている、というのが現状です。以下、根拠を順番に見ていきます。


UE6 に同梱されている Verse / SceneGraph プラグイン

まず、UE6 リポジトリには Verse / SceneGraph 関連プラグインが一式入っています。

Verse 言語コア(Engine/Plugins/Verse/

  • Verse / VerseVM / VerseInterface
  • VerseEngine / VerseColors / VerseSimulation / VerseSpatialMath
  • VerseTags / VerseModifier / VerseGameplayDebug / VersePrint
  • VerseExperimental / VerseRestricted / VersePersonaMetadata / VerseSimulationMetadata など

SceneGraph(Engine/Plugins/EntityFramework/

SceneGraph の本体は EntityFramework.uplugin です。プロパティを見ると現状の温度感が分かります。

"Category": "Verse",
"VerseScope": "PublicAPI",
"CanContainVerse": true,
"EnabledByDefault": false,
"IsBetaVersion": true

Verse.uplugin 側も同様にデフォルト無効です。

"EnabledByDefault": false,
"CanContainVerse": true,
"CanContainContent": true,
"IsBetaVersion": false,
"Installed": false

つまり プラグインとしては同梱されているが、いずれもデフォルト無効 という状態です。ここで一点注意で、EntityFramework(SceneGraph)は IsBetaVersion: true の Beta ですが、Verse コア自体は IsBetaVersion: false の安定版 で、ただ EnabledByDefault: false のため有効化されていないだけ、という違いがあります(後述の UAF は Experimental)。ステータスを一括りにしないよう気をつけたいところです。ここを踏まえたうえで、中身を見ていきます。


SceneGraph で Verse から扱えるコンポーネント

Engine/Plugins/EntityFramework/Source/Component/Verse/ 配下の .native.verse を一通り確認しました。カテゴリ別に整理するとこうなります。

今ある(Verse から扱える)もの

カテゴリ コンポーネント
ビジュアル / レンダリング MeshComponent / MeshPart / PresentationComponent / DecalComponent / DirectionalLight / Spot / Sphere / Rect / CapsuleLight / LightComponent / PostFxSettingsComponent / RenderSettingsVolumeComponent
物理 / 衝突 PhysicsComponent / PhysicsSceneComponent / PhysicsReplicationComponent / RigidBody / RigidBodyComponent / NetworkPhysicsSettingsComponent(コンポーネントではないが HasCollision / HasDynamics / HasUEPhysicsProperties
モーション KeyframedMovementComponent
ゲームプレイ PossessableComponent / PossessorComponent / DamageableComponent
その他 SoundComponent / ParticleSystemComponent / TextDisplayComponent / MapReadyComponent

ライト・メッシュ・物理・サウンド・パーティクルあたりは揃っているので、ビジュアルやデータ寄りのエンティティなら Verse で十分組めます

ただし FirstPerson の文脈では、2つ注意点があります。

  • KeyframedMovementComponent は CharacterMovement とは別物 です。名前は「動き」ですが、実体は 事前に定義したキーフレームを再生するだけ で、WASD 入力に応じて移動・ジャンプ・空中制御する CharacterMovement の代わりにはなりません。
  • PossessableComponent / PossessorComponent は PlayerController ↔ Pawn の possess ではありません。名前から「あ、これでプレイヤーが Pawn を possess できるのかな」と一瞬思いますが、実装を見ると agent ↔ entity の所有関係 を表すもので、UE のプレイヤー入力ループとは別概念でした。

FirstPerson に必要だが「無い」もの

FirstPerson に必要 SceneGraph 側の有無
CameraComponent
CharacterMovementComponent
PlayerController
GameMode / GameModeBase
Enhanced Input bridge

カメラ・移動・コントローラ・ゲームモードという、一人称テンプレートの背骨にあたる部分がそのまま欠けている ことが分かります。


player / agent API の限界

「コンポーネントが無くても、playeragent から入力やカメラを触れないか?」と思って Verse 側の API も確認しました。

Engine/Plugins/EntityFramework/Source/EntitySimulation/Verse/Simulation/player.native.verse

@hide_in_editor
player<native><public> := class<unique><epic_internal><persistent>...(agent):
    IsActive<native><public>()<reads><decides>:void

playeragent の派生型として存在するものの、公開されている API は IsActive 程度 でした。Fortnite Creative / UEFN で言うところの creative_player 相当の機能(カメラ操作・入力受信・Pawn 制御)は、UE6 リポジトリの Verse からは まだ触れません

「簡易なゲーム状態管理に agent / player を使う」くらいなら成立しそうですが、一人称操作の入口としては力不足です。


Enhanced Input を Verse から触れるか

カメラと移動が無くても、せめて入力イベントだけでも Verse で受けられないか を確認しました。

Engine/Plugins/Verse/ および Engine/Plugins/EntityFramework/ 配下の全 .verse を、以下のキーワードで全文検索しました。

input | enhanced_input | input_action | input_mapping

ヒット件数:0 でした。

現状の UE6 リポジトリには、Verse から Enhanced Input を購読する公開 API が存在しない ということになります。入力という入口が塞がっている以上、「Verse だけで操作キャラを動かす」のは原理的に難しい、というのがここで確定します。


Verse-only のサンプル / テンプレートは同梱されているか

「Epic 自身が Verse だけで動くプロジェクトのリファレンスを置いていれば、それを真似ればいい」と思って探しましたが、

Templates/**/*.verse  → 0 件
Samples/**/*.verse    → 0 件

0 件 でした。

Templates/TP_FirstPersonBP/Config/TemplateDefs.ini の Variants も ArenaShooter / SurvivalHorror / All のみで、Verse バリアントは用意されていません。現時点では、Epic も「Verse のみで動くプロジェクト」をリポジトリに同梱していない、という状況です。


「まだ固まっていない」プラグイン構成

ソースを眺めていると、ゲームプレイ層が Epic 内部でも変動中 であることを示唆する痕跡があります。

  • EpicGamesTemporary というプラグインに Playable.native.verseSceneGraph_Deprecated.native.verse が存在する
  • プラグイン名が Temporary、ファイル名に Deprecated が付いている

プラグイン名「一時的」、ファイル名「非推奨」というネーミングからして、SceneGraph + Verse のゲームプレイ層は内部でもまだ API が固まっておらず、置き換えの途中 だと読み取れます。EntityFramework.upluginIsBetaVersion: true とも整合します。

逆に言うと、ここが固まってくれば一気に状況が変わる可能性もあるので、今後のバージョンで継続ウォッチしたいところです。


アニメーション層について(別記事に分けました)

FirstPerson というと AnimBP も気になるところですが、UE6 では アニメーションが AnimBP から「UAF(RigVM ベースの AnimBP 後継)+ Verse modifier の役割分担」へ再編 されています。

ここは掘ると長くなるのと、FirstPersonTemplate の「移植できる / できない」への影響は限定的(結局カメラ・入力・移動の Verse API が無い時点で詰む)なので、別記事に切り出しました。Verse ↔ UAF の双方向 API の現状(再生指示はできるが AnimNotify / ステート遷移通知が Verse に返ってこない、等)に興味がある方はそちらをどうぞ → UE6 のアニメーションは Verse と UAF にどう分割されたか


現実的に取りうる選択肢

ここまでを踏まえて、ue6-main で今できることを整理するとこうなります。

アプローチ 可否 備考
ライト・メッシュ・物理・キーフレーム移動・サウンド・パーティクルなど、ビジュアル / データ寄りの SceneGraph エンティティを Verse で組む コンポーネントが揃っている
agent / player を使った簡易なゲーム状態管理 公開 API が限定的
一人称カメラ + WASD 移動 + マウスルック + ジャンプ + 武器射撃を Verse のみ で実装 必要な API が未公開
C++ / BP 側でキャラ・カメラ・入力を実装し、ゲームロジックの一部だけ Verse で書くハイブリッド構成 現実的な落としどころ

おわりに

Verse の勉強のつもりが、いつのまにか「現状の Verse / SceneGraph に何があって何が無いか」の棚卸しになってしまいました。

結論としては、ue6-main 時点では FirstPersonTemplate の中核(ACharacterCameraComponent + Enhanced Input + AnimBP)は 引き続き C++ または Blueprint で実装する 必要があります。Verse は、SceneGraph 上のゲームロジック層(武器のスポーン、ダメージ処理、スコア管理、エンティティの挙動など)から 段階的に導入 するのが現実的だと思います。

完全 Verse 化が見えてくるのは、Epic が少なくとも以下を Verse API として公開する将来バージョン以降になりそうです。

  • CameraComponent 相当
  • CharacterMovementComponent 相当の locomotion
  • Enhanced Input ブリッジ
  • PlayerController / GameMode 相当のフレームワーク層

とはいえ、SceneGraph のコンポーネント群やエンティティモデル自体は思ったより揃っていて、「ゲームプレイ層の API がここに乗ってくれば、確かに Verse でゲームが書けそう」ということは掴めました。Temporary / Deprecated という名前のファイルが残っているあたり、ちょうど今まさに作っている最中 という感じなので、続報を楽しみに待ちたいと思います。

そして何より、早く Verse だけでテンプレートプロジェクトを組めるようになってほしい、というのが正直な気持ちです。今回 FirstPersonTemplate を Verse で作り直そうとしたのも、突き詰めれば「Verse を手を動かして学びたい」という動機でした。TP_FirstPerson の Verse バリアントのような、Epic 公式の「Verse だけで完結する」リファレンスが1つ降ってくるだけで、学習の入口は一気に広がるはずです。カメラ・入力・移動・フレームワーク層の Verse API がそろい、Templates/.verse のテンプレが並ぶ日を楽しみに待っています。

繰り返しになりますが、ここで触れた内容は デフォルト無効(EnabledByDefault: false)の、Beta / Experimental を含むプラグイン群のスナップショット です。バージョンが上がれば結論ごと変わる可能性が高いので、その前提で読んでいただけるとうれしいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?