【UE4】BlueprintNodeを出現させるショートカットをお手軽に追加する方法 【★☆】

※この記事で使用しているUnrealのVersionは04.24.0です。

※今回はサンプルプロジェクトはありません。

BlueprintNodeを出現させるショートカット レベル【★☆】

今回は、BlueprintNodeを出現させるショートカットを独自に簡単に追加する方法を軽く紹介します。

※前提として、適当なBlueprintを作ってGraphエディターを開くか、LevelBlueprintを開いておきましょう。

BlueprintNodeを出現させるショートカットとは、Blueprint Edtor上で、特定のキーを押しながら左クリックをすることで、特定のNodeを出現させる便利機能のことです。

例えば、Dキーを押しながら左クリックすると、

https://kinnaji.com/wp-content/uploads/2019/12/ShortCut.mp4

このように一々右クリックからNodeを検索したりする必要なくNodeを出現させることができます。

※ちなみにBlueprint Editorには「Palette」というWindowでNodeのお気に入り登録することができます。
そちらに関しては、
[UE4] BlueprintエディタのPalette機能を使って、自分だけのお気に入りノードリストをカスタマイズしちゃおう!
をご覧ください。

UE4がDefaultで定義しているBlueprintNodeのショートカットは以下になります。

R Key:Actor Reference(s) ※Level Editorのみ
A Key:Array_Get ※効いていない?
B Key:Branch
D Key:Delay
N Key:Do N
O Key:DoOnce
F  Key:ForEachLoop
G Key:Gate
M Key:MultiGate
B Key:BeginPlay
S Key:Sequence

この項目は、Editor左上の「Edit」から「Editor Preference」を選択して開いて、「General – Keyboard Shortcuts」内の「Blueprint Editor -Spawn Node by chord」以下にあります。
また、Keyの割り当てをこの部分で編集することもできます。

※ちなみに、もし見つからない場合は適当なBlueprintを開いてから再度Editor Preferenceを見てください。
Editorを起動してから1度BlueprintEditorを開かないとどうやらリスト化してくれないようです。

このあたりのショートカットは使いこなすと、Blueprintを書く速度が圧倒的に上がりますので是非使ってください。

さて、ここからが本題ですが、↑のKeyboard Shortcutsを追加する方法です。

Keyboard Shortcutsに項目を追加するには、Engineのiniファイルをいじります。

注意:Engineのiniファイルなので、あなたが使っているEngineバージョンすべてに適応されます。
プロジェクト単位で開発していると、iniファイルの編集を誤ってアップしたり他人の編集が、自分が編集したことによって宇和が枯れないことがありますので、編集する際は注意してください。

インストールしているEngine階層の「Config/BaseEditorPerProjectUserSettings.ini」というiniファイルを開きます。
(インストールをデフォルト設定でやった場合は大体
C:\Program Files\Epic Games\UE_4.24\Engine
にあります)

中にある[BlueprintSpawnNodes]と書かれた部分を見てみましょう。

ここに「+Node=」という形で、ShortcutKeyの配列の元を作っている記述があります。
追加する際は

Node=(Class=[(Class名:)Node名] Key=[Key] Shift=[True/False] Ctrl=[True/False]  Alt=[True/False]

という規則で追加します。

例えば「T」Keyを押しながらクリックした際にPrintStringを出現させたい場合は、

+Node=(Class=PrintString Key=T Shift=false Ctrl=false Alt=false)

という文をBaseEditorPerProjectUserSettings.ini追加します。

そして、これを保存したら一度Editorを閉じます。
(再度Editorを開くことで適応されるようです)

開きなおしたEditor上でTを押しながらBlueprintGraph上を左クリックすると…

https://kinnaji.com/wp-content/uploads/2019/12/ShortCut2.mp4

PrintStringが出現するようになりました。便利!

そして、この状態でEditor Preferenceを見てみると、iniに追加した設定が表示されています。

次回以降はここから編集することでKey割り当てを変更することができます。

なお、このショートカットはどんな関数やマクロでも追加できます。

例えばBlueprintFunctionLibraryを作って中に適当な関数を作ります。

そしてiniファイルに以下の行を追加します。

+Node=(Class=Test Key=T Shift=false Ctrl=false Alt=false)

そして、Editorを再起動した後に適当なBP上でTを押しながら左クリックをすると、

https://kinnaji.com/wp-content/uploads/2019/12/ShortCut3.mp4

TestというBPのFLIBでつくった関数も出てきました。

このようにBlueprintNodeのショートカットを独自に追加できるので、自分がよく使うNodeなんかを設定すると、とても便利だと思います。

ちなみに一つ注意点があります。

もし別々のFunctionLibraryなんかで同じ名前のUFUNCTIONな関数があったとします。

この状態だとどちらかが優先されてしまい、優先されなかったほうをショートカットに追加できません(自分の場合だとBP_TestのTest(bool Test)が実行されました)

この場合は明示的にクラスを指定する必要があります。

クラスを指定する場合は、関数名を指定する部分の前に「BP_Test2_C:Test」という風にして明示します。

※BlueprintClassの場合は、Blueprintアセットの名前に「_C」を付けることでクラス名になります。

自分の環境では、何もクラスを指定しないとBP_Test内のTest関数(引数がboolの方)が追加されてしまったので、iniファイルを以下のように書き換えました。

+Node=(Class=BP_Test2_C:Test Key=T Shift=false Ctrl=false Alt=false)

すると、以下のようにBP_Test2内のTest関数が出てくれるようになりました。

https://kinnaji.com/wp-content/uploads/2019/12/SHortCut4.mp4

ちなみに別のiniファイル(プロジェクトのiniとか)に設定を追加したい場合は、「BlueprintEditorCommands.cpp」の「RegisterCommands()」にあるConfigを選ぶ部分を変更すればいけそうな感じでした。(Engineビルド必要。試してないので断言できません)

以上