Choose your operating system:
Windows
macOS
Linux
ダイレクト ブループリント通信 は、非常に一般的な通信方法であり、任意のポイントで2 つの Blueprint アクタに対話させた場合に優れた手段です。このタイプの通信は常に 1 対 1 です。つまり、あるブループリント (Working Blueprint (作業ブループリント)) が、別のブループリント (Target Blueprint (ターゲット ブループリント)) にアクセスするリクエストをします。ダイレクト ブループリント通信の最も簡単な使用方法は、公開されているオブジェクト 変数 を通してターゲット ブループリントを参照し、次に使用したいブループリント インスタンスを指定するものです。
一般的なワークフロー
ダイレクト ブループリント通信を使用するためには、まず最初に通信するブループリントを特定します。
このインスタンスでは、作業ブループリントが Character ブループリントで、Ceilight Light ブループリントをターゲットにしています。ダイレクト ブループリント通信を使って、プレイヤー キャラクターがボタンを押すと Ceiling Light ブループリントをターゲットにしてライトを消すように指示することができます。そのためには、Ceiling Light ブループリントをターゲットにするキャラクター ブループリント内に一般に公開する変数を作成する必要があります。
変数、関数、イベントの公開は慎重に検討してください。そして、他人がアクセスおよび変更しても安全な変数のみ、公開するようにしてください。ベストプラクティスの指針としては、すべての変数を公開するのではなく、ブループリントが必要とする変数、レベル デザイナーによる変更を可能にしたい変数のみを公開するようにします。
Character ブループリントが選択されると、 [Details (詳細)] パネルで設定できる変数がレベル内に表示されます。
この変数はデフォルトは None に設定されています。照明器具は複数あるので、どれと通信するのか定義する必要があるため、影響させたい照明器具のインスタンスを定義するように設定しなければなりません。ドロップダウン メニュー (またはスポイト アイコン) をクリックしてレベルから選択し、通信対象のインスタンスを指定します。
直接通信するインスタンスを定義すると、Character ブループリントからそのライトの機能、変数、もしくはその他の設定にアクセスすることができるようになります。
ウォークスルーの詳細は、「ダイレクト ブループリント通信」をご覧ください。
関数とダイレクト ブループリント通信
ブループリントで 関数 を使用する場合、その関数に対するパラメータとしてターゲット ブループリント タイプを指定すればダイレクト ブループリント通信を使うことができます。
関数でターゲット ブループリントを使う場合も、ターゲットのどのインスタンスと通信するのか指定しなければなりません。一般に公開される変数 (下図) を使うか、あるいはこの関数の呼び出し時に外部に提供して指定します。
トラブルシューティング
変数でインスタンスを何も指定していない場合、一般的なエラーが発生します。作業ブループリントから呼び出した場合に、ターゲット ブループリントからのスクリプティングの開始でトラブルが発生したら、使用するブループリント インスタンスが指定されていることを確認してください。
かわりに、関数呼び出しの結果から変数を設定した場合、変数が "Access None" の例外を持っているという警告がログに表示されます。[Message Log] ウィンドウが表示されると、問題発生源のノードへのクリック可能なリンクが示されます。