Language:
Page Info
Tags:
Skill Level:
Engine Version:

Bitmask ブループリント変数

ブループリントで、integer 変数を bitmask として宣言できるようになりました。個々のマスク ビット (フラグ) は、値を手入力せずにエディタによる設定 / 解除が可能になります。 さらに、ブループリントの列挙型変数 もまた明示的なビットフラグ識別子として使うように Bitmask Flags 型として宣言できるようになりました。

Bitmask 変数の作成

ブループリント エディタブループリント クラス を使っていれば、すべての Integer 変数を bitmask として作成および宣言することができます。

  1. ブループリント enum エディタ[Bitmask Flags] 属性をオンに切り替えて、 ビットフラグ enum である Blueprint Enumeration を作成します。BitmaskEnum= メタデータを使って C++ で設定された、既存のビットフラグ enum 型も使用できます。

    image alt text

  2. ブループリント で integer 変数を作成し、[Details (詳細)] パネルで [Bitmask] 属性を有効にします。

    image alt text

    C++ コードの Bitmask メタデータに相当します。

  3. [Details (詳細)] パネルの [Bitmask Enum] ドロップダウン メニューから Blueprint Enumeration (または既存のビットフラグ enum) を選択します。

    image alt text

  4. 変数の Set ノードのドロップダウンから、変数名を選択することができます。ブループリントのコンパイル後、[Details (詳細)] パネルでデフォルトの変数値の設定もできます。

    image alt text

ランタイム時のビットマスク作成

Make Bitmask ノード経由で Blueprint Class グラフにビットマスク リテラルを作成することができます。

  1. グラフを 右クリック して、コンテキスト メニューから [Make Bitmask] を選択します。

  2. [Make Bitmask (ビットマスクを作成)] を選択します。

    image alt text

  3. ノードをクリックして [Details (詳細)] パネルを開きます。[Bitmask Enum] ドロップダウンから、このビットマスクに関連づいている enum 型を変更します。クラスで定義された integer 変数と同様に、 [Bitmask Flags] 属性が有効にされた enum 型だけがドロップダウンに表示されます。

    image alt text

  4. ノード上で Bitmask を選択して作成できます。

    image alt text

ビットマスクの使用方法

ブループリントでビットマスクは integer 値と同様に扱われます。ビットマスクの integer 出力ピンは、integer 値に合う入力とすべて接続することができます。 通常は、ビット幅の OR、AND、XOR、NOT 演算子になります。

最初の例では、Target Color Flags に格納されている Red フラグを切り替えるために、Make Bitmask ノードが 1 つ Bitwise XOR ノードにパスされています。カラー値を格納している enum の Bitmask Flags も 切り替わります。

image alt text

次の例では、Select ノード、Bitwise NOT ノード、Bitwise AND ノードはすべて integer を入力として受け取るので、この 3 種類のカラーのどれか 1 つの選択、3 種類の間での切り替え、 Target Color Flags ビットマスクへの結果の保存が可能になります。

image alt text

Tags