コンフィギュレーターを作るときやカラーバリエーションなどを作ってチェックする際に毎回マテリアルをアサインし直したりするの面倒と感じることはありませんか?
そういう時に役立つのがVariant Managerです。
使ってみたら便利で、準備も簡単だったので、その使い方をご紹介します。
Variant Manager とは?
UE4.21から追加された機能です。
レベル上のアクターのプロパティのリストを作成、登録し、そこから瞬時にそのプロパティを変更することができます。
例えば、複数のアクターで構成された車があり、外装のマテリアルが3種類あるとします。
その複数のアクターと3種類のマテリアルを登録しておくことでエディタ上で簡単にマテリアルを切り替えることができます。
アサインし直す必要がなくなります。
例えば以下のような感じです。
また、マテリアルだけでなく、表示/非表示やCast Shadowのオン/オフ等もできます。
Variant Manager の使い方
今回はUE4.24を使用します。
また以下で使っているアセットは
StarterContentとAutomotiveMaterialsです。
以下のような簡単な例で紹介していきます。
プラグインの確認
プラグインが有効になっていない場合がありますで、有効になっているか確認しましょう。
Edit → Plugins → 「Variant Manager」と検索すると出てきます。
Level Variant Sets を作成、管理
LevelVariantSetsがVariant Managerの中身ようなものです。
Level Variant Set を作成
コンテンツブラウザから右クリックで
Miscellaneous → Level Variant Set で作成します。
今回は「Test_LevelVariantSets」と命名しておきます。
これをレベル上に配置しておきます。
ダブルクリックでVariant Managerが開きます。
Variant Setを作成
「+ Variant Set」 から「Variant Set」を作成します。
今回は名前は「Variant Set」のままにしておきます。
これがバリエーションのジャンル的なものです。
車の場合、ボディカラーとホイールのバリエーションを作成する場合
1つ目のVariant Setを「Car Paint」、2つめが「Wheel」といった具合です。
Variantを作成
「Variant Set」の右の「+」の「Add a new variant」からVariantを作成します。
Variantがバリエーションの中の1つと考えてもらって良いと思います。
例えば3種類のマテリアルのバリエーションを作りたいとき、このVariantを3つ作成します。
今回は1つだけ作成し、「Basic」と命名しておきます。
アクターとプロパティを登録する
レベル上からアクターを登録します。
レベル上のアクターを選択して
「Variant(Basic)」を右クリック→「Add selected actors」を選択します。
ウィンドウが開くのでプロパティを選択します。
今回はマテリアルを変更したいので「Static Mesh Component / Material[0]」にチェックを入れて「Select」を押します。
アクターの追加はWorld OutlinerからD&Dでもできます。
以下のようにアクター、プロパティ、バリューが設定されました。
アクターを右クリックで更にプロパティを追加することもできます。
今回は何も変更せずに次に行きます。
Variantの複製
もう1色バリエーションを作るためにVariantをもう一つ作成します。
Variantは複製することができます。
今回のような1つの場合は簡単ですが、複数アクターやプロパティがある場合は複製が便利です。
「Variant(Basic)」を右クリック→ 「Duplicate」または
「Variant(Basic)」 を選択した状態でCtrl+Wで複製できます。
今回は複製したVariantを「Color01」と命名しておきます。
バリューの変更
複製したVariant(Color01)のバリュー(マテリアル) を変更します 。
今回は AutomotiveMaterials のMI_CarPaint_Orangeにしました。
何でも大丈夫です。
準備は以上です。
ダブルクリックで使用する
実際に使用してみます。
Variantをダブルクリックまたは右クリック→「Switch On」で Variant を選択することができます。
プロパティ単位で変えたい場合は
プロパティを右クリック→「Apply recorded value」で変更することができます。
サムネイルを追加する
サムネイルはVariantを右クリック→「Create Thumbnail」を押すことで現在のビューポートをサムネイルとして使用します。
プレイ中に使用する
Variant Managerはプレイ中にも使用することができ、簡単にコンフィギュレーターのようなものを作成することができます。
またUMGを作成し、そこからアクセスすることもできます。
そのやり方も簡単にご紹介します。
UIからVariant Managerを使用する
UMGの作成
コンテンツブラウザを右クリックし「User Interface」から「Widget Blueprint」を作成します。
今回は「WB_Test」と命名しました。
今回は2つバリエーションを作ったので、適当にボタンを配置し、中にTextを配置しました。
ボタンを「Button_Basic」と「Button_Color01」に変更しておきます。
UMGのBPの編集
WB_TestのGraphに移り、処理を組んでいきます。
①「Get All Actors of Class」を作成し、Actor Class を「Level Variant Sets Actor」にします。
②「get(a copy)」でindex 0を取得します。
③一応、getのアウトプットから変数を作成し、「Level Variant set」と命名し、代入しておきます。
「Switch on Variant by Name」を作成します。
「Variant Set Name」に先ほど作った「Variant Set」の名前を入力します。
今回は名前を変えていないので 「Variant Set 」です。
「Variant Name」には「Variant」の名前を入力します。
今回は「Basic」です。
「Switch on Variant by Name」 を複製して、「Color01」の分も作ります。
2つのボタンの「On Clicked」イベントを追加し、各 「Switch on Variant by Name」 に繋ぎます。
WB_Test の編集は終了です。
UMGを表示させる
何らかの形でプレイ中に作成したUMGが表示されるようにします。
今回はテストなのでレベルBPに処理を追加します。
BP内で「Create Widget」を作成し、Classを先ほど作成した「WB_Test」にします。
それを「Add to Viewport」に接続します。
プレイ
UIが表示され、ボタンが効けば完成です。
ボタンが効かない場合は各BPとLevelVariantSets(Test_LevelVariantSets)がレベル上に配置されているか確認してみてください。
まとめ
以上、Variant Managerの簡単な使い方でした。
使ってみると割と簡単だと思います。
複数のバリエーションを作るときやルックデブをするとき、またコンフィギュレーター系のものを作るときに役立つかと思います!