ブログについて

このブログはUnrealEngineに関する事柄をプランナー視点で気ままに書いていくものです。
※最近C++もほんのわずかに勉強しているので、もしかしたらC++系記事を書くかも。
管理人はゲームプランナーっぽい仕事をしています。
ブログについての質問、その他仕事の相談等は以下まで。
Mail1:kinnajiblog@kinnaji.com
Twitter:@kinnaji_blog

記事のレベル

このブログの記事にはそれぞれレベルが付いています。ここで言うレベルは、ブログのターゲット読者のレベルを可視化したもので、専門知識(UE、その他ゲームエンジンや、プログラム、アート)の熟練度の比喩です。

レベルは☆→★→★☆と増えていき、Maxは★★★★★です。レベルが★★★☆以上の方がこのサイトに来ても得られるものがあるかどうかわかりません。(ちなみに、このサイトで★★★☆以上を取り上げることはほとんどないでしょう。カケマセン)

参考程度に難易度に対応したターゲットは以下になります。

~★        :UEを触ったことない、ぷろぐらむ? あーと? おいしい?
★☆~★★      :UEを触ったことある! 簡単なチュートリアルでゲーム作ったよ!
★★☆~★★★    :UEの大抵の機能は触ったことアルし。業務でもつかってっからオラ。
★★★☆~★★★★  :C++でUEプロジェクト触ってるお。ワイプログラマーやし。シェーダーとかお湯ですね。
★★★★☆~★★★★★:UnrealEngine……? ごめんなさい、ボクのはウンレアェンギネって言って、Engine改造して原型無いんです。あ、UDNバッチ持ってますけどなにか?



    記事一覧

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

    2019年12月9日
    【UE4】EditorのLayoutについてのあれこれ【☆~★】
    Unreal Engine 4 (UE4) Advent Calendar 2019の記事

    2019年11月20日
    【UE4】ConsoleCommand「CE,KE」について【★★☆】
    サンプルプロジェクト

    2019年10月22日
    【UE4】PrintStringノードについて 【★】
    サンプルプロジェクト

    2019年10月21日
    【UE4】お手軽白黒ドット表現 【★☆】
    サンプルプロジェクト

    2019年10月15日
    【UE4】メモ:実はEditor Utility WidgetはBlutilityの完全上位互換だった話【★★】
    サンプルプロジェクト

    2019年10月09日
    【UE4】4.23でなくなった「Blutility」の拡張ウィンドウを使いたい場合【★】
    サンプルプロジェクト

    2019年10月1日
    【UE4】【Python】BlueprintClassのデフォルトの変数値を一括変更する【★★★】
    サンプルプロジェクト

    2019年9月18日
    【UE4】Materialでいろんな幾何学模様模様を作ってみよう【★~★★】
    サンプルプロジェクト

    2019年9月8日
    【UE4】Web Remote Controlを試してみる【★★】
    サンプルプロジェクト

    2019年8月29日
    【UE4】【C++】独自の簡単なスクリプトシステムを作る-前編 【★★★☆】
    【UE4】【C++】独自の簡単なスクリプトシステムを作る-後編 【★★★☆】
    サンプルプロジェクト

    2019年8月25日
    【UE4】順位によって更新されるUIを作ってみる 【★★】
    サンプルプロジェクト

    2019年8月19日
    【UE4】ObjectのRotationをMaterialから取得する方法 【★★☆】
    サンプルプロジェクト

    2019年8月8日
    【UE4】Textureを使わずに水滴表現を作ってみる 【★★★】
    サンプルプロジェクト

    2019年7月4日(Twitter非公開)
    【UE4】【C++】メモ:EditorUtilityWidgetをBlueprintから実行する方法 【★★★☆】

    2019年6月28日
    【UE4】Materialで模様作りー万華鏡っぽいのを作るー 【★★☆】
    サンプルプロジェクト

    2019年5月16日
    【UE4】Pythonつかって、MaterialInstanceアセットのパラメーターとかいじってみた-前編 【★★~★★★】
    【UE4】Pythonつかって、MaterialInstanceアセットのパラメーターとかいじってみた-後編 【★★~★★★】
    サンプルプロジェクト

    2019年4月23日
    【UE4】Editor内の便利なコピーとペーストについて 【★】

    2019年4月17
    【UE4】オーディオプレイヤーを作ってみる~With EditorUtilityWidgets~ 【★★☆】
    サンプルプロジェクト

    2019年4月16日
    【UE4】第11回ぷちコン備忘録~企画から完成までの道のり~
    実行ファイル

    2019年3月27日
    【UE4】簡単な電卓を作ってみる~EditorUtilityWidgetを用いて~ 【★★★】
    サンプルプロジェクト

    2019年3月13日
    【UE4】既存のテクスチャでマトリックスみたいなマテリアルを作る 【★★☆】
    サンプルプロジェクト

    2019年3月07日
    【UE4】第11回ぷちコン応募作品「みちびかれしえんたち」
    実行ファイル

    2019年2月13日
    【UE4】Editor Utility Widgetsで監視カメラを作る 【★☆~★★☆】
    サンプルプロジェクト

    2019年1月24日
    【UE4】コンテンツブラウザの高度な検索【★】
    サンプルプロジェクト

    2019年1月14日
    【UE4】マテリアルで関数グラフっぽいのを書いてみよう 【★★☆】
    サンプルプロジェクト

    2019年1月8日
    【UE4】複数のポストプロセスを使い分ける 【★★】
    サンプルプロジェクト

    2018年12月25日
    【UE4】手軽に独自のデータアセットを作成する 【★★】
    サンプルプロジェクト

    2018年12月21日
    【UE4】ポストプロセスマテリアルで画面をいろいろいじる-前編 【★★】
    【UE4】ポストプロセスマテリアルで画面をいろいろいじる-後編 【★★☆】
    サンプルプロジェクト

    2018年12月19日
    【UE4】Spriteで簡単に残像を作る方法 【★★】
    サンプルプロジェクト

    2018年12月17日
    【UE4】ForEachLoopを段階的に出力するマクロ 【★★】 
    サンプルプロジェクト

    2018年12月15日
    【UE4】InterfaceとDispatcherの使い分け方-自分流【★★☆】 
    サンプルプロジェクト

    2018年12月14日
    【UE4】自動でマップの高解像度キャプチャーを生成し出力する-後編 【★★★】
    【UE4】自動でマップの高解像度キャプチャーを生成し出力する-前編 【★~★★】
    サンプルプロジェクト

    2018年12月13日
    【UE4】Geometry Brushでマップの仮組みを 【★~★☆】 
    サンプルプロジェクト

    2018年12月12日
    【UE4】Object型BPで開発をスムーズに-後編 【★★★】 
    【UE4】Object型BPで開発をスムーズに-前編 【★★★】 
    サンプルプロジェクト

    2018年12月10日
    【UE4】ポストプロセスマテリアルで簡単なセルシェーディングやってみた 【★★★】 
    サンプルプロジェクト

    2018年12月7日
    【UE4】DataTableの使い方-その② ~エクセルさようなら~ 【★★~★★★】
    サンプルプロジェクト

    2018年12月6日
    【UE4】HPバーをマテリアルで-後編 【★★★】 
    【UE4】HPバーをマテリアルで-前編 【★★~★★★】 
    サンプルプロジェクト

    2018年12月5日
    【UE4】Delayノードについての検証 【★★~★★★】 
    サンプルプロジェクト

    2018年12月4日
    【UE4】DataTableの使い方-その① ~基本編~【★~★★】 
    サンプルプロジェクト

    ・小ネタ集(随時更新)
    【UE4】小ネタをメモする場所-その①

    サンプルプロジェクトについて

    ほぼすべての記事には、記事で使用したプロジェクトデータをダウンロード可能なURLが張られています。

    記事だけではわかりずらい、画像が見ずらいなどの際に、ご自身のPCにてダウンロードしていただき参考にしていただければと思います。

    また、URLを押した際に以下のような画面になってしまうかと思いますが、
    気にせずに「ダウンロード」を押してください。
    (ネット上でプレビューができない節のエラーです)

    ダウンロードファイルはすべてzipファイルになっておりますので、
    ご自身のPCにて解凍を行って使用してください。

    ダウンロードしたファイルがPCに及ぼす影響は、いかなるものでも責任を負いかねますので、あらかじめご了承ください。

    【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ビルド必要。試してないので断言できません)

    以上