ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE5】〈Tips〉UEC++ K2Nodeでコンパイルに失敗しているノードにエラーを出す方法 : How to display errors on K2Node that failed to compile

目次

 

はじめに

環境 : UE5.0

 

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

 

K2NodeはUFUNCTIONよりも高度で動的な機能をラップするために利用できる洗練されたブループリントノードです。

引用:

dev.epicgames.com

 

この記事ではコンパイルに失敗しているノードにERROR!の表示と問題のノードへのショートカット付きの警告を表示します。

 

記事を書くに当たって以下のソースを参考にしています。

▽ソース

https://github.com/EpicGames/UnrealEngine

・\Engine\Source\Editor\UnrealEd\Public\Kismet2\CompilerResultsLog.h"

・\Engine\Source\Editor\BlueprintGraph\Classes\K2Node_DynamicCast.h"

 

方法

FKismetCompilerContextのCompilerContext.MessageLog.Errorを使用します。

コメントにあるように@@でノードまたはピンのリンクを作ってくれるようです。

 

UEdGraphNode InterfaceのExpandNodeをオーバーライドして実装しています。

 

この記述でログの内容を出力できます

FText const ErrorFormat = LOCTEXT("K2_SimpleQuickSort_Error", "'{0}' Targetarray must always have an array connected to it. (TargetArray input into @@).");

CompilerContext.MessageLog.Errorを呼んで引数に設定します。

CompilerContext.MessageLog.Error( *FText::Format(ErrorFormat, FText::FromString("SimpleQuickSort")).ToString(), this );

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

投げ銭を投げる