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?

今週のアップデート2025/11/24 NeovimとUnrealEngineを繋ぐデバッガ(UDB.nvim)と専用ファイラー(UNX.nvim)の実装

Last updated at Posted at 2025-11-24

はじめに

Neovim で Unreal Engine 開発を行うためのプラグインスイート、今週のアップデート情報です。

私自身、「本格的なデバッグはIDE(Visual StudioやRider)で行う」というスタンスに変わりはありません。しかし、「ちょっとした変数の確認やクラッシュ箇所の特定など、簡単なデバッグならNeovimから出ずにサクッと行いたい」 と思う場面も多々あります。

そこで今回は、そんな願いを叶えるデバッグ用プラグインと、Unreal Engineのプロジェクト構造に特化した専用ファイルエクスプローラー(兼シンボルツリー)をリリースしました。

  1. UDB.nvim: launch.json 不要、ゼロ設定で動くデバッガーブリッジ
  2. UNX.nvim: UEプロジェクト専用の軽量論理ビューア&シンボルツリー

これらにより、Neovim はより「Unreal Engine 用の IDE」へと近づいたのではないかと感じています。


✨ UDB (Unreal Debugger Bridge) とは?

udb-debug.png

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 上での開発ワークフローがほぼ完結するようになりました。

  1. UEP (Project): プロジェクト情報の解析
  2. UNX (Explorer): ロジカルビューでのファイル閲覧・管理
  3. UCM (Class Manager): C++クラスの作成・削除
  4. UBT (Build Tool): ビルドの実行
  5. UDB (Debugger): デバッグ実行・検証
  6. ULG (Log): ログの確認

これらを統合した UnrealDev.nvim を使うことで、より簡単に導入・管理が可能です。

UBT.nvim を作り始めた頃を思い返せば、随分と遠いところまで来た気がします。Neovim での Unreal Engine 開発に興味がある方は、ぜひ試してみてください。

GitHub リポジトリ

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?