【アバター首接合】6. Blenderエクスポート~Unityでの設定
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの6つ目(最後)です。
目次記事↓
「Blenderエクスポート~Unityでの設定」目次
- 6-1. Blenderからモデルをエクスポートする
- 6-2. Unityへモデルをインポートする
- 6-3. マテリアルの設定をする
- 6-4. VRC向けの設定をする
- 6-5. Bounds、AnchorPoint等の設定をする
- EX. 専用衣装の着せ替えについて
6-1. Blenderからモデルをエクスポートする
ここまでおつかれさまでした。そしてこれからいよいよ、頭部と素体を綺麗に接合したモデルを、1つのFBXとしてエクスポートします。
が、その前にやることがあります。そしてこれからやる操作は不可逆的なので、エクスポート専用のファイルとして別名保存しておくことを推奨します。
①「シェイプキー」があるモデルの「モディファイアー」を適用する
記事内で何度も触れていますが、「シェイプキー」があるオブジェクトは「モディファイアー」を「適用」させることができません。
しかし、「モディファイアー」はBlenderからエクスポートされるときにデフォルトでは「アーマチュアモディファイアー」以外は「適用」されることになっています。このとき「シェイプキー」があった場合、「モディファイアー」の適用の方が優先されて「シェイプキー」が消えます。よくある(?)シェイプキー消失事件*1ですね。
なので、エクスポート前に「アドオン」を使って手動で「モディファイアー」を「適用」しておきます。私はApplyModifierを使っています。ApplyModifierを使う場合、「オブジェクト」→「適用」→「Apply selected Modifier」から行います。その時、「アーマチュア」は「適用」せず残しておきましょう!
②トランスフォームを適用する
一般的に、「トランスフォーム」の値は初期値になっている方が綺麗で、扱いやすいモデルです*2。エクスポート予定のオブジェクトを全部選択して、「オブジェクト」→「適用」→「全トランスフォーム」を実行しておきましょう。
エクスポート
これらができたら、「アーマチュア」も含めてエクスポートしたいオブジェクトを同時選択し(LightとかCameraとかが含まれないように…)、「ファイル」→「エクスポート」→「FBX(.fbx)」でFBXエクスポートします。
エクスポート設定欄では、「選択したオブジェクト」にチェックを入れ、(一応手動でトランスフォーム適用してありますが念のため)「スケールを適用」を「すべてFBX」にし、「!実験的機能! トランスフォーム適用」にチェックを入れます。
今後何も無ければBlenderの出番はこれで終わりです。Blenderに感謝しましょう。
6-2. Unityへモデルをインポートする
(※Unityでのアバター改変のための操作は一通りできる前提で、Blenderパートよりはかなり薄味に書いています。ご了承ください)
Unityを起動します。
任意のフォルダに先ほどBlenderからエクスポートしたFBXをドラッグアンドドロップしてインポートします。FBXのインポート設定は次のようにします(特にVRC向け設定)
。
RigはAnimation TypeをHumanoidにして一度Applyを押してから、Configure…ボタンを押してHumanoid設定を確認します。異常(必要なボーンが割り当てられてないとか、Jawに髪ボーンとかが割り当てられてしまっているとか…)が無いかを確認して、必要があれば修正してDoneします。
ついでに、調整したテクスチャもインポートしておきます。テクスチャのインポート設定は次のようにします。
その他の設定は諸説あるのでここでは特に弄らないことにしておきますが、とにかくStreaming Mipmapsにチェックを入れておかないとVRChatにアップロードできないので、チェックを入れます。また、4Kを越える高解像度のテクスチャを使いたい場合は、Max Sizeも上げておかないと反映されないので注意しましょう*3。
6-3. マテリアルの設定をする
マテリアルを設定していきます。重要なポイントは、使うシェーダーの種類・設定を頭部と素体で統一することです。ここがちぐはぐだと、どれだけBlenderでがんばって接合部を滑らかにしようが、切れ目ができてしまいます。
おそらく、ベースを頭部側にした方が設定が楽*4だと思います。なので、頭部で使われているマテリアルを複製しましょう。元のマテリアルを弄りたくないので、ここでは2個複製し、それぞれを頭部用、素体用としました。モデルの方にも割り当てておきます*5。
これ以降はUTS2での説明となります。それ以外のシェーダーを使われている方は適宜読み替えてください。
調整後のテクスチャをマテリアルのベースカラーに割り当て直します。
画像は素体マテリアルの例ですが、(接合部のテクスチャを調整している場合は)頭部マテリアルにも同じように行ってください。
これだけで首回りは問題がなくなるはずです。ですが、この段階では素体側の表示が一部変になっているかもしれません。
これは、頭部マテリアル用に割り当てられていたマスクテクスチャや瞳用のEmissiveが残っているからです。取り除きましょう。取り除きたいテクスチャ(ここでは見た目が白黒のマスクテクスチャ)の右隣の小さい丸をクリックするとブラウザが出てくるので、一番最初に出てくるNoneをクリックして割り当て無しにします。
白黒のマスクテクスチャは全部取り除いても問題ないはずです。マットキャップテクスチャは取り除いた方がいいとき*6と取り除かない方がいいとき*7があります。Emissiveも同様に黒に戻した方がいいときと弄らない方がいいときがあります。
マテリアル調整をしたものがこちらになります。
6-4. VRC向けの設定をする
※Avatar3.0での説明です。2.0でも基本は一緒だと思います
VRChatにアバターとしてアップロードするために、ルートオブジェクトにVRC Avatar Descriptorコンポーネントをつけましょう。とりあえずは、頭部モデルの元になったアバターのものをコピーしてベースにするのが良いと思います。
ただし、Unity標準機能で適当にコピペすると、メッシュ等の参照先がコピー元のままになっているので手作業で修正しないとまともに動きません。そこで、CopyComponentsByRegexというUnity拡張がとても便利です。インポートして使いましょう。詳しくは作者様の説明を見てください。揺れ物等のDynamicboneコンポーネントやコライダー等も一緒にコピペできます。
頭部モデルの設定をコピペできたら、素体側向けの設定をします。手専用のAnimatorが用意されている場合は、Playable Layers→Base→Gestureの欄にドラッグドロップします。その他専用モーション等がある場合も同様にします(この辺は各素体モデルの説明を確認してください)。
※なんかうまくいかない場合
表情等が入っているオブジェクトの名前が元のモデルのものから変わっていないかをまず確認してみてください。表情等のアニメーション(FX Layerに入ってそうなものは大体そう)は、基本的に「名前」と「階層構造」が一致していないと動きません。違っていた場合はその辺を修正すると動くようになるはずです。
6-5. Bounds、AnchorPoint等の設定をする
Unity上だとあまり問題は起こりませんが、このままアップロードするとVRChat上で色々な問題が起こる可能性があります。そのために、仕上げとしてBoundsとAnchor Overrideの設定をします。
Bounds: Boundsとは、通常各オブジェクトをすっぽり覆っている領域のことです。この領域がカメラに入っているときだけにオブジェクトを描画します。この設定がバラバラだと、突然頭部とかが消えて見えたりします。各オブジェクトではなく、アバター全体をすっぽり覆うように全てのオブジェクトのBoundsを設定し直すと消えにくくなります*8。
Anchor Override: 6-3でせっかくマテリアルの設定を統一したとしても、空間の上の方と下の方のライティングの様子が違うと、それぞれのマテリアルの影の入り方が違ってきてしまいます。そこで、Anchor Overrideという機能を使うとそれも統一することができます。詳しい説明は↓の記事もご覧ください。
jellyfish-qrage.hatenablog.com
BoundsとAnchor Overrideは手動で設定することもできるのですが、ここではがとーしょこら様のVRCAvatarEditor betaを使います。VRCAvatarDescripterコンポーネントが入ったアバタールートをセットするだけで、上二つの設定を含む様々な設定が超簡単に行えるとても重宝するツールです。どんどん使いましょう。
EX. 専用衣装の着せ替えについて
今まで苦労して頭部と素体を調整してきたのは全てはこれの為です。簡単・綺麗に着替えをしまくりましょう!
1-2で素体の大きさと位置を調整した時に、「トランスフォーム」の値をメモしたのを覚えているでしょうか? 素体に対応した衣装のArmatureに、メモした値をそのまま入れれば同じ比率・位置に変形することができるため、特に難しい調整をせずとも素体と衣装がぴったり重なります。
ただし、BlenderとUnityでは座標系が異なるため、軸と符号には気を付ける必要があります。
フィッティングができたら、あとはキセテネ等でボーンの関連付けをしたり、貫通対策をしたりしましょう。
おつかれさまでした! これでBlenderでのアバター改変は怖いもの無し!
それでは良いアバターライフを~
Algo_Ayugon
【アバター首接合】4. 法線の調整
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの4つ目です。
目次記事↓
(公開したらリンク張る)
「4. 法線の調整」目次
4-0. はじめに
人によっては気にならないかもしれませんが、頭部と首の接合部も6.をする前と同じように、繋がっていない感じに見えてしまっています。3Dビューシェーディングの設定のカラーをマテリアル等の表示にするとわかりやすいです。
これをここでは「法線」転写で対処していきます。
が、以下のいずれかに当てはまる人は別にやらなくても構いません
- 頭部と素体のオブジェクト統合&頂点マージをするつもりである/もうマージした
- そもそもそんなに気にならない(Unity等の最終出力環境でトゥーンシェーダー等を割り当てて確認してみてください)
頭部と素体のオブジェクト・メッシュは分かれたままにしておきたいが、接合部のシェーディングも綺麗にしたい場合この記事の手順が非常に参考になるはずです。
EX. 「法線」ってなんぞ
本題に入る前に、「法線」について軽く説明しておきます(本質とかに興味がない、とにかく首継ぎだけしたい人は飛ばしてください)。
「法線」は英語だと「Normal(ノーマル)」と書きます。どちらかは馴染みがあるかもしれませんね。「法線」は、数学だと”ある直線や平面と垂直な直線”を指したりするのでそこで聞いた人もいるかもしれません。まさにアレです。
大雑把に言うと、CGの世界の「法線(ノーマル)」はある面が”どこを向いているか”についての情報です。
↓の記事がわかりやすくまとまっているのでまずは読んでみてください。
ここで問題となるのは「頂点法線」の方です。とりあえず、今弄っているモデルの「頂点法線」の様子を見てみましょう!
「編集モード」に入り、「オーバーレイ」の設定を変えます。
すると、オブジェクトの全ての頂点から色のついた線がにょきにょき生えてきて、ウニとかハリネズミみたいになったと思います。この生えてきた色のついた線が全部「法線」です。
頭部モデルと素体モデルを両方選択した状態で「編集モード」に入ってさらによく見てみましょう。接合部の頂点のどちらかを【G】で掴んでちょっと動かしてみると分かりやすいです。
普通、(「スムーズシェード」であれば)1頂点につき1つの「頂点法線」があります。その状態だと、滑らかに見えるのです。ですが、接合部の重なった二つの頂点の「法線」はそれぞれが別の方向を向いてしまっています。そのせいで途切れたように見えるんですね。
つまり、接合部の頂点の「法線」を何らかの方法で一致させてやれば、メッシュが繋がっていなくても滑らかに見えるということになります。
実はこの「法線」を直接手で弄ったりコピペしたりすることもできるのですが、めんどうなので慣れてないと難しいかもしれないので、今回は「データ転送モディファイアー」を利用します。
4-1. 「法線転写」する頂点を指定する
「データ転送モディファイアー」を使う前に、軽く下準備をします。
今回は頭部側の「法線」を素体側に転写(コピペ)するので、これからは基本的に素体オブジェクトを触っていきます。
素体オブジェクトを選択して「編集モード」に入ったら、接合部の頂点を全て選択します。そして「オブジェクトデータプロパティ(三角のアイコン)」→「頂点グループ」タブで+を押して新しい「頂点グループ」を作成し、1.000を割り当てます。名前は適宜わかりやすいように変えておきましょう。ここでは”Normal”としました。
4-2. 「データ転送モディファイアー」を使う
「データ転送モディファイアー」を追加します。「モディファイアープロパティ」(画像では隠れてしまってますが、スパナ・工具のようなアイコン)から「モディファイアーを追加」→「データ転送」を選び、追加します。
「データ転送モディファイアー」の設定を以下のようにします。元オブジェクトには頭部オブジェクトを指定し、右下のタブには先ほど作った「頂点グループ」を指定します。すると、指定した「頂点グループ」のところだけに諸データ(今回は「法線」)が転送されます。
設定欄の一番下のメッセージでBlenderくんの方からちゃんと怒ってくれていますが、「オブジェクトデータプロパティ」(三角形のやつ)→「ノーマル」欄の「自動スムーズ」のチェック欄をONにしないと「カスタム法線」は反映されないので、忘れずチェックを入れます(モデルによっては既にチェックが入っているかも)。すると…
接合部がめっちゃ綺麗になりましたね!やったぜ。
この「法線転写」や「データ転送モディファイアー」ですが、非常に多くの用途に使えるので、興味を持った方は色々調べてみてくださいね(布教)。
「4. 法線の調整」はこれで終わりです。次はテクスチャの境界をこちょこちょして馴染ませます。
【アバター首接合】3. アーマチュア・ウェイトの調整
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの3つ目です。
目次記事↓
「3. アーマチュア・ウェイトの調整」目次
3-1. 不要なボーンを削除する
「アーマチュア」を統合する前に、頭部と素体それぞれの不要な(重なり合っている)「ボーン」を削除します。ここでは、所謂Headボーン以降(頭から先)は頭部モデルのものを使用することにします。
まず、素体の「アーマチュア」のHead, LeftEye, RightEye(ある場合は髪ボーン等も)を「編集モード」で選択して【X】や【Delete】で削除します。
同様に頭部側のアーマチュアも「編集モード」でNeck以下のボーンを消します。
3-2. アーマチュアを統合する
次に、「オブジェクトモード」で、頭部モデルのアーマチュア、素体のアーマチュアの順に同時選択し、【Ctrl】+【J】で統合します。
NeckボーンとHeadボーンを親子関係にします。アーマチュアを選択して「編集モード」に入り、Headボーン(頭部モデルによっては違う名前かもしれません)を選択します。右のタブのうち「ボーンプロパティ」(骨のアイコンのタブ)を開き、「関係」から「ペアレント」をNeckに設定します。
3-3. 頭部モデルをアーマチュアに関連付ける
次に、頭部モデルをアーマチュアに関連付けしなおします。
Blenderではアーマチュアとメッシュの関連付けは「アーマチュアモディファイアー」によって行われています。「モディファイアープロパティ」(スパナとか工具みたいなアイコン)を選び、「アーマチュアモディファイアー」のオブジェクトの参照が空欄になっているところを選択し直します。修正すると、モディファイアー名が赤い警告になっていたところが正常になります。
頭部のオブジェクトの全てに対してこれを行ってください。
(※3-2で、アーマチュアの選択順が逆だと、素体の方が参照切れを起こしているかもしれません)
ex. ポーズモードで確認してみる
ここまでできたら、「ポーズモード」に入って一度曲がり具合を確認してみましょう。「ポーズモード」への切り替え方は2種類くらいあります。
「①アーマチュアを選択した状態で左上のモード切り替えタブから選ぶ」
「②通常右上にある「アウトライナー」から「ポーズ」と書かれた所をクリックする」
のどちらか好きな方で「ポーズモード」に入ってください。
NeckやHeadを選択して、【R】キーで動かしてみます。接合部に隙間が空いてしまうかと思いますが、3-4で調整します。ここでは、頭部がNeck, Headボーンにきちんと追従して動いているかどうかを確認してください。
動かした時に、何かのオブジェクトが取り残されてしまっていたり、その他変な動き方をする場合、次のことが考えられますので、確認してください。
①頭部オブジェクトが統合後のアーマチュアに関連付けられていない
②Headの「親」がNeckになっていない
③そもそも頭部モデルの頭のボーンの名前が「Head」ではなかった(素体モデル側の頂点グループ「Head」の名前を同じ名前に変えて対処します。機会があれば別記事で書こうと思っています)
ポーズを変えて遊んだ後は、ポーズモード中で戻したいボーンを選択した後に「ポーズ」メニュー→「トランスフォームをクリア」→「全て」で初期ポーズに戻しておきましょう。
3-4. ウェイトを調整する
ボーンを動かしたときに出来てしまう隙間の対処をします。
接合部の頭部の頂点と素体の頂点は、「2. 接合部の頂点の調整」でスナップ機能を使って位置を合わせてあります。なのでそれらの「頂点ウェイト」の数値が全て一致していれば、同じように動き、隙間はできなくなるはずです。
接合部の位置にも寄りますが、ここでは接合部の頂点は全て「Headに1、それ以外は0」のウェイトを割り当てることにします(他の配合でも良いですが、合計は1になるのが望ましいです)。
まず頭部のウェイトの様子を確認します。「ポーズモード」の状態で、頭部オブジェクトを選択します。すると、「ポーズモード」で且つ「それ以外のモード」のような状態にすることができます(できない場合、「編集」→「オブジェクトモードをロック」にチェックが入っているので、外してください)。
次に、左上のモード選択から「ウェイトペイント」を指定します。
「ウェイトペイントモード」で「頂点ウェイト」を”塗る”こともできるのですが、下手に触ると事故が多発するので、ここでは見た目でウェイトの様子を確認するだけにしておきます。この「ポーズモードで且つウェイトペイントモード」の状態では、【Ctrl】を押しながらボーンを選択することができ、そのボーンに対応した「頂点ウェイト」を色で確認することができます。
このモデルの頭部は、基本的に「Headに1(赤)」が割り振られていますが、接合部付近はNeckにも少し割り振られているようです(黄~緑)。接合部付近も「Headに1、それ以外に0」にしていきましょう。
【Tab】を押すか、左上のタブから「編集モード」に入り、接合部付近の頂点を選択します。
※このモデルの場合は頭部全てが既に「Headに1」であることが分かったので全選択をしていますが、モデルによってはそうではない場合もある(特に目の付近)ので、その場合は接合部付近のみを手動で選択してください。
そして、右のメニューの三角形のボタンのメニュー(オブジェクトデータプロパティ)の「頂点グループ」の欄でHeadを選択し、「ウェイト」に1.000を入力して「適用」を押します。
もし「適用」ボタンがグレーアウトして押せない場合、その「頂点グループ」にロックがかかっているので、鍵のようなアイコンをクリックしてロックを解除してください。
同様に、そのまま「頂点グループ」の欄でNeckを選択し、「ウェイト」に0.000を入力して「適用」を押します。(もしかしたらChest等にもウェイトが入っているかもしれないので、その場合はそこにも適用します)
同じことを素体側にも行ってください。
曲げた時のガタつきや曲がり方が気になる場合は、「ウェイトペイントモード」の「ぼかし」でぼかしたい頂点をなぞってください。このとき、接合部の頂点には触らないように気を付けてください。
ここまで上手くいっていれば、曲げた時にも裂け目ができないはずです。
「3. アーマチュア・ウェイトの調整」はこれで終わりです。次は「法線」を調整して、影の入り方が滑らかになるようにします。
【アバター首接合】2. 接合部の頂点の調整
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの2つ目です。
目次記事↓
「2. 接合部の頂点の調整」目次
2-1. 素体から首部分を分離する
※素体に「シェイプキー」が含まれていない場合、不要です! 2-2だけを行ってください。
これから、素体の首付近の頂点を直接弄っていきますが、その前に首部分を本体から分離しておきます。前の項で触れたように、「シェイプキー」が壊れたり、変になってしまうことを予防するためです(ANTNEST素体には貫通防止シェイプキーが作成してあります)。「編集モード」に入り、首付近のみを選択し、【P】→「選択」で別オブジェクトに分離します。
また、一度「オブジェクトモード」に戻ってから分離後の首オブジェクトを選択しなおし、首オブジェクトの方のシェイプキーを削除しておきます。「シェイプキー」一覧の右の三角を押して「全てのシェイプキーを削除」します。
おそらく首付近に関係する「シェイプキー」は無いと思うので全消ししてしまって大丈夫です。
2-2. 接合部を調整する(頂点数、頂点位置)
前段階で首部分を分離したおかげでデータが壊れる恐れはほとんどなくなったので、思い切って力強く頂点をこねていきましょう。
まず、首の上の方の要らない部分をまとめて削除します。
ここから先は、他オブジェクトのワイヤーフレームも見えた方がいいので、表示を有効にします。ワイヤーフレーム表示のチェックボタンは「Overlays:右上の丸が二つ重なってるアイコン(二重丸は表示非表示の切り替え、設定は隣の三角)。無い場合はその付近で中ボタンをぐりぐりすると出てくる」の中に格納されています。アイコンの右の三角をクリックして設定します。
それではこねていきます。まず、「スナップ」機能を適宜使いながら頂点の位置を合わせていきます。「スナップ」機能は磁石のボタンです。オーバーレイと同じように、磁石のボタンをクリックするとオン・オフが切り替えられます。隣の三角をクリックすると設定ができます。ここでは主に「頂点スナップ」を使うので切り替えておきます。
「頂点スナップ」を使ったまま【G】で頂点を移動させると別の頂点の位置にぴったりと張り付くように合わせることができます。
基本的にはこのように、接合部の辺の全ての頂点の位置を合わせていくことになります(頂点数の多い頭部モデルの場合は大変ですが…がんばってください! 髪等で隠れる場所は雑でもわからないかもしれないので、適度に手を抜きましょう)。
作業をしていると、下の画像のように頂点数が合わない箇所が出てくると思います。
そういう時は、「細分化」(二つの頂点を選んで、右クリックメニューから)やナイフツール【K】で頂点を増やします。
すると頂点が増えますが、「Nゴン」と言われる、五角形以上の面ができてしまいます。最悪エラーが出たりする、あまり良くない状態なので、四角形以下にしておきます。ナイフツール【K】を使ったり、繋ぎたい頂点を二つ選択して【J】キーで繋げます。
シェイプキーを保護するため、できるだけ頂点の調整は頭部オブジェクトではなく首オブジェクトで行いましょう。上の場合とは逆に首オブジェクトの方が頂点数が多い場合は、不要な頂点を選択して【X】または【Delete】→「頂点の溶解」を行います。
頂点スナップだけでは対処できない形状の乱れは、頂点スナップを切って作業しましょう。「プロポーショナル編集」が有効な場合もあります。
最終的にこんな感じになりました。
2-3. 首部分と素体本体を再統合する
分離した首オブジェクトと素体本体オブジェクトを同時に選択し、【Ctrl】+【J】で統合します。
統合後も、首と本体の接合部が繋がっていないような表示になっていると思いますが、これは実際に繋がっていないからです。「編集モード」に移行し、首と素体の接合部の頂点を選択(頂点が重なっているので、透過モードでまとめて選択するか、後述のように全選択【A】しましょう)した後に「メッシュメニュー→クリーンアップ→距離でマージ」を実行します。
2-2をやっているうちに、接合部の頂点がズレてしまっているとうまくマージできないかもしれません。そのときは、「スナップ」機能で重ねてから再度実行したり、【M】キー(古いバージョンだと【Alt】+【M】)で手動でマージしましょう。
完成したのがこちらです。
(余談)頭部と素体のオブジェクト統合について
この記事では、頭部と素体は別オブジェクトのままにして進めます。理由は色々あります(頭部モデルをできるだけ触らないため、アプデ後も弄りやすくするため、VRM時のFirst-Person時処理のため…etc)が、軽量化等のためオブジェクト数を減らしたい場合は統合しても良いかと思います。
統合する場合、2-3と同様に頂点をマージしてしまえば、「法線」の問題(影の入り方が合わなくなる)が起こらず、「4. 法線の調整」をしなくてもよくなりますし、「3. アーマチュア・ウェイトの調整」も多少楽になります。工数とも相談しましょう。
「2. 接合部の頂点の調整」はこれで終わりです。次は「頂点ウェイト」を弄って曲げた時に割れ目ができないようにしていきます。
【アバター首接合】1. Blenderインポート~前準備
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの1つ目です。
目次記事↓
「1. Blenderインポート~前準備」目次
前書き
画像は英語UI、本文は日本語UIの用語を使います。Blenderの用語は「」で囲って書きますので、わからない箇所があったらまずそれで検索なりしてもらうようお願いします。また、ショートカットキーは【】で囲って書きます。
必要なもの*1
- Unity:最終的にVRCやVRM向けにセットアップをする場合必要です。現行の環境に合ったバージョンをインストールしてください。
- Blender「アドオン」:「シェイプキー」があるオブジェクトに「ミラーモディファイアー」や「データ転送モディファイアー」を適用するのに、ApplyModifierを使います。既にミラーが適用されたモデルを使う場合や、法線調整をしない場合は不要です。
- 接合したいモデル:最低限fbx形式。blend形式ファイルがあると尚いいです。他のモデルと組み合わせることが許可されているかどうか、必ず規約を確認してください。今回は、弊ショップのANTNEST 男性素体と用心棒 Vetを使用します。
1-1. Blenderにモデルをインポートする
まず、素体モデルのblendファイルを開きます。素体モデルにもblendファイルが無い場合は、”頭部を使いたいモデルにfbxしかない場合"と同様にしてください。
頭部を使いたいモデルにblendファイルがある場合
別窓で、頭部を使いたいモデルのblendファイルを開きます。
使いたいモデルの頭部(を含む)オブジェクトを選択してから【Ctrl+C】でコピーし、素体のblendファイルのウィンドウをアクティブ状態にして【Ctrl+V】で貼り付けます(オブジェクトに関連付けられている「アーマチュア」も一緒にコピーされます)。
頭部を使いたいモデルにfbxしかない場合
「ファイル」→「インポート」→「FBX(.fbx)」を選びます。
設定画面では、「リーフボーンを無視」「ボーン方向の自動整列」にチェックを入れます。
↓インポートに関してはこちらの記事も参考にしてみてください
シャーロちゃんをblenderでいじる時の注意点 - Qiita
※エラーが出てインポートできない場合
fbxの形式が違う可能性があります。
↓こちらの記事を参考にしてみてください。
【Blender】ASCIIのFBXファイルが読み込めない場合の対処法 - おもちゃラボ
1-2. 大きさと位置を調整する
(※「オブジェクトモード」で行います)
素体の「アーマチュア」を選択し、拡縮【S】して大きさを合わせます。
真横から見て、【G】+【Y】等でY軸方向に動かして位置も合わせます。
ここで、拡縮・移動した値をスクショ等でメモしておきます。【N】で出てくる右のメニューの「アイテム(タブ)→トランスフォーム」から確認できます。これらの値は、後に素体対応衣装を着せる場合等に重宝します。
そして、拡縮・移動をした「アーマチュア」を選択し、左上の「オブジェクト(メニュー)→適用→全トランスフォーム」を実行します。
すると、「トランスフォーム」の値が初期値になります。こうすることで綺麗なデータとなり、予期せぬ挙動が起きにくくなります。エクスポート前にも念のため確認しておきましょう。
1-3. 要らないメッシュを消す
頭部を使いたいモデルの首から下のメッシュを消していきます。頭部を使うモデルのオブジェクトを選択し、【Tab】キー等で「編集モード」に移行します。首を繋げそうな位置より下を「ボックス選択」【B】や「サークル選択」【C】等で選択して【X】または【Delete】で削除します。
選択のTips1:「透過表示」で選択しましょう。選択が楽になり、漏れが減ります。
選択のTips2:「シーム」(UV展開で使う切り取り線みたいなもの)が残っている場合、画像のように「リンク選択」【L】が使えるかもしれません。
メッシュを消した後に、頭部の「シェイプキー」が壊れていないかを一応確認しておきます(今回のような一括で消す操作ではなりにくいものの、頂点の数が増減する操作をした時に、シェイプキーが壊れることがあるためです。壊れた後*2では復旧はかなり大変です)。
「シェイプキー」の情報は通常右下のウィンドウの「オブジェクトデータプロパティ」(三角形のタブ)に格納されています。変化が分かりやすいシェイプキーを選択して、「編集モード」に移行するか、「オブジェクトモード」でも右下の「ピン止め」ボタンを押すことで中身が確認できます。
「シェイプキー」が壊れていないことを確認したら、 「 シェイプキー」選択を「Basis」に戻しておきましょう。間違えてシェイプキーの中身を編集してしまう事故を防ぐためです。
「1. Blenderインポート~前準備」はこれで終わりです。次は「編集モード」に入って直接頂点を力強く移動していきましょう。
【アバター首接合】5. テクスチャの調整
Algo_Ayugonです。
この記事は、「Blenderでアバターの首を綺麗に接合する」ための6つの記事のうちの5つ目です。
目次記事↓
「5. テクスチャの調整」目次
5-0. テクスチャを表示する
人によってはモデルにテクスチャが張られた状態で表示されてないかもしれないので、設定しておきます。
まず「3Dビューのシェーディング」の設定を以下のようにします。「照明」を「フラット」に、「カラー」を「テクスチャ」にして、「アウトライン」のチェックも外しておきます。
これをするだけでもテクスチャが表示される場合もありますが、真っ白になってしまったという体でこのまま進めます。
「シェーダーエディター」の画面に入ります。Blenderデフォルトでシェーダー用の「ワークスペース」が用意されているので、それを使うのが楽です(現在いるのはblendファイルが古くなければLayoutという名前のワークスペースだと思います。後で戻ってきます)。
素体はちゃんとマテリアル設定がされているblendファイルを使ったので「マテリアルビュー」でもちゃんと表示されていますが、頭部はそもそもマテリアルノードがほとんど未設定なのでドピンクになってますね。でも気にしません。
「マテリアルプロパティ」(格子柄の丸みたいなアイコン)でテクスチャを設定したいマテリアルを選んで、画面下部の「シェーダーエディター」に画像をドラッグドロップで放り込みます。「マテリアルビュー」ではドピンクのままだったりしますが、実は放り込んだだけでも先ほど設定したLayoutワークスペース(「ソリッドビュー」)に戻ればテクスチャが表示されているので、Blenderでレンダリングする予定がないのならこのまま進めてもOKです。
既にマテリアルノードが色々組まれていて、ベースカラーっぽいもの以外の画像(NormalとかMaskとか書いてあるやつ)がある場合、一番最後に選択した画像が「ソリッドビュー」に反映されるっぽいので、ベースカラーっぽい画像を選択しておきます。
テクスチャを参照できたらLayoutタブを押して色々と設定した「ソリッドビュー」に戻ります。
5-1. ペイントソフトで色味を調整する
5-0でテクスチャを見えるようにしたのがこちらです。
ここまで色が違う場合はBlenderで調整するよりもまずペイントソフトで全体的に調整したほうが良いです。ペイントソフトの使い方についてはここでは触れないので、各自頑張って色変えしてください。
画像を更新して、その都度3Dビューを確認しながら色を調整するのですが、その時にAutoReloadというアドオンがあると非常に楽なので、是非入れましょう。
↓使い方
ペイントソフトでいい感じに色を調整したのがこちらです。
…えっこれでも別に気にならないって? じゃあこの話はここで終わりです。
もっとこだわりたい人は調整後のテクスチャをpngかjpegにレイヤー統合したものを設定し直して5-2に進みましょう。
5-2. オブジェクト統合する
Blenderではなんと、マテリアルを跨いでぼかしを含む3Dテクスチャペイントをすることができます。これに気づいたときはBlenderって意味不明だなBlenderってすごいなと心の底から思いました。
ただし、同時にペイントしたいマテリアルは同一オブジェクト上にある必要があります。なので、頭部と素体のオブジェクト統合をしない方針で進めている人は、別名保存をしてテクスチャペイント専用のファイルを用意して、オブジェクト統合をしておきます。
ここで、「ミラーモディファイアー」等がどちらかのオブジェクトに入っている場合は注意が必要です。「モディファイアー」設定が違うオブジェクト同士を統合すると、UVまでおかしくなることがあるからです。特に「ミラーモディファイアー」は注意が必要で、念のため統合前に「適用」を押しておきます。
しかし、「シェイプキー」が含まれているオブジェクトは「モディファイアー」の「適用」をすることができないので、テクスチャペイント用だと割り切って「シェイプキー」を全て削除してしまうか、ApplyModifierを使ってから「適用」しましょう。
5-3. テクスチャペイントで境界をぼかす
ここまで準備できたら、いよいよテクスチャペイントの時間です!
5-2で統合したオブジェクトを選択し、左上の切り替えタブから「テクスチャペイントモード」に入ります(Texture Paintワークスペースを選んでもいいですが、ソリッドモードの表示設定し直しなので注意)。
そして【T】で出てくる左メニューから「ぼかし」ブラシを選び、境界をなぞると…
滑らかになっていきます。ちょっと重たいですが、「Xミラー」とかもちゃんと効くようです。
いい感じにぼかしたのがこちらです。
調整後の画像はちゃんと保存しておきましょう。とりあえず上書き保存するなら、「テクスチャペイントモード」中に【N】で出てくる右メニューの「ツール」タブ→「テクスチャスロット」タブ→「画像をすべて保存」からできます。(別名保存は「画像エディター」や「UVエディター」からやるみたいです)
「5. テクスチャの調整」はこれで終わりです。モデルの調整が終わったので、次はいよいよUnityにインポートして最終調整を行っていきます。
Blenderでアバターの首を綺麗に接合する(目次)
Algo_Ayugonです。
先日、弊ショップで男性素体を販売開始しました。
マニュアルには対応頭部モデルを接合する手順について書いていますが、素体非対応モデルの頭部を切り取って、素体に接合するまでの手順をここに書いておきます。これを読めば、弊ショップのモデルに限らず、より一般的に色んなモデルの首を接合することができるはずです(別のモデルにパーツを流用してはいけないモデルもあります。使うモデルの規約をまず確認してください!)。
※頭部モデルに別メッシュの素体の首を突き刺す…いわゆるぶっさしモデルにできる場合はこの記事よりもっと簡単にできます。別の方が書かれた記事も参考にしてください。
【怖くないBlender】Blenderを使ってアバターの首をすげ替える方法【VRChat】 - Qiita
Blender2.8でアバターの頭と身体を入れ替える | ぴけっとガジェット
かなり長くなってしまったので、記事を分割しました。
長くなったのは、Blenderにそれほど馴染みが無い人に向けてかなり詳細に書いたからです。とはいっても、Blenderとかインストールもしてないよ!という人には少し難しいかもしれません。最低限、カメラ操作が不自由なくできて、「オブジェクトモード」と「編集モード」はわかるくらいの習熟度以上の人を想定しています。なんだかんだキャラモデリングに必要な工程を少しずつ上澄みを触っていくような感じになったので、チュートリアルとしても使えるかもしれません。
また、この記事では、近寄っても見ても接合痕が分からないくらいのクオリティをゴールとしていますが、そこまでは求めない人もいると思うので、各自労力と相談しながらかいつまんで見てみてください。
目次
ちなみに、この記事では弊ショップのモデルであるANTNEST 男性素体と用心棒Vetを組み合わせていますが、この記事を書く過程でできたデータをこれらに同梱しましたので、両方買って頂いた方は同じ作業をする必要はありません。代わりに、素体対応頭部モデルを組み合わせるマニュアルの方を参照してください。
Vetおじさんもよろしくね!