はじめに
Neovim で Unreal Engine 開発を行うためのプラグインスイート、今週のアップデート情報です。
私自身、「本格的なデバッグはIDE(Visual StudioやRider)で行う」というスタンスに変わりはありません。しかし、「ちょっとした変数の確認やクラッシュ箇所の特定など、簡単なデバッグならNeovimから出ずにサクッと行いたい」 と思う場面も多々あります。
そこで今回は、そんな願いを叶えるデバッグ用プラグインと、Unreal Engineのプロジェクト構造に特化した専用ファイルエクスプローラー(兼シンボルツリー)をリリースしました。
-
UDB.nvim:
launch.json不要、ゼロ設定で動くデバッガーブリッジ - UNX.nvim: UEプロジェクト専用の軽量論理ビューア&シンボルツリー
これらにより、Neovim はより「Unreal Engine 用の IDE」へと近づいたのではないかと感じています。
✨ UDB (Unreal Debugger Bridge) とは?
UDB.nvim は、その名の通り Neovim (nvim-dap) と Unreal Engine のデバッグ環境を繋ぐブリッジプラグインです。
最大の特徴は 「ほぼゼロ・コンフィグ」 であること。
通常、デバッガーの設定には launch.json などの記述が必要ですが、UDBは以下の連携によりこれを自動化します。
-
UEP.nvim:
.uprojectを解析 -
UBT.nvim: ビルド構成と
UnrealEditorのバイナリ位置を特定
ユーザーが行う必要があるのは、基本的に 「DAPのアダプタータイプをUDBに伝えるだけ」 です。
(※デフォルトでは codelldb を使用します)
設定例
codelldb を使用する場合の一般的な設定は以下のようになります。
-- nvim-dap と codelldb の設定例
local dap = require("dap")
dap.adapters.codelldb = {
type = 'server',
port = "${port}",
executable = {
-- Mason等でインストールしたパスを指定
command = vim.fn.stdpath("data") .. "/mason/bin/codelldb.cmd",
args = {"--port", "${port}"},
detached = false,
}
}
独自のDAPアダプターを使いたい場合は、UDBのセットアップ時に adapter_type を変更してください。
require("UDB").setup({
debugger = {
adapter_type = "codelldb", -- デフォルトで使用するDAPアダプター
},
})
何ができるのか?
-
即座にデバッグ開始:
:UDB run_debugコマンドを叩くだけで、適切なバイナリを特定し、デバッガーをアタッチして起動します。 -
ターゲットの柔軟な切り替え:
「エディタとして起動してBPをデバッグしたい」「スタンドアローンゲームとして起動したい」といった要望も、:UDB run_debug!からピッカーで選択可能です。 -
ビルド設定とのシームレスな連携:
[UBT.nvim] や [UEP.nvim] と連携し、現在のビルド構成(DebugGame/Development Editorなど)を自動で読み取ります。UBT.nvim で最後にビルドした構成を記憶しているため、UBT debug!でターゲットを切り替えた後、そのままUDB run_debugするだけで、直前にビルドした構成でデバッグが開始されます。
導入方法
nvim-dap と、アダプターとして codelldb(mason.nvim等での導入を推奨)が必要です。
{
"taku25/UDB.nvim",
dependencies = {
"mfussenegger/nvim-dap",
"taku25/UEP.nvim",
"taku25/UBT.nvim",
{ "taku25/UNL.nvim", lazy=false }
},
}
🚀 UNX (Unreal Neovim eXplorer): 物理フォルダからの脱却
次に紹介するのは、専用エクスプローラー UNX.nvim です。
これまでは neo-tree.nvim を拡張して対応していましたが、「もっとUE開発に特化した情報が見たい」「特定のファイラーに依存せず、独立したプラグインとして提供したい」という思いから、完全に新規で開発しました。
特徴:Unreal Engine 特化の「論理ビュー」
汎用的なファイラーとは違い、Unreal Engine の C++ 開発におけるメンタルモデルをそのままツリー化しました。
-
論理ビュー (Logical View):
ファイルシステムの物理階層(Source/ProjectName/...)を深く掘る必要はありません。「Game」「Plugins」「Engine」 という論理的なモジュール構造でツリーを表示します。 -
シンボルビュー (Symbol View):
選択中の C++ ファイルに含まれるクラス、関数、プロパティをサイドパネル下部に自動表示します。ヘッダーファイルを開かなくても構造を把握できます。 -
Git/VCS統合:
非同期でステータスを取得し、変更があったファイルをアイコンで強調表示します。 -
クラス作成 (UCM連携):
ツリー上で以下のキーを押すだけで、C++ クラスの操作が可能です。-
a: クラス作成 (Add) -
d: 削除 (Delete) -
r: リネーム (Rename) -
A: ディレクトリ作成 (Mkdir) -
m: モード切替
-
導入方法
{
"taku25/UNX.nvim",
dependencies = {
"taku25/UCM.nvim",
{ "taku25/UNL.nvim", lazy = false }
},
opts = {},
}
まとめ: Neovim で完結する開発サイクル
今回紹介した2つのプラグインと、既存のプラグイン群を組み合わせることで、Neovim 上での開発ワークフローがほぼ完結するようになりました。
- UEP (Project): プロジェクト情報の解析
- UNX (Explorer): ロジカルビューでのファイル閲覧・管理
- UCM (Class Manager): C++クラスの作成・削除
- UBT (Build Tool): ビルドの実行
- UDB (Debugger): デバッグ実行・検証
- ULG (Log): ログの確認
これらを統合した UnrealDev.nvim を使うことで、より簡単に導入・管理が可能です。
UBT.nvim を作り始めた頃を思い返せば、随分と遠いところまで来た気がします。Neovim での Unreal Engine 開発に興味がある方は、ぜひ試してみてください。
