2015年12月28日月曜日

UE4: Blueprintに実装している関数名とインターフェースの関数名の重複

BlueprintにはC++のような名前空間が無いので、もともと作成してあった関数やカスタムイベントの名前と、インプリメントしたBlueprint Interface内の関数名とがバッティングするとコンパイルすることができなくなります。

以下はインプリメントした、IF_Testインターフェース内に定義されているFunc1、CustomEvent1関数と、もともとクラスに定義されていたFunc1関数、CustomEvent1イベントの名前がバッティングした時のコンパイルエラーメッセージです。

iferror.jpg


エラーメッセージを抜粋すると以下のように書かれていて、名前の重複が原因でコンパイルできないことが、なんとなくわかります。
  • Graph named 'Func1' already exists in 'BP_Actor'. Another on cannot be generated from〜
  • Found more than one function with the same name CustomEvent1〜

関数の名前などはどうしても似たような名前になるので、いざ名前を変えようにも、はて?どんな名前にしたものかと悩んでしまいます。いいかげんな名前にすると、わけが分からなくなり後で困りますからね。

こうなってくると、もう昔からあるテクニックを引き出してくることになります。インターフェースの関数名にプレフィックスを付けて、あらかじめ名前の重複が起こりにくくしておきます。
例えばIF_TestインターフェースのFunc1関数なら、ITestFunc1などに変えておきます。

UE4の将来のバージョンでは、この辺りをもっとスマートに解決できるようになるといいなと思いました。

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...