Choose your operating system:
Windows
macOS
Linux
UFunction の宣言
UFunction
は Unreal Engine 4 (UE4) リフレクション システムが認識する C++ 関数です。
UObject
またはブループリント関数ライブラリは、ヘッダ ファイルの関数宣言の上の行に
UFUNCTION
マクロを入れることで、メンバ関数を Ufunction として宣言することができます。このマクロは UE4 の関数の解釈と使用方法を変更するために
関数指定子
をサポートします。
UFUNCTION([specifier1=setting1, specifier2, ...], [meta(key1="value1", key2, ...)])
ReturnType FunctionName([Parameter1, Parameter2, ..., ParameterN1=DefaultValueN1, ParameterN2=DefaultValueN2]) [const];
関数指定子を使って、UFunctions を ブループリント ビジュアル スクリプト グラフに公開することができるので、デベロッパーは C++ コードを変更せずにブループリント アセットから UFunction をの呼び出し、または拡張することができます。UFunction はクラスのデフォルト プロパティで デリゲート を指定し、そのプロパティにアクションをユーザー入力に関連づけるなどのタスクを実行させることができます。また、ネットワーク コールバックとしても機能することができます。つまり、UFunction を使って通知を受け取り、任意の変数がネットワーク更新の影響を受けるたびにカスタム コードを実行することができます。開発ビルドでゲーム コンソールから呼びだすことができる独自のコンソール コマンド (デバッグ コマンド、コンフィギュレーション コマンド、チートコード コマンドとよく呼ばれます) を作成したり、レベル エディタでカスタム機能のあるボタンをゲーム オブジェクトに追加することも可能です。
関数指定子
関数を宣言する場合に、エンジンおよびエディタの様々な部分で関数がどのように動作するのかを制御する 関数指定子 を宣言に追加することができます。
関数指定子 |
効果 |
---|---|
|
ネットワーク権限を持つマシン上で (サーバー、Dedicated サーバー、シングル プレイヤー ゲーム) 実行されている場合、この関数はブループリントのコードからのみ実行されます。 |
|
この関数は ブループリント あるいは Level ブループリント グラフで実行可能です。 |
|
この関数は表面上のもので、Dedicated サーバー上では実行されません。 |
|
この関数は ブループリント あるいは Level ブループリント グラフで実行可能です。 |
|
この関数は ブループリント によってオーバーライドされる設計となっていますが、デフォルトのネイティブの実装もあります。メインの関数と同じ名前の関数を追加で宣言しますが、最後に
|
|
この関数は所有するオブジェクトに決して影響することはなく、ブループリント あるいは Level ブループリント グラフで実行可能です。 |
|
この関数は、 [Details(詳細)] パネルのボタンを使ってエディタで選択したインスタンス上で呼び出すことができます。 |
|
ブループリント編集ツールに表示されるときの関数のカテゴリを指定します。| 演算子を使用してネストされたカテゴリを定義します。 |
|
この関数は、関数が呼び出されるオブジェクトを所有するクライアント上でのみ実行されます。メインの関数と同じ名前の関数を追加で宣言しますが、最後に
|
|
|
|
この関数は、インゲームのコンソールから実行することができます。特定クラス内で宣言される場合のみ、実行コマンドが機能します。 |
|
この関数は、アクタの
|
|
この関数はネットワーク上でレプリケートされ、帯域幅やネットワーク エラーに関係なく届くことが保証されます。
|
|
この関数はサブクラスでオーバーライドできません。
|
|
この関数は RPC (リモート プロシージャ コール) サービス要求です。これは
|
|
この関数は RPC サービス応答です。これは
|
|
この関数はサーバー上でのみ実行されます。メインの関数と同じ名前の関数を追加で宣言しますが、最後に
|
|
この関数はネットワーク上でレプリケートされますが、帯域幅の制約やネットワーク エラーが原因で失敗することがあります。
|
|
メインの関数と同じ名前の関数を追加で宣言しますが、最後に
|
メタデータ指定子
クラス、インターフェイス、構造体、列挙型変数、列挙型変数の値、関数、プロパティを宣言するときに、 メタデータ指定子 を宣言に追加して、エンジンやエディタの様々な側面でどのようにインタラクタするかを制御することができます。データ構造またはメンバのそれぞれの型には、固有のメタデータ指定子のリストがあります。
メタデータはエディタのみに存在しています。メタデータにアクセスするゲーム ロジックを書かないでください。
関数メタ タグ |
効果 |
---|---|
|
コンマで区切られたパラメータのリストが詳細ピンとして表示されます (UI の展開が必要)。 |
|
|
|
|
|
|
|
リストされているパラメータは参照によって渡されますが、ピンが接続されていなければ自動作成されるデフォルトを持ちます。これは配列ピンで使用されるブループリントの便利な機能です。 |
|
ブループリント関数ライブラリから静的な
|
|
この関数は内部実装の詳細です。他の関数やノードを実装するために使われます。グラフ内で直接公開されることはありません。 |
|
この関数は、ブループリントで所有しているオブジェクトでのみ呼び出し可能です。他のインスタンス上での呼び出しはできません。 |
|
|
|
|
|
|
|
リストされているパラメータはすべてワイルドカードとして扱われます。この指定子は
カスタム
|
|
|
|
ブループリントでこの関数を参照すると、関数が非推奨であることを示すコンパイルに関する警告が出ます。
|
|
関数が非推奨であると、それを使用するブループリントをコンパイルしようとすると、このメッセージが標準の非推奨の警告に追加されます。 |
|
関数の戻り値の型は、指定されたパラメーター ピンに接続されている入力に一致するように動的に変更されます。パラメータは
|
|
|
|
ブループリント内のこのノード名は、コードが生成する名前の代わりにここで指定する値で置き換えられます。 |
|
|
|
|
|
"self" ピンを隠します。"self" ピンは関数が呼び出されているオブジェクトを示すために使われます。"self" ピンは
|
|
|
|
ブループリント グラフで関数を呼び出すノードを配置する場合など、この関数を検索するときに使用可能なキーワード一式を指定します。 |
|
潜在的 (latent) アクションを示します。潜在的アクショには、
|
|
Latent
|
|
|
|
|
|
ブループリント関数ライブラリでのみ有効です。この関数は、所有しているクラスの一般的な
|
|
親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。 |
|
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
|
この関数はアクタの構築中には安全に呼び出すことはできません。 |
|
|
関数パラメータ指定子
パラメータ指定子 |
説明 |
---|---|
Out |
パラメータを参照渡しとして宣言することで、関数による修正を可能にします。 |
Optional |
任意のキーワードを使えば、呼び出し元が使いやすいように、ある関数パラメータを任意にすることができます。呼び出し元が指定しない任意のパラメータの値は関数によって異なります。例えば、
|
デリゲート
デリゲート は、汎用的かつ型安全な方法で C++ オブジェクト上でメンバ関数の呼び出しを可能にします。デリゲートを使用すると、呼び出す側がオブジェクトのタイプを知らない場合でも、任意のオブジェクトのメンバ関数を動的に結合し、未来の時間でオブジェクト上に関数を呼び出すことができます。デリゲート オブジェクトは完全に安全にコピーできます。デリゲートは値渡しすることができますが、ヒープ上にメモリを割り当てる必要があるので通常はお勧めしません。可能な限り、デリゲートは常に参照渡しが望ましいです。デリゲートは可能な限り参照によって渡されることが望ましいです。エンジンは 3 種類のデリゲートをサポートしています。
-
シングルキャスト
リファレンスおよび使用方法に関する情報は「 デリゲート 」を参照してください。
タイマー
タイマー は、アクションを遅らせる、もしくはある期間に渡って発生させる際に使用します。プレイヤーがパワーアップ アイテムを取得した 10 秒後に、無敵キャラクターとなり、10秒後に弱くなる例が挙げられます。プレイヤーが毒ガスで充満した部屋に入ると、 1 秒おきにダメージを与える例もあります。これらはタイマーを使用して実現します。
リファレンスおよび使用方法に関する情報は「 ゲームプレイ タイマー 」を参照してください。