Choose your operating system:
Windows
macOS
Linux
ブループリントで、integer 変数を bitmask として宣言できるようになりました。個々のマスク ビット (フラグ) は、値を手入力せずにエディタによる設定 / 解除が可能になります。 さらに、ブループリントの列挙型変数 もまた明示的なビットフラグ識別子として使うように Bitmask Flags 型として宣言できるようになりました。
Bitmask 変数の作成
ブループリント エディタ で ブループリント クラス を使っていれば、すべての Integer 変数を bitmask として作成および宣言することができます。
ブループリント enum エディタ で [Bitmask Flags] 属性をオンに切り替えて、 ビットフラグ enum である Blueprint Enumeration を作成します。
BitmaskEnum=
メタデータを使って C++ で設定された、既存のビットフラグ enum 型も使用できます。ブループリント で integer 変数を作成し、[Details (詳細)] パネルで [Bitmask] 属性を有効にします。
C++ コードの
Bitmask
メタデータに相当します。[Details (詳細)] パネルの [Bitmask Enum] ドロップダウン メニューから Blueprint Enumeration (または既存のビットフラグ enum) を選択します。
変数の Set ノードのドロップダウンから、変数名を選択することができます。ブループリントのコンパイル後、[Details (詳細)] パネルでデフォルトの変数値の設定もできます。
ランタイム時のビットマスク作成
Make Bitmask ノード経由で Blueprint Class グラフにビットマスク リテラルを作成することができます。
グラフを 右クリック して、コンテキスト メニューから [Make Bitmask] を選択します。
[Make Bitmask (ビットマスクを作成)] を選択します。
ノードをクリックして [Details (詳細)] パネルを開きます。[Bitmask Enum] ドロップダウンから、このビットマスクに関連づいている enum 型を変更します。クラスで定義された integer 変数と同様に、 Bitmask Flags 属性が有効にされた enum 型だけがドロップダウンに表示されます。
ノード上で Bitmask を選択して作成できます。
ビットマスクの使用方法
ブループリントでビットマスクは integer 値と同様に扱われます。ビットマスクの integer 出力ピンは、integer 値に合う入力とすべて接続することができます。 通常は、ビット幅の OR、AND、XOR、NOT 演算子になります。
最初の例では、Target Color Flags に格納されている Red フラグを切り替えるために、Make Bitmask ノードが 1 つ Bitwise XOR ノードにパスされています。カラー値を格納している enum の Bitmask Flags も 切り替わります。
次の例では、Select ノード、Bitwise NOT ノード、Bitwise AND ノードはすべて integer を入力として受け取るので、この 3 種類のカラーのどれか 1 つの選択、3 種類の間での切り替え、 Target Color Flags ビットマスクへの結果の保存が可能になります。