はじめに
今週は主に UNX.nvim の機能強化、コマンドの整理、およびUI(エクスプローラー)を開かずにコマンドから直接機能を呼び出せるような改修を行いました。
1. UNX: 機能追加と改善
Pending List View & UNX pending_list コマンド
VCS(バージョン管理システム)上で現在編集中のファイル一覧を表示する機能を追加しました。
変更中のファイルへ素早くアクセスしたい場合に効果を発揮します。
Unpushed List View & UNX unpushed_list コマンド
現在、VCSとしてGitを使用している環境向けの機能です(Perforceはコミット即プッシュのため)。
1つのタスクで細かくコミットを積んでいる際、「プッシュはしていないが、今回の作業で変更したファイル一覧」を見たい場面があるかと思います。このリストを使用することで、それらのファイルへ素早くアクセス・移動が可能になります。
Favorites List View & UNX add_favorites / UNX favorites_list コマンド
よく使うファイルやフォルダへのブックマーク機能を追加しました。
-
追加方法: UNX上で対象を選択し
b(bookmark) キーを押すか、add_favoritesコマンドを使用してPickerからファイルを選択(複数可)します。 -
削除方法: UNXのFavoritesツリー上で、対象ファイルに合わせて再度
bキーを押すとリストから削除されます。
Folder Action: Files Picker
UNXのツリー上のフォルダで F キーを押すことで、そのフォルダ配下に含まれるファイル一覧をPickerで検索・選択できるようになりました。
2. UCM: Symbols コマンドの追加
これまでUNX上で表示していた「現在開いているファイルのシンボル一覧」を、UCM.nvim のコマンドとして独立させました。
UCM symbols コマンドを実行することで、ヘッダーファイルとソースファイル両方のシンボルをPickerで横断的に選択し、定義場所へジャンプできるようになります。
3. UEP: 新規プロジェクト作成に対応
これまでは既存のプロジェクトがあることを前提としていましたが、new_project コマンドによりNeovim上から新規Unreal Engineプロジェクトの作成が可能になりました。
これに伴い、UNL (Unreal Launcher) の find_engine を拡張し、インストール済みのEngineバージョンを検索できるように内部変更を行っています。
4. ULG: ログ表示をタブ化
これまで unreal log と build log はバッファ分割で表示していましたが、UNXのタブ表示対応に合わせ、ULGのログもタブ形式に変更しました。
ログウィンドウ内では Tab キーで表示の切り替えが可能です。
所感:実戦投入の手応えと課題
個人開発だけでなく、実際の業務における巨大なUnreal Engineプロジェクトでも問題なく動作するレベルになり、開発者として手応えを感じています。
ただ、プロジェクト規模が大きくなるにつれて動作の重さを感じる部分も出てきたため、最近はどう最適化していくかを模索しています。
【Tips】WindowsでUBTを使用している方へ
UnrealBuildTool (UBT) で GenerateClangDatabase を使用して compile_commands.json を生成する際の注意点です。
このコマンドは、本来変更の必要がない .rsp ファイルまで書き換えてしまう挙動があります。その結果、その後に通常のビルドを行おうとすると、タイムスタンプの更新によりエンジンを含めたフルビルド(Full Rebuild)が走ってしまい、膨大な待ち時間が発生することがあります。
これを回避するため、compile_commands.json を生成する際は、
GameProject側のDebug構成 を指定することをお勧めします。
普段の開発では DebugGame や Development 構成を使用されているかと思いますが(Debug 構成はエンジン自体の動作が重くなるため)、コマンド定義生成のためだけであれば Debug 構成を指定することで、意図しないフルビルドの事故を防ぎやすくなります。





