![]() |
![]() |
Unreal Engine 5.8(以下,UE5.8)ではMCP(Model Context Protocol)のサポートが始まり,手元のLLMエージェントからUnreal Editorをライブで操作できるようになった。
本講演では,その導入手順と拡張方法,そして湊氏自身が2日間でゲームを作ってみた体験が語られた。
![]() |
なお,ゲーム生成のプロンプト,つまりこう入力したらこんなゲームができましたという話はしない,と冒頭で断られている。
![]() |
LLM,エージェント,そしてMCP
まずは用語の整理から。LLM(大規模言語モデル)は大量のテキストから学習したもので,文字情報を投げると,それに対応した文字が返ってくるテキストベースのシステムだ。
ただしLLM自身はゲームエンジンを触ったりファイルを操作したりできないため,その部分を担当するエージェントを間に挟むことで,さまざまなことが可能になっている。
そのエージェントも,UEや他社のツールを直接操作することはできない。そこで提唱されたのがMCPというフォーマットで,このプロトコルを通じてアプリケーションとやりとりする下地が整った。
UE5.8に搭載されたUnreal MCPは,その流れを受けたものになる。
![]() |
Unreal Engine最新版「Unreal Engine 5.8」の見どころレポート。次世代の「Unreal Engine 6」へは,どうつながっていくのか
2026年6月に開催されたUF2026では,現行世代UEの最新版「Unreal Engine 5.8」も発表となっている。本稿ではUE5.8の主なトピック 6点の概要をまとめてみた。
Unreal MCPは無料で使用でき,Unreal Editorで使用するMCPサーバーのプラグインとして提供される。役割を逆転させてMCPクライアントとしても機能するとのことだが,本講演ではサーバーとしての側面に絞って解説が進められた。
Epicが掲げているのは,開発者が手綱を握り,LLMがオペレーターに徹する,というメッセージだ。
湊氏はこれを自分なりに解釈し,MCPを通じてLLMには人間と同じやり方で,UEをよく理解している同僚の開発者として振る舞うことが期待されているのではないか,と説明する。
重要なジャッジはクリエイターが行い,LLMが残していったものは,同僚の開発者が残していったものと同じ考え方,同じ作り方になっている。その点を重視した設計なのではないか,という見方だ。
![]() |
MCPはサーバーだけでは機能しないため,ツールセットプラグインも同時に提供されている。
これはドメインごとにMCPツールを提供するもので,たとえばコンフィグの設定を専門領域とするツールセット,アニメーションのセットアップを専門領域とするツールセット,といった形で分かれている。
![]() |
ツールセットにはツールだけでなく,スキルと呼ばれるものが内蔵されており,これを通じて,UEの正しい使い方をエージェントに伝える。
スキルは各プロジェクト向けに拡張することも可能だ。
活用例として挙がったのが,プロシージャル(手続き型)なコンテンツを作るフレームワークであるPCGと,ライティングだ。
いずれもUE側からスキルとして知識が送り込まれるため,空の色がおかしいなら真っ先に雲のグローバルカバレッジを疑え,といった,シニアのライティングアーティストがジュニアに指導するような原則論が伝えられる仕組みになっている。
![]() |
なお,PCGを利用した大型の街のサンプル「PCG版City Sample」は先ごろ公開されており,UEユーザーであれば誰でも無料でダウンロードできる。
湊氏は自身が社内の技術イベントDevDaysで行った基礎解説の講演資料も併せて案内した。
実にタイミングよくPCG版City Sampleがリリースされましたので、先日のDevDaysでのPCG Primitives講演資料を公開しますhttps://t.co/9ynZWtkP4E
— minahito (@minahito) August 28, 2026
なにかの参考になれば幸いです!#UEDevDaysTokyo
MCP以前からエージェントはUEを使えていた
MCPが使えるようになる前の段階から,エージェントはUEをうまく扱えていた,と湊氏は言う。
UEは複数のツールの集まりのような構造になっており,引数を与えることでさまざまなことができる。エージェントがその使い方をどこで学んだのかは分からないが,よく知っていて,うまく使ってくるのだという。
例として挙がったのはプロファイリングだ。開発者はパフォーマンスが重いときにUnreal Insightsでプロファイリングを行い,「.utrace」ファイルを取得してグラフとにらめっこすることになる。
これをLLMエージェントに相談すると,開発側も知らないような引数を与えてCSVに近い形式で書き出し,自分で読み込んでボトルネックを探して,このフレームを見たほうがいいと返してくるそうだ。
もうひとつがUnreal Pythonだ。ランタイムでは使えないものの,C++で書かれていて外部から参照できるリファレンスは,Pythonからも叩ける。
現場でバッチを組む用途などに使われているこの環境も,LLMエージェントは得意としている。そこにMCPが加わり,ライブ状態のAPIと通信できるようになったのが現在の状況だ。
![]() |
Epic Games Japan社内でMCPが入ったので何かやらせてみようという話になったときのエピソードも紹介された。題材に選ばれたのは,アニメーションに合わせて通知を入れる手間のかかる工程だ。
足が接地したフレームに通知を埋め込み,そこにサウンドのキューを入れてほしいと依頼したところ,エージェントはMCPを一切使わず,Pythonコードを書くと宣言して使い捨てのコードを書き始め,実際に埋め込んでしまったという。
Python内でアニメーションをサンプリングするAPIが公開されているため,各フレームのボーンの位置を一覧化し,ボーンがいちばん下に来ているフレームが接地だと判断して通知を入れる,という手順だ。
ここまではUE5.7の時点でもできていた。MCPの導入によって変わったのは,従来なら人間が実行してくださいと返されるはずのPythonを,エージェント自身が実行できるようになった点だという。
エディタ内のPython実行欄を使って自分でテストし,間違っていればPythonを直すという,自己改善のフィードバックまで回していた。
ところが,EpicのMCPツールセットにはPythonを実行する環境が用意されていない。
どうやって実行したのかを調べてみると,LLMエージェントがエディタから見えているUI要素をすべて解析する汎用的なツールセットを通じてコンソールコマンド欄を見つけ,右クリックでPythonモードに切り替えられることにも気づき,そこに文字列を流し込んで実行していたことが分かった。
湊氏は,本来であればPython実行のツールセットが提供されていることが望ましく,そこは機能強化していかなければならない,という考えを示した。
![]() |
MCPの導入手順と,公式のClaude Codeプラグイン
続いて,MCPを自分の環境に導入する手順が解説された。
まずプラグインの設定画面で,Unreal MCPと,使用するツールセットを有効化する。
ひとつずつ選ぶのは手間だが,All Toolsetsプラグインを有効にすると,よく使われるツールセットが連動してオンになるため,まずはこれを使うのがよいという。
次に,省略しても構わないが,設定画面でUnreal Editorの起動時にMCPサーバーを自動起動する設定にチェックを入れておくことが勧められた。
設定後にエディタを再起動すると有効になり,再起動を避けたい場合は,コンソールコマンドから手動で起動する形になる。
3つめが,各LLMエージェントにMCPを認識させるためのコンフィグファイルの生成だ。
これも組み込みで用意されており,コンソールコマンドでModelContextProtocol.GenerateClientConfigに続けて使用するLLMのタイプを指定すると,それに準じた設定ファイルが書き出される。
最後に,コンフィグが書き出されたフォルダをワークスペースにしてエージェントを起動すると,エージェント側がコンフィグを見つけてMCPを認識するか尋ねてくるので,有効化すれば通信の下地はできあがる。
![]() |
さらに湊氏が導入を勧めたのが,GitHubで配布されている公式のClaude Codeプラグインだ。
これはUEのプラグインではなく,LLMエージェント環境の側に導入するもので,重要なスキルが含まれており,あるかないかで結果はかなり変わるのではないかという。
Claude Code以外のエージェントを使っている場合でも,スキル自体がグローバルな規格になっているため,エージェントに相談すれば導入できるのではないかとした。
![]() |
導入時のポイントは3つ。
1つめは,先にUEを,つまりMCPサーバーを起動してからエージェントを起動すること。この順序だと接続周りでトラブルになりにくい。
2つめは,複数のUnreal EditorでMCPを使う場合に,設定でポート番号を分けること。片方が8800,もう片方が8801といった具合にすれば混線しない。
3つめは,MCPを通じた作業を依頼する際に,公式プラグインに含まれるunreal-mcpスキルを明示して使うこと。
エージェントは自分で判断してMCPを使うこともあるが,先の例のように第一の解決策をPythonで求める場合もあるため,そうではないと思ったときはスキルを明示するか,言葉でMCPを使いたいと伝えると確実だという。
![]() |
2日でゲームを作ってみた
ここからは湊氏自身の体験談だ。題材となったのは,UEの学習を目的としたゲーム/映像の開発コンテストとして,ヒストリアとEpic Games Japanの共催で開催されている「ぷちコン」で,今回で26回目になる。
講演当日の時点で締め切りは翌日の朝10時であり,まだ間に合う,という冗談交じりのアナウンスも挟まれた。
![]() |
7月末,ヒストリアの代表である佐々木氏と講演内容を相談した際,ぷちコンの応募作をMCPで作る実演をやったら面白いのではないかと湊氏が提案し,学習に役立つニュアンスならOK,という返答を得ていたという。
ところが,8月の予定が詰まっていく。7月の下旬までCEDEC 2026があり,その後はUEで開発された「Clair Obscur: Expedition 33」の開発者を日本で紹介するイベントが入った。
8日から23日ごろまでは夏休みを取っており,26日には社内の技術イベントDevDaysがあり,そこで3つの講演を担当している。結果として制作に充てられたのは,27日と28日の2日間だけになった。
![]() |
「Clair Obscur: Expedition 33」の世界的ヒットは奇跡か否か。開発陣がアトラス,Tango Gameworksのクリエイターと語った少人数開発の本質
Epic Games Japanは2026年7月26日,横浜市開港記念会館にて「Clair Obscur: Expedition 33」のポストモーテムイベントを開催した。本稿では,Tango GameworksのJohn Johanas氏,そしてアトラスの和田和久氏を交えて行われたラウンドテーブル(座談会)の内容をお届けする。
「Clair Obscur: Expedition 33」に登場する120体ものキャラクターはどのように作られたか。小規模チームで仕上げるために用いたUnreal Engine 5の活用法
Sandfall InteractiveとEpic Games Japanは2027年7月26日,「Clair Obscur: Expedition 33」のポストモーテムイベントを,神奈川・横浜市開港記念会館にて開催した。本稿では,キャラクターモデルの制作にフィーチャーしたセッション「苦しみすぎずにキャラクターを作る方法」をレポートする。
実際に会場では,その2日間で作られたプロトタイプが実演された。今回のぷちコンのテーマが「だん」だったことから,討伐団を編成するゲームになっている。
ランダムに選ばれた面々をドラッグ&ドロップでフォーメーションに配置し,引きが悪い場合は1体だけ交換できるルールもある。
編成後はオートバトルが進行し,勝てば3つの報酬から1つを選んで進む道筋を選択していく。最後のボスまで到達すればクリアだ。
![]() |
制作にあたって湊氏は,自身に縛りを設けている。ひとつは,設計に一般的なUEゲームと同じ手法を用いること。
エージェントの得意なことだけをやらせたのでは,体験談として物足りないと考えたためである。C++とBlueprintのバランスの取れた組み合わせを使い,データで表現・調整すべきものはBlueprintに直書きせず,データドリブンにする。
もうひとつは,コミュニティが利用できるものと同じリソースを使うことで,個人向けのサブスクリプションを使い,ソースからビルドしたエンジンではなくランチャー版のUE5.8.2を使用し,PCは1台に限定した。
![]() |
そのうえで,2日という制約に対して打った手が3つ紹介された(ここはUEとはあまり関係のない話になる,と湊氏は前置きしている)。
エージェントが迷わない開発プロセスを作ること,複数のエージェントを並行させて数で稼ぐこと,そして寝ても覚めてもエージェントを動かし続けることだ。
![]() |
1つめについて具体的にやったのは,遊べるゲームをまずブラウザゲームとして完成させることだった。
オートバトル中心でアクション要素がないためブラウザでも成立するうえ,LLMエージェントは「移植」を得意としているため,木曜に仕事をしながらブラウザ版を作り,金曜に仕事をしながらUEへ移植してもらうという組み立てだ。
あとから手を入れてもブラウザ版とUE版で同じものができる仕組みにしておけば,最後まで調整できるという計算もあった。
![]() |
その際,ブラウザ版の段階で移植性への配慮を入れている。任せるとJavaScriptが好きに書かれてしまうため,UEへの移行を見据えて,Webゲーム用としてはほぼ意味のないオブジェクト指向的な構造にするよう依頼した。
バトルマネージャーを置き,ターンが回ってきたらオブジェクトに通知し,行動と演出が終わったらマネージャーに通知してから次に進む,といった作りだ。
Blueprintについては別のアプローチを採っている。MCPでBlueprintを編集したいと依頼すると,それをテキストとして書き表すための専用の記法(S式ベースのDSL)がUEからエージェントへ通知され,エージェントはそれに基づいて組み立てる形になっている。
この記法を先にエージェントへダウンロードさせておき,Blueprintを模したJavaScriptを書く際にコーディング規約をそちらへ寄せることで,一対一で変換できる下地を仕込んだ,という手順だ。
あまり良くない方法かもしれない,という留保も添えられた。
データについても,UEならデータテーブルやデータアセットで持つはずのものは,JavaScriptのコードに直接書かせず必ずJSONに入れさせ,最終的にJSONからデータテーブルへ流し込むPythonを用意して変換している。
![]() |
2つめの複数並行については,バージョン管理システムを挟んで複数のワークスペースを用意し,片方をエンジニア役のエージェント,もう片方をアーティスト役のエージェントとして運用した。
3役目を作ろうとしたところVRAMが枯渇したため,ノートPCでは2つが限界と判断して2つに戻したという。
MCPはエディタを直接操作するため,一方がレベルデザインを行っている最中に,もう一方が同じエディタを触るのは苦手で,役割を分けたことが役に立ったとのことだ。
C++を書き換えたエージェントがビルドを始めてエディタが落ち,別のセッションからMCPと通信できなくなったと言われることもあった。
そこで能力の高いエージェントを1体常駐させ,MCPを使う制御やビルドはその1体が統括し,コードを書く作業はサブエージェントに振る形にしている。
エディタを触っている間は,そこがボトルネックになりがちだ。そのため,先の例でMCPではなくPythonを使い出した挙動が,ここでは有利に働いた。
裏でPythonを書く作業はエディタの状態と無関係に進むため,細かい仕事を振り続けられる。
結果として,ワークスペースは2つでありながら,最大で8つほどのセッションが衝突せずに動く状態を作れたという。
![]() |
3つめは稼働時間の話だ。家族の送迎でノートPCを閉じると仕事が止まるため,車のトランクにPCを入れたまま動かし続け,外出時は自宅のPCをつけっぱなしにして,スマートフォンからリモートで操作している。
エージェントからタイトル画面の候補を提示されても画面が見えないので困ったが,スクリーンショットを送ってほしいと頼めば送ってくれることに気づき,チャット履歴に現れた画像を見て選ぶ運用になった。
睡眠中は指示できないので,これから6時間寝るので何かやっておいてほしい,と相談していたという。
![]() |
こうした進め方について湊氏は,今回はほとんどUEを触っていないと述べたうえで,そうしていいと思っているわけではなく,仕事の状況的にそうせざるを得なかったのだと補足している。
同じ期間,湊氏自身は11月3日から4日に有明TFTホールで開催されるUnreal Fest Tokyo 2026の事務方を担当していた。参加は無料で,来場者登録をすでに開始している。
Unreal Engineの最新事情を学べる開発者向けイベント「Unreal Fest Tokyo 2026」が11月3〜4日に東京有明で開催決定
2026年8月18日,Epic Games Japanは,開発者向け無料イベント「Unreal Fest Tokyo 2026」を,2026年11月3日から4日の日程で,東京都江東区有明のTFTビル西館 TFTホールで開催すると発表した。
そして,できあがった作品でぷちコンに応募しようと要項を読み直したところ,「MCPによる自動操作だけで完成させた作品や,生成された内容の単なる集合体は審査対象外となる場合がある」と書かれていた。
![]() |
つまり,今回の作品は失格ということになる。せっかくの2日間が。
![]() |
UMG,Niagara,ワールド構築で分かったこと
応募はかなわなかったものの,制作を通じて分かったことが共有された。
ひとつはUMG(UEのUI制作ツール)だ。業務でMCPを使う中でコントロールリグは組めると分かっていたが,UMGを組ませたことはなかったという。
実際に試すと,モックアップやデザインの方針,アートアセットを渡せば本番レベルのUMGを構築でき,デザインがあればかなり正確に従う。
ブラウザ版の画面を移植してほしいと依頼したところ,ブラウザ向けに作られたデザインが,そのままUE上に構築された。
UMG内で繰り返し使う要素を単体のウィジェットに分割して再利用する考え方も,一言注意しただけでセオリーどおりに組まれたそうだ。
さらに,作成したUMGをダミーのレベルに貼り,マウスクリックのシミュレーションを行って動作をテストするところまで,スクリーンショットと画面操作の機能を組み合わせて自発的に実施していた。
ここは実践レベルになるのではないか,と湊氏は感じたという。
![]() |
一方で,同じUMGでもアニメーションは組めなかった。左からパネルをスライドさせてほしい,フェードイン・フェードアウトさせてほしいといった依頼をしても,アニメーションには触れないと返ってくる。
ただし食い下がると,コンソールコマンド欄からPythonに切り替える方法を見つけたときと同じ要領で,自分でクリックしてアニメーションを作ると言い出し,人間のおよそ100分の1程度の速度ながら,多少は作ってくれたという。
現時点でUMGのアニメーションは組めない。ただし,やれと言えばやってくれるくらいが現状だ。
![]() |
自動プレイテストについては,特に指示しなくてもUEのAutomation Testを使ってくれた。
ただし今回のゲームは仕様上,複雑な自動操作を必要としないため,それ以上の深掘りはしていないとのことだ。
MCPを通じて,人間の言葉からNiagaraシステム(エフェクト)を構築することもできたという。
ここには副次的な効果もある。UE5.7まではNiagaraシステムを構築するためのAPIが外部に公開されていなかったため,C++でもPythonでも作れず,人間が作るしかなかった。
それが今回,MCPからのアクセス経路を用意する必要が生じたことで,相当数のNiagara APIが外部に公開された。
LLMエージェントを業務導入していない現場でも,決まった手順やデータからNiagaraシステムを構築するようなバッチ処理が書けるようになりそうだ。
![]() |
VFXはロジカルな部分が多いため,本職のVFXアーティストが使えば相当の助けになるのではないかと湊氏は述べた。
外部からコントロールするために必要なユーザーパラメータについても,期待どおりに公開して,プログラムから書き込む形で処理されていたという。
ただし,近年のバージョンで追加された軽量エミッタにはMCPから手が届かず,C++やPythonからも書けない状態にある。
ワールドの見た目の構築については,ゲーム内の要件に基づき,スクリーンショットを撮って改善するループで進められた。
今回のゲームは冒険するタイプではないものの,1画面の中で背景がバイオームを説明する絵になっている必要がある。
雪山という指定があれば雪山らしく見えるようアセットを構成し,Fabでアセットを買ってほしいと要求してくるため,湊氏がせっせとクレジットカードを用意して購入すると,エージェントはそれを背景に配置していく。
手前には物を置かず,戦闘フィールドとして指定した範囲にも物を置かない,という制約も認識されていた。スクリーンショットを確認する中で,ダミーで配置したキャラクターと雪山のアセットが重なっていることに自分で気づき,回転させて直す場面もあったという。
ゲームの要件に合わせたレベルインスタンス化についても,理解は良好だったとのことだ。
マップを切り替えるのではなく,バイオームを表現するものをアセット化し,別の場所へ移動した際には原点から動かないまま動的ストリーミングで読み込む,という要求を理解して,そのとおりに実装してプログラムに組み込んでいる。
ただし,冒頭で紹介したPCGを使ったアプローチとの差は歴然だ,と湊氏は付け加える。自動でここまでやってくれるのはすごいという話であって,製品レベルのものではない。
密度の高いワールドを人間のプロのアーティストが作る場合,現場でもいくつかのプロシージャルツールが併用されているはずで,そうしたプロシージャルのロジックをMCPと一緒に作り,線を引いたら道ができる,区画を指定すればビルが入る,といった汎用のツールに落とし込む。
それをLLMエージェントも人間も使って調整していく形が,実際の開発における本当の使われ方になっていくのではないか,という見立てが示された。
![]() |
2日間の取り組みを終えての実感
今回の取り組みを通じた実感として,MCPを使えばトータルでの開発は加速する,と湊氏はまとめた。
一方で,人間の開発と同様に,手詰まりしない開発プロセスを事前に計画する必要性は高い。
何も考えずに突っ込むと,エージェントも万能ではないため誤った方向に転がっていき,軌道修正も言葉で正確に伝えなければならず手間がかかる。
ただしそれは普段の開発でも同じことなので,準備にしっかり時間をかければよいという整理だ。
エディタを専有する操作,たとえばスクリーンショットを撮って改善するループは,今後どれだけ改良が進んでもボトルネックにならざるを得ないのではないか,という見通しも示された。
だからこそ,Pythonスクリプトや設計の相談,コマンドラインでできる仕事,Unreal Insightsでボトルネックを解析する仕事といった,裏で進められる作業をエディタ操作と並走させ続けることが大事になる。
そのうえで,MCPと一緒にツールを作り,エージェントがやっていることをブラックボックスにせず,MCPを通じてそのツールを叩かせるのが確実で早いのではないか,と湊氏は述べる。
そのツールは人間も一緒に使うものだ,という点も付け加えられた。
意外だった点として,今回の取り組みではトークンをそれほど消耗しなかったことが挙げられた。使用したのはClaude Fableなどではなく個人向けサブスクリプションのClaude Opusで,十分だったという。
ただし,この2日間で作ったものについては,ゲーム開発の中でもともと速く進むフェーズをさらに速く走っただけ,という感は拭えないとも述べている。ゲーム作りが大変になるのは,ここからだ。
![]() |
機能の拡張はツールセット,スキル,サンプルの3本柱
後半は,MCP環境下でUEの機能を拡張する方法に充てられた。
柱は3つ。エンジンや自社パイプラインのラッパーとなるツールセット,道案内のプロンプトの束であるスキル,そして実作業の見本や再利用パターン集となるサンプルだ。
![]() |
ツールセットは,Epicが用意しているものでは足りない場合や,自分のプロジェクトに特化したツールをLLMエージェントに操作してもらいたい場合に,自分で実装することになる。
C++とPythonのどちらも使用できるが,Pythonの場合は,Pythonに公開されているAPIしか書けない点に注意が必要だ。
実装方法はUEの他のツールと同様で,特定のクラスを継承し,特定のmetaタグを付けてstatic関数を書いていくと,自動的にMCPサーバーへ公開される。変換部分はエンジン側が処理する形だ。
もっとも,実際にはEpicの公式スキルに作ってもらうこともできるため,クラスの書き方が分からなくても問題ないという。
例として挙がったのが構造体だ。標準のMCPではC++の構造体は書けるが,Blueprintの構造体は書けない。
現状,Blueprintで構造体を作り,それを使ってデータテーブルを作るという手順は踏めず,エージェントは必ずC++で構造体を書いてから,データテーブルなどを作ることになる。
不便であればツールセットを自作すればよく,プロンプトを書けばツールセットを作ってくれることは,自身でもテストできたそうだ。
ツールセットの制作にはベストプラクティスがある。既存のAPIと重複するものを作らないこと,そして,あるMCPツールが返したものを別のMCPツールが引数として受け取れるように,組み合わせ可能なものが望ましいことなどだ。
![]() |
このスライドを熱心に撮影していた筆者や会場に対し,湊氏は,覚えて帰ってほしいのは次のスライドのほうだと笑顔で切り出した。
![]() |
これらの原則はcreate-toolsetというスキルの中にすべて仕込まれており,有効な状態でエージェントに制作を頼めば,それで済んでしまうからだ。
何を作ればいいか思いつかない場合も,ある程度プロジェクトが進んだ段階で,このプロジェクトを振り返ってどんな問題があり,どういうツールセットを作れば効率が高まるかを尋ねれば,向こうから提案が返ってくる。
スキルの自作と,サンプルの活用
スキルについては,冒頭で触れた,エディタの正しい使い方やライティングの知識が送信される仕組みのことだ。
LLMエージェントのネイティブのスキルとは別に,UE独自のスキルアセットが用意されている。
スキルアセットはプロジェクトの資産として持つことができ,C++,Python,Blueprintの3種類から,手に馴染んだものを選んで作成できる。
![]() |
こちらもEpicの公式スキルで作ってもらえる。たとえば先ほどのツールセットによって,これまでC++でしか構造体を作れないと認識していたエージェントに,Blueprintの構造体も作れるという選択肢が加わったとする。
すると今度は,作り分けの基準が重要になる。
C++から操作する可能性のある構造体をBlueprintで作られては困る,といった職場ごとのTipsを伝える必要が出てくるが,そこでunreal-skillにプロンプトを与えれば,まさにそうしたスキルが作れる形になっている。
スキル制作にも同様にベストプラクティスがある。
![]() |
ただし,このスライドが表示されたところで会場のシャッター音は止まっていた。オチが読まれていたわけだ。
こちらもMCPツールを接続した状態,または公式プラグインに含まれるunreal-skillを使えば,自動的に適用される。
真のベストプラクティスはエージェントに頼むこと,そしてどんなスキルを作れば効率が上がるかも,エージェントに相談すること,という結論だ。
![]() |
3つめのサンプルについては,UE5.8の中でも積極的に利用されている。例として示されたのはPCGツールセットだ。
開発者からPCGグラフを作りたいという相談を受けるとスキルが発動し,エージェントに命令文が送り込まれる。その中では,エンジン内に格納されているEpic製のPCGグラフのディレクトリを示したうえでサンプルを読むよう指示され,リクエストに応じたサンプルグラフの構造をすべて,しかも多めに取得するよう求められる。
Basicsフォルダには,より小さなロジック単位の使いやすいサンプルがあるため,必ず複数取得するように,といった内容も含まれている。
言葉でベストプラクティスを説明するより手っ取り早いのではないか,と湊氏は言う。
パラメータを調整したデータセットを大量に持っている場合や,新しいデータセットとしてモンスターの種類を増やしたい場合に,ここにテンプレートがある,ここに製品レベルで使えるものがあるので参考にしてほしい,と指示すれば,うまく読み取って作業してくれるのではないかとした。
より詳しい内部動作については,先日のDevDaysで行った,踏み込んだ内容の講演資料が公開されている。
![]() |
検索を楽にするセマンティックサーチ
残り時間で紹介されたのがセマンティックサーチだ。これはサムネイルを説明するキャプションをエージェントに作らせることで,アセット名に含まれていない言葉でも検索できるようにする機能だ。
工場らしいアセットを並べた場合,名前にfactoryという文字がなくとも,見た目から判断して見つけられる。
LLMエージェントだけでなく,人間が探すときにも役立つ。
![]() |
利用にはSemantic Searchプラグインを有効化する。MCPに公開したい場合は,併せてSemantic Search Toolsetプラグインを有効化する。
キャプション生成と埋め込みにはOpenAI互換のAPIキーが必要で,機能自体は無料だが,接続先サービス(OpenAIなど)側の利用料が発生する場合がある。
設定後,コンテンツブラウザの検索欄に表示されるAIのアイコンをクリックするとセマンティックサーチが有効になり,キャプションが未作成のアセット数が表示される。
そこをクリックするとキャプション生成,つまりインデックス化が始まり,アセットの規模によるが1〜2時間ほど待つと完了する。
費用については,湊氏が個人アカウントで実験した例が示された。5800ほどのアセットを持つサンプルプロジェクトのインデックス作成で,かかったのは3.71ドル,日本円で600円ほどだ。
ただし第一線の開発現場のアセット数は2桁から3桁ほど違うため,金額も同じだけ違ってくるだろうという。
一度作成したインデックスはDDCに保存されるため,重複して支払う心配はない。
![]() |
まとめ
最後に,UEにはMCPとは別に,AI Assistantプラグインが提供されている。Epic提供のLLMアシスタントで,無料で使用でき,プラグインから有効化する。
UEに詳しいChatGPTのようなものだ。エージェンティックではないためプロジェクトの状態は見えないが,F1キーを押すと,カーソルが乗っているUIの情報について自動的に質問してくれるという連携は用意されている。ブラウザでも使える。
![]() |
MCPを使う場合は画面が見えるため,アノテーションも識別できる。サンプルデータを取ってきたところ理解できないマテリアルの数式があった,というようなときに,コメントでここが分からないと書いておいてLLMエージェントに質問すると,該当箇所を拾って答えてくれる。
学生に向けた話として,MCPは従来のようにプロジェクトをLLMエージェントに認識させる場合と比べて中が見えるため,次の一手を尋ねる用途に向いているとした。ログやプロファイラの見方のように,習っていなければ本当に分からないものを機械に案内させるのもよい。
調べ方を教わるのか,全部やってもらうのか。その線引きを自分なりに持って取り組めば,キャリア構築という観点でも,MCPはそれほど怖いものではない,と湊氏は続ける。
そして最後に,先日のUnreal Fest Seoulで5.9の開発が進行中であるとの発表があったため,AI機能についても,さらなる改善が今後見られるのではないかと述べて,講演は締めくくられた。
![]() |


















