zer0から始めるプログラミング生活

unreal EngineやUnityのTipsを書いていきます。

他のブループリントからActorを操作する方法

BP(Actor)間のルール

まずは、アクターの参照ルールを示します。

マップ上のアクター同士は、互いに相手の参照を知らない

参照を知らないということは、相手のイベントを呼び出すことができないということ。

Child Actor ComponentにActorを入れても参照したことにはならず、下記通信方法で参照必要。

→極力 Child Actor Componentは使わず、親Actorに実装する。

マップ上のアクターはレベルの参照を得られないが、レベルからアクターの参照は得られる

詳細は以下を参照してください。

アクタを参照する | Unreal Engine ドキュメント

通信方法

Event Dispatcher

詳細は以下を参照してください。

Event Dispatchers

Blueprint Intaface

詳細は以下を参照してください。

Blueprint Interface

Cast

下記のときは参照可能。

Visibleをdisableしているとcastはfailします。

Widget



Pawn



GameInstance

Project setting から目的のGame Instanceを設定する必要あります。



Overlap Event

他のアセットが紐付けられているBPはそれらも参照されるので注意。

Get All Actors of Class

レベルに配置されたものを検索。

コストが高いので最終手段として。

(ループ処理、配列アクセスも重い。)



Try rebuilding from source manually. と出るときの対処

ときどきプロジェクトを開こうとすると以下のような通知が来ます。今回はプロジェクト1のコンテンツを新しいバージョンのプロジェクト2に移行した後、プロジェクト1を開こうとすると出ました。

 

f:id:bigden:20161124033656j:plain

 

だいたいはそのまま「はい」を選べばいいのですが、時々以下のエラーを吐きます。

f:id:bigden:20161124034359j:plain

 

.../(プロジェクト名)/saved/logs 内のログファイルを開くとErrorと書かれた場所が

あるのでそれを解決するとリビルドできました。

 

とりあえず忘れないようにメモ。