ロポリこんちゃん解体新書~Blenderと和解せよ~
VRSNSで利用するアバターを改変したい初心者向けにBlenderの使い方をまとめています。
体の一部を伸ばしたり縮めたり、他のアバターのパーツを貼り付けたりすることを目標にしています。
Unityの使い方やフルスクラッチでのモデル制作には触れません。
全体の流れや僕自身が詰まりがちな点の対処に焦点を当てています。細かい操作方法は省略しています。
本稿は-midori-様のオリジナル3Dモデル「ロポリこんちゃん」をベースに説明していきます。
よく使う基本操作
視点変更
マウスホイールでドラッグで回転、Shift押しながらで平行移動。
テンキーまたは右上の座標系をクリックで正面、真横に切り替え。
モード変更
[ Tab ] または左上のプルダウン
表示変更
[ Z ]
選択
クリック。[ Shift ] 押しながらで複数選択。
全選択
[ A ]
ループ選択
[ Alt ] + クリック。[ Shift ] 押しながらで複数選択。
リンク選択
選択した状態で [ Ctrl ] + [ L ]
移動
[ G ] 、[ G ] + 軸([ X }, [ Y ], [ Z ])
拡大縮小
[ S ] 、[ S ] + 軸([ X }, [ Y ], [ Z ])
回転
[ R ] 、[ R ] + 軸([ X }, [ Y ], [ Z ])
曲げ
[ Shift ] + [ W ]
複製
[ Shift } + [ D ]
オブジェクトの分割
[ P ]
オブジェクトの結合
[ Ctrl ] + [ J ]
オブジェクトの構成を把握する
まず改変したいモデルがどんな構造になっているのか確認します。デフォルトだとBlenderの右上にあるヒエラルキーで確認できます。ロポリこんちゃんだとの2つのオブジェクトで出来ていることがわかります。
・Lowpoly_kon
・light
このままでは耳だけ伸ばしたいのに髪まで引っ張っちゃう……みたいなことが起こるので、編集できそうなパーツごとに分解してみます。
1. Lowpoly_konオブジェクトを選択し、編集モードにします。
2. 任意の頂点をクリックで選択、リンク選択で繋がっている全ての頂点を選択状態にします。
3. この状態でオブジェクトの分割(選択物)を実行します。分割したオブジェクトには適当な名前を付けて、非表示にします。
これを繰り返すことでひとかたまりだったLowpoly_konオブジェクトを個々のパーツに分解できます。
なお、耳や目など分割されているけれど対称性を維持したいものは、左右両側の頂点を選択した後にリンク選択、まとめてオブジェクト化しておくと便利です。
分解したロポリこんちゃんがこちら。
体
服
えり+リボン
耳
耳もふもふ
髪(サイド)
髪(後ろ)
髪(前)
しっぽ
眉、目、まつ毛、舌
このパーツ単位であれば比較的簡単に改変できます。
シェイプキーを把握する
表情などアニメーションに利用されているシェイプキーについても確認しておきましょう。編集モードで一通り選択してみるのがわかりやすいと思います。
オブジェクトを分割した場合、シェイプキーは両方のオブジェクトに引き継がれ、結合すれば両方のシェイプがマージされます。
ので、前述の通り分割したロポリこんちゃんのパーツにはすべてのシェイプキーがついていますが、関係ないシェイプキーは削除しても大丈夫です。
ロポリこんちゃんで設定されているシェイプキーと対応するパーツはこんな感じ。
・Blink_** :体、目、まつ毛、light
・vrc_** :体、舌
・Eye_** :体、目、まつ毛、light。Eye_Angry_Sad_L, Rのみ、眉
・Mouth_** :体、口
・Light_** :light
・Ear_** :耳
・Tail_** :しっぽ
・Brow_** :体、眉
関連するシェイプキーが多いパーツほど慎重に手間をかける必要があります。
シェイプキーは基本の対象に設定されているシェイプからの相対位置になっています。
デフォルトだと基本の対象はすべてBasisなので、Basisを編集すればすべてのシェイプキーに反映されます。
例えばBasisをパッチリ目からジト目にすると、vrc_**でもジト目になってくれます。一方で、Blink_**やEye_**ではジト目に対し元の移動量が適用されるため上瞼が下瞼を突き抜けます。こうなると戻すのは大変です。
「シェイプキーの追加」や「頂点→任意のシェイプキーを選択部に合成」など使いながら丁寧に進めましょう。
シェイプキーと和解する
前述の例の他にも、シェイプキーのある頂点を編集したあと他のシェイプキーに切り替えた時、モデルがグチャグチャになっているシェイプキー爆発などなにかと問題にぶつかります。
問題を起こさないためにはバックアップ用シェイプキーと作業用シェイプキーを作ってしまうと安心です。
バックアップはシェイプキーを追加し、基本の対象を追加したシェイプキー自体にしておくことで可能です。Basisからの相対位置でなくシェイプの絶対位置を保持するようになるので、編集で失敗した際にもこのシェイプキーを合成することで元に戻すことが出来ます。
また、さきほどのジト目にすると目を閉じるときに上瞼が突き抜けるような例でも、ピッタリ閉じた状態をバックアップしておき、Basisをジト目にした後で、Blink_**等にバックアップしたシェイプキーを合成することでピッタリ閉じた状態を簡単に移植できます。
作業用にもシェイプキーを追加し出来上がったものを合成していくようにすれば、最悪削除すればいいのでさらに安心です。
やってしまった時の修復方法にも触れておきます。
「シェイプキーの追加」「任意のシェイプキーを選択部に合成」「シェイプの反映」、これらを駆使して地道に問題の出た頂点を元に戻すしかないです。
基本的には、
1. 問題の出ているシェイプキーで問題のある頂点を選択
2. 「任意のシェイプキーを選択部に合成」でBasisを合成
または、
1. 問題の出ているシェイプキーで問題のある頂点を選択
2. シェイプキーをBasisに切り替え(頂点の選択はそのまま)
3. 「シェイプの反映」
という流れになると思います。
いじくりまわす
ここまで確認できたら、あとは自由に頂点を動かしていきます。
いくつかポイント。
・移動や回転をする時、慣れないうちは視点を正面や真横に切り替えて、軸ごとに行うと良いです。
・左右対象の物を編集する時はXミラーにチェックが入っていることを確認しましょう。
・非表示のオブジェクトでも編集モードになっていると選択・編集されてしまうので逐一オブジェクトモード変えておくと安心です。
他のモデルを持ってくる
他のモデルのBlenderファイルを同時に開きオブジェクトを選択してコピー(Ctrl + C)、改変したいモデルのBlenderでペースト(Ctrl + V)すればインポートできます。お目当のパーツだけ持ってくると楽です。
アーマチュアなどオブジェクト以外のものは不要なので削除しましょう。
その後、
1. 右上ヒエラルキー上でドラッグ&ドロップでコレクションの移動
2. インポートしたオブジェクト→rootの順に選択し、ペアレントの設定(Ctrl + P、オブジェクト)
これでとりあえずヒエラルキー上では1つになります。思う存分編集しましょう。
トランスフォームを適用する
Blenderでアクセサリーを追加してUnityに持っていくと位置も大きさも違っている!ということがよくあります。
Blender上の見た目でばっちり固めたいときはトランスフォームを適用しましょう。
なんのことかよくわからなくても編集が終わったら最後のおまじないにやっておくと安心です。
ウェイトを把握する
ウェイトはボーンの動きに追従する度合いです。胸のリボンを頭に移動したり、他のモデルのアクセサリーを持ってきたりしても、そのままでは動いたときにおかしくなります。適切なボーンに紐づける必要があります。
紐づけは頂点グループで行なっています。
頂点ごとにボーンの名前がついた頂点グループに対し0〜1.0の重みが振られています。
頭につけるなら、頭のボーン名(ロポリこんちゃんならhead.x)の頂点グループにウェイト1.0で割り当ててしまえばとりあえず頭と一緒に動いてくれます。
服の着せ替えなど関節にかかるオブジェクトを追加した場合は、関節に近いほど強く、離れるほど弱く影響するように調節する必要があります。
すべて手作業では大変ですが、自動でウェイトを付けることもできます。
1. 移動・移植したオブジェクト→rootの順に選択し、ペアレントの設定(Ctrl + P、アーマチュア変形>自動のウェイトで)
自動ウェイト設定でもある程度はなんとかなっているので、まずはやってみるのがいいと思います。それで十分ならよし、満足できなければウェイトペイント頑張りましょう。
他のモデルからオブジェクトを持ってきた場合、プロパティにモディファイアー「アーマチュア」が追加されていることを確認しましょう。なければ追加して対象のアーマチュア(ロポリこんちゃんだとroot)に紐付けます。
オブジェクトを結合する
最後に、分解したパーツをもとの通り結合すれば完成です。
分解したすべてのオブジェクトを選択し、Ctrl+Jで結合します。
最初と同じ名前のオブジェクトだけ残っている状態ならばUnityでの作業がデフォルトと同じようにするだけなのでわかりやすいです。
長文、雑文になってしまいましたが、皆様の改変活動の一助となれば幸甚です。
良きこんちゃんライフを。
この記事が気に入ったらサポートをしてみませんか?