![画像ギャラリー No.001のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/001.jpg)
![画像ギャラリー No.035のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/035.jpg)
![画像ギャラリー No.002のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/002.jpg)
![画像ギャラリー No.003のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/003.jpg)
![画像ギャラリー No.004のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/004.jpg)
![画像ギャラリー No.005のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/005.jpg)
![画像ギャラリー No.006のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/006.jpg)
![画像ギャラリー No.007のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/007.jpg)
![画像ギャラリー No.008のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/008.jpg)
![画像ギャラリー No.009のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/009.jpg)
![画像ギャラリー No.010のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/010.jpg)
![画像ギャラリー No.011のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/011.jpg)
![画像ギャラリー No.012のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/012.jpg)
![画像ギャラリー No.013のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/013.jpg)
![画像ギャラリー No.041のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/041.jpg)

![画像ギャラリー No.014のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/014.jpg)
![画像ギャラリー No.015のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/015.jpg)
![画像ギャラリー No.016のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/016.jpg)
![画像ギャラリー No.017のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/017.jpg)
![画像ギャラリー No.018のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/018.jpg)
![画像ギャラリー No.019のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/019.jpg)
![画像ギャラリー No.020のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/020.jpg)
![画像ギャラリー No.037のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/037.jpg)
![画像ギャラリー No.021のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/021.jpg)
![画像ギャラリー No.022のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/022.jpg)
![画像ギャラリー No.023のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/023.jpg)
![画像ギャラリー No.024のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/024.jpg)
![画像ギャラリー No.025のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/025.jpg)
![画像ギャラリー No.026のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/026.jpg)
![画像ギャラリー No.027のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/027.jpg)
![画像ギャラリー No.040のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/040.jpg)
![画像ギャラリー No.028のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/028.jpg)
![画像ギャラリー No.038のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/038.jpg)
![画像ギャラリー No.039のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/039.jpg)
![画像ギャラリー No.029のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/029.jpg)
![画像ギャラリー No.030のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/030.jpg)
![画像ギャラリー No.031のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/031.jpg)
![画像ギャラリー No.032のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/032.jpg)
![画像ギャラリー No.033のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/033.jpg)
![画像ギャラリー No.034のサムネイル画像 / MCP対応前からUnreal Engineを自力で操れていたLLMエージェントは,UE5.8のMCPで何ができるようになったのか[ゲームメーカーズスクランブル]](/games/210/G021013/20260907003/TN/034.jpg)