Torus Solutions 改

Ello 2019-12-28T14:52:31.044Z

UE4 の Blueprint エディタのバグ。インターフェースのイベントのところに間違ったツールチップが表示される。

UE4.24 ではインターフェースで定義されたイベントと同じ名前の関数を定義することはできないので、このツールチップが言っているような状況にはなり得ないはず。

これを表示しているのは UnrealEngine/SBlueprintPalette.cpp#L246 のあたり:

    case EEdGraphSchemaAction_K2Graph::Interface:
        {
            IconOut = FEditorStyle::GetBrush(TEXT("GraphEditor.InterfaceFunction_16x"));

            FFormatNamedArguments Args;
            Args.Add(TEXT("InterfaceName"), FText::FromName(ActionIn->FuncName));
            ToolTipOut = FText::Format(LOCTEXT("FunctionFromInterface_Tooltip", "Function (from Interface '{InterfaceName}')"), Args);
            if (UFunction* OverrideFunc = FindField<UFunction>(BlueprintIn->SkeletonGeneratedClass, ActionIn->FuncName))
            {
                if (UEdGraphSchema_K2::FunctionCanBePlacedAsEvent(OverrideFunc))
                {
                    Args.Add(TEXT("BaseTooltip"), ToolTipOut);
                    ToolTipOut = FText::Format(LOCTEXT("InterfaceFunctionExpectedAsEvent_Tooltip", "{BaseTooltip}\nInterface '{InterfaceName}' is already implemented as a function graph but is expected as an event. Remove the function graph and reimplement as an event."), Args);
                    ColorOut = FLinearColor::Yellow;
                }
            }
        }
        break;

単にこの if 文を丸ごと削除してもいいと思うけど、元々この実装をした人の意図がよくわからないのでどう直していいかわからない。

#UE4 #Blueprint

追記:プルリクなげた。Remove inconsistent tooltip from the interface list on BP editor by torus · Pull Request #6498 · EpicGames/UnrealEngine