本日は Blender とユニティちゃんの調査枠です。
前回記事の続きです。
bluebirdofoz.hatenablog.com
ユニティちゃんを Blender で読み込む手順について記事にします。
今回はテクスチャの表示とウェイトの設定です。
マテリアルの状態
FBXファイルはUnity上のユニティちゃんシェーダーの情報を保持していません。
このため、テクスチャの参照はあるものの、全てのマテリアルの設定が行われていません。
Blender上でユニティちゃんシェーダーの見た目を再現するのは難しいので、ここではカラーテクスチャの反映のみを行います。
色の反映結果が[3Dビュー]上で分かるように、以下の設定を予め行います。
・[ワールド]タブの[環境照明]にチェックを入れて有効にする。
・[3Dビューのシェーディング]を[マテリアル]に変更する。
テクスチャの表示
テクスチャを表示するには各メッシュオブジェクトから[テクスチャ]タブを開きます。
Assets フォルダの構成をそのままコピーしていれば、テクスチャの参照が設定されています。
一覧の一番上のテクスチャがカラーテクスチャです。
カラーテクスチャを選択した状態で[テクスチャ]タブを下にスクロールします。
[影響]パネルの[ディフューズ:カラー]にチェックを入れて、テクスチャのカラーを反映します。
全てのメッシュオブジェクトについて同様の作業を行います。
カラーテクスチャのカラーを全て反映させると、以下のような見た目になります。
透過の設定
凡そ、それらしい見た目になりました。しかし、よく見ると頬や睫毛に白飛びが見られます。
これらのテクスチャは白飛びの部分を透過させる必要があります。
試しに頬のメッシュオブジェクトの透過を設定します。
メッシュオブジェクトから cheek オブジェクトを選択します。
[テクスチャ]タブを開き、[影響]パネルの[ディフューズ:アルファ](透明度)にチェックを入れます。
透明度の情報が反映されるようになったので、マテリアルの透過処理を有効化します。
cheek オブジェクトを選択したまま、次は[マテリアル]タブを開きます。
[透過]パネルにチェックを入れて有効化し、[Z値透過]で[アルファ:]の値を[0.0]に設定します。
最後に[オブジェクト]タブを開き、[表示]パネルの[透過]にチェックを入れます。
これでテクスチャの透明度が設定された部分が透明表示されるようになり、自然な頬の色合いになりました。
同じく透明度が設定されたテクスチャを利用する、以下のメッシュオブジェクトも同様の設定を行います。
・BLW_DEF
・EL_DEF
・eye_base_old
これでテクスチャの表示は完了です。
ウェイトの設定
次にウェイトの設定を行います。
前回、アーマチュアとの関連付けを行った頭部オブジェクトはボーンとのウェイト付けが行われていません。
Unity上でユニティちゃんを確認すると、頭部オブジェクトは Character1_Head ボーンオブジェクトの子オブジェクトとすることで連動していたことが分かります。
これと同じ動きになるよう、頭部オブジェクトに Character1_Head ボーンのウェイトを設定します。
試しに眉毛オブジェクトの BLW_DEF でウェイト設定を行います。
BLW_DEF オブジェクトを選択し、[データ]タブを開きます。
頂点グループの[+]ボタンを押して、新規グループを作成したらグループ名を[Character1_Head]に変更します。
BLW_DEF を選択したまま[編集モード]に移行します。
全ての頂点が選択された状態であることを確認します。全ての頂点が選択されていない場合は Aキー(全選択) で選択します。
この状態で頂点グループの[Character1_Head]をウェイト[1.0]で[割り当て]を実行します。
同じく顔オブジェクトである、以下のメッシュオブジェクトも同様の設定を行います。
・EL_DEF
・EYE_DEF
・MTF_DEF
・eye_L_old
・eye_R_old
・eye_base_old
・head_back
これでウェイトの設定は完了です。
頭部ボーンに頭部オブジェクトが正しく追従するか確認してみます。
アーマチュアオブジェクトの Character1_Reference を選択して[ポーズモード]に切り替えます。
頭部ボーンを動かしてみて、頭部オブジェクトがボーンに追従すれば正しくウェイト設定が行えています。
これで Blender にユニティちゃんを読み込むことができました。
次はこのユニティちゃんを Unity 側に逆反映してみます。
bluebirdofoz.hatenablog.com