kuuta改変目録
前記
何かと気ぜわしい季節となりましたが、いかがお過ごしでしょうか。
VRで春夏秋冬せわしなく過ごすか、常温に設定された室内でぬくぬくと生活している日々をくうたくんに囲まれ、バーチャル生活のQoLが爆上がりしているちーと申します。
某配信者の影響によりVRChat、ひいてはくうたくんを使用するユーザーも多く増え、先日行われた #くうたくん集会 では6インスタンスがほぼ満員と大盛況に終わり、視界一面がくうたくんに埋まる日々を夢想していた新参者の自分としても大変喜ばしい有意義な時間となりました。
さて、くうた集会では様々な装いに身を染めたくうたくん達が一堂に会していましたが、普段から改変に意欲的な方々が多い印象です。
そこで本稿では、
くうたくん(自分のアバター)をより可愛くしていきたい!
に焦点をあて、自分の持ち合わせている情報を提供することで、読んでいただいた方の改変の一助となれるよう尽力させていただきたいと思います。
アバターのアップロード方法や着せ替え部分は省略しています。
(説明しているものがいっぱいあるので)
完全初心者の方はこれをみてね ▷
使用シェーダーはliltoonです。
Unityの技術面に関しては理解が不十分な点が多くあるため、有志が配布/販売しているツール類の使用,別Noteの閲覧を推奨しているNoteとなることを前述しておきます。
くうたくんをメインで利用しているためくうた基準で書いていますが基本的にどのアバターでも利用可能なことしか書いていないと思います。
また、あくまでも個人的な見解と使用法で構成されているので正解、完全体とは到底程遠いものです。共に追求していきましょう。
World : Magic Heist - Fins
https://vrchat.com/home/world/wrld_c3e69a3a-508d-48e0-9289-0472b898804c/info
w/ えびねこた。、こんこんにゃくにゃく
World : Shoegaze Apartment - VVolfy
https://vrchat.com/home/world/wrld_6364fa61-1ba6-4333-b8a3-566ca813d12d/info
World : take a bite - hidaka_
https://vrchat.com/home/world/wrld_a612e8ae-ede3-4c26-9ce8-4a23aef65782/info
Unityについて
よく使う名称一覧
Inspector - 選択したオブジェクトの設定をいじる欄。MaterialやBlendShapeはここからいじる。
Project - importしたアセットを選択する欄。FBX、Prefab、Material、Textureをフォルダから選べる。
import - UnityPackageをUnityプロジェクト内に導入すること。
Asset - UnityPackageによって導入したもの、アバターや髪や服など。
Hierarchy - Scene内に存在するオブジェクトを管理する欄。ボーン、メッシュを選択できる。
Scene - アバターが表示されている欄。
Game - MainCameraから見る欄(InGame時の描画により近い)
Animation - 1フレームごとにシェイプキーやボーンが入力され動いているように処理されたもの。また、上記の入力を行う欄。
Animator - Animationの遷移を指定する欄。
ボーン - Armature-Hips-Spine-Chest-Neck-Headを軸に、腕部位(Shoulder-Upper Arm-Lower arm-Hand-各手1-2-3)と、足部位(UpLeg-Leg-Foot-ToeBase)が左右にある。アバターが動くための骨部分。
メッシュ - Armatureの下にあるBodyやHair、Clothなど。アバターのガワ部分で、選択するとオレンジにハイライトされる。
シェイプキー - BodyやBody2を選んだ時にInspectorに表示されるBlendshapesのこと。これで表情の調整や服の干渉を防ぐシュリンクをする。
FBX - Blenderなどの3Dソフトで作られた3Dmodelのこと。
Prefab - 3DモデルにマテリアルやPhysboneを追加しセットアップされた保存データ。めんどくさい過程を作者がやってくれたもの。
Material - FBXに色や質感を乗せる丸い画像アイコン。ShaderやTextureを設定したもの。
Shader - 質感を表現するもの。本稿ではliltoonを用いる。
Texture - FBXに色を乗せるために塗られた2Dデータ。
改変にあると便利なツール
Modular Avatar - 色々自動化。必須ツール。
FaceEmo - 表情作成が手軽。Prefabなので非破壊的。
GestureManager - ゲーム内での動作をUnity上で確認できる。必須ツール。
FloorAdjuster - 厚底の靴を使用したときに床に埋まるのを防ぐ。
lilAvatarUtils - TextureやMaterialなどを一括で確認できる。軽量化に便利。ライトの当たり方を見る欄もあるので発光のチェックにもいい。
AvatarMenuCreator for MA - 衣装のON/OFFやマテリアルやシェイプキーをゲーム内で変えたいときに簡単に設定できる。
MeshDeleterWithTexture - 衣装の一部分だけを使いたいときや貫通したとき、Blenderを使わずに消し飛ばすのに使う。テクスチャがどこの部分なのかが視覚的にわかるのがでかすぎるのでおすすめ。
AvatarOptimizer - 軽量化。必須ツール。
アバターについて
BluePrintID
アバターにはBluePrintIDという英数字の羅列でアバターの情報をセーブしているIDがあります。一度SDKからアップロードすることで決定され、そのIDによってアバターが区別されています。
新しく改変を行うとき、衣装や髪型を以前の物からちょっと変えたいくらいの時は前のアバターをCtrl+Dで複製して利用した方が早いのですが、複製しただけだとBluePrintIDが同一のため、同じアバターとしてアップロードされる、またはエラーがでてアップロードできなくなってしまいます。
くうたくんのPrefabをSceneに出したときにHierarchyに表示されるKuutaやKuuta_color_Bを選択してInspectorに表示される▽Pipeline Manager (Script)にBlueprintIDが記載されており、ここのDetach (Optional)を押すことでBlueprintIDがリセットされます。
軽量化
アバターが重いと読み込みが遅いし人によっては見えない設定にされるので、なるべく軽量化していると偉いです。気にしない人は気にしませんが気にする人はすごく気にするポイントです。今後イベントであったり、それこそアバター集会などいろいろな人が一堂に会するものに参加する予定がある場合は積極的に軽量化しましょう。
凝った改変のクオリティを維持しつつMediumGoodまで下げるのは正直大分無理がある部分でもあるので、VeruPoorの中でも軽く、~20MBを目指せたら世界に優しいアバターと言えるのではないでしょうか。軽量化の要点としては、
・テクスチャ容量 - Textureが何枚使われているか、一枚あたりの解像度など
・Physbone数、コライダー数 - 揺れもの、揺れものを制御する当たり判定(Collider)の数
・ポリゴン数 - 3Dmodelを構成する三角面の数
・Bounds - そのメッシュを見えるようにする範囲
・Materialスロット数 - Materialを使用している数
が挙げられます。
最近販売されている服は全体的なクオリティ向上の波に乗り続けているため、ポリゴン数もテクスチャ容量もクソデカいものが多いです。そのまま使うと50MB超える服も結構あります。可愛さをとるか利便性をとるか難しいところですが、一部のパーツしか使わない服であったり、質感をそこまで重視するつもりがないのであれば、なるべく削減していきましょう。
説明すると長いので詳しく説明してくださっているしいなず氏のNoteを紹介させていただきます。
改変①色味を変えたい!
くうたくんはデフォルトで灰髪青目の1Pカラーと黒髪金目の2Pカラーが用意されています。
しかし自分の半身もしくは魂の器であるアバターたるもの、自分の好きな色で満たしたいと思う方が大半ではないでしょうか。
地の色を変える
Unity内、Liltoonの設定でメインカラーに乗せたテクスチャは、
【簡易設定/詳細設定】▽メインカラー/透過設定▽色調補正のところから色相、彩度、明度、ガンマを変更することができます。
①HDRはテクスチャの上から色相環から選択した色を乗せる色の変わり方、(真っ黒の部分以外色が乗る)
②色相はすでに色が乗っている箇所の色がバーを動かした数値分変わる(無彩色(白灰黒部分)は色が乗らない)ようになっています。
彩度、明度、ガンマは自分好みに調整するよう自由につかいましょう!
焼きこみを押して保存することで色の変更が画像で保存されます。
☝これをしていないとShowAvatarしてもらわないと色が元に戻って見えます!
Make / eye textureを変える
Bodyを選択して、Bodyマテリアルの設定上部を詳細設定に切り替えて、【詳細設定】▽メインカラー/透過設定を開くとメインカラーの下に▽メインカラー2nd、3rdがあります。これにチェックを入れると顔面が真っ白になります。
テクスチャを入れる枠に使用したい透過済メイクテクスチャ/アイテクスチャを入れるとテクスチャが反映されます。
☝これも焼きこみを押していないとShowAvatarされていない時見え方が変わります。
!透過できていない場合顔面が白いままになります!
▶メイク/アイテクスチャが透過できていない場合
透過できていないテクスチャをProjectタブから選択して、Inspectorの
▽Advancedの上にあるAlpha Is Transparencyにチェックをいれ、右下のApplyを押すと画像を透過することができます。
Unityだけで眉毛の色を染める
髪色を変えたとき、色によっては眉だけ白いと結構浮きます。眉の色変えるの意外と大切です。
【簡易設定/詳細設定】▽メインカラー▽色調補正にあるマスクに、以下のテクスチャを導入して、グラデーションマップの数値を0より上にすると色が選択できるようになります。
①Testを押すことでくうたくんに仮反映されます。
②Saveでテクスチャに焼きこまれて、眉の色を変えることができます。
改変②表情を変えたい!
最強ツールFaceEmoのススメ
くうたくんは表情がアニメーションで細かく制御されていて、顔の表情シェイプキーをいじるだけでは殆ど反映されません。また、表情の遷移を制御するアニメーターが複雑なことから、普段の表情を変えたいとき、デフォルトに用意されていない表情を作りたい時などに大変なため、表情をしっかり変えたいときは個人的にFaceEmoやAvatarEditorを利用することをおすすめしています。
一応述べておきますがデフォルトのアニメーションを否定する気は一切ありません!!!
❕欠点❕
FaceEmoは元の表情アニメーションを無効化して新しく構築しているため、ぷるぷるとした瞳の動き、表情ごとの数秒の顔の動きは全てなくなってしまいます!
かわりにとても簡単
表情のアニメーションを残したまま顔を変えたい場合は改変⑤を参考にしてください。
公式の指示通り導入したあと、Inspectorのアバター名の右側にEMOのアイコンが表示されます。アイコンをクリックするとFaceEmoが起動し、元のくうたくんの表情のアニメーションが用意されたタブが開きます。
①新規アニメーションファイルを作って表情を作成
②2つのアニメーションを合成
③ファイルからアニメーションファイルを選択できる。下のミ▲の欄にアニメーションファイルをドラッグ&ドロップしても有効化可能
④既存のアニメーションを調整
真ん中の欄、表情パターン1-4にあるデフォルト表情を変更にチェックを入れると、Bodyで弄ったシェイプキーが反映されたサムネイルが作成されます。
右の欄には各手に設定された表情がサムネイルごとに表示されていて、デフォルト表情で大きい数値のシェイプキーが反映された状態で表情が作成されています。
上画像の例のように目が埋まってしまっているなど、うまい事表情が出来ていなかった場合は、表情のサムネイルにカーソルを合わせて④のペンマークから編集が可能です。
表情の編集が完了したら右下のアバターに適用を押すことで、FaceEmoPrefabがアバター直下に作成されます。
改変③質感を変えたい!(シェーダー設定)
影の色を変える
【簡易設定/詳細設定】▽メインカラーの下にある▽影設定を開くと影を設定する画面が表示されます。
くうたくんのデフォルトの設定では①影色、境界色が濃い目に設定されていて、赤みがかった肌になっています。
自分は色白系が好きなので下画像のように全体的に①影色の彩度を下げて、②の数値をより薄くぼけるように設定しています。
#D4C5C9
#C59BA6
#C2BECC
#FF7A5F
#E2E2E2
#E0E0E0
影の設定がどのように見えるかを確認するときは、Scene上部にあるライトのアイコンをクリックして青に光った状態にしたあと、HierarchyにあるDirectional Lightを回転してみてください。
Directional Lightは太陽光の役割をはたしていて、デフォルトでは若干黄みがかった明かりを全体にあてています。移動させても変化がなく、回転させることで光の向きを変更することができます。
RimShadeを変える
【詳細設定】▽RimShadeにあるRimshadeは物体の縁に常に影をつける役割を果たしています。質感が一気に立体的になるのでお好みでどうぞ。くうたくんはデフォルトで搭載されています。自分の設定だと若干薄紫寄りに変更しています。
好みで外してもいいんじゃないでしょうか。
#AD9EA1
#655F6A
輪郭線を使ってみる
くうたくんはデフォルトだと輪郭線の設定がなしになっています。そのまま輪郭線をONにすると目の周りや口元に線がはいってしまって、怖い印象になってしまいます。【簡易設定/詳細設定】にある▽輪郭線を開いて、下のMaskを◎マスクと太さの横のテクスチャ欄にドラッグすることで適用されます。
質感いろいろ
【詳細設定】にある触ると楽しい設定たちです。
ノーマルマップ設定 - 質感や服のしわなどの凹凸を表現するテクスチャとその設定。数値の絶対値を大きくするほど凹凸が強くなります。
影や逆光、マットキャップ、リムライトなどのシェーダー設定が全部のるのでめちゃめちゃ大事です。
のっぺりした服もノーマルを入れるだけで質感が変わります。UVに合わせたものが一番いいですがシームレスなNormalMapを入れるだけでも違いがわかるかも。
固有の商品をおすすめする意図はありませんがこういうので試してみてもいいかも。
発光設定 - くうたくんのデフォルトだと瞳全体が光る仕様。
アイテクスチャによっては発光用のマスクテクスチャが入ってたりするので色々使ってみると楽しいです。
逆光ライト - しなのちゃんで使われてから一気に普及した感のある後ろから光が当たっている感じのライト。
後述するMisoshadowなどを用いなければワールドの光源に依存します。
長くなったので後で記述してます。
マットキャップ - 光や色の質感をテクスチャで追加することができる。
金属のテカリを追加するのによく使います。
明暗の追加に使えるしマスクがあるおかげで汎用性めちゃめちゃ高いのでliltoonの2個の枠じゃ全然足らないです。ぽいよみはいっぱいある。
自分のくうたくんの肌はMatcap抜きにしてるけどあってもかわいいです。服とか髪とかは使えば使うほどいいとされています(諸説あり)。
白い服に使いました
髪につかうといい感じです
光沢設定➤反射 - 光沢を追加できる。金属の質感表現向けだと思いますがMatCapと同じように色の情報量の追加に使うとイイ感じ。
いろいろいじってみてください
リムライト - 光が周り込み、ものの輪郭だけ明るくなるライト。
ほぼワールドの光源に依存せずオブジェクトの輪郭を光らせるので良い感じのライトになります。
逆光ライトと一緒に軽く説明してます。
自分は肌は乗算にしていて、ライト方向の影響度を1にして赤みをちょっといれてるかんじです。たぶんほぼ影と同じ使い方してます。ライト方向の影響度を0にすると光源にかかわらず縁取る入り方になります。
逆光ライトについて
【詳細設定】▽逆光ライトにチェックをいれると効果がつきます。①HDRから色をいじると後ろから様々な色が当たっているように変更できます。
ここでポイントとして、HDRを開いて一番下のIntensityの数値が1のままだと殆ど発光がありません。Intensityの数値を上げることで発光色になり、ビカビカになります。おすすめは~4.0程度で、あまりに強くするとワールドによっては光輝きすぎて下写真のようになります。荒らしアバターと化すので気を付けましょう。
②影を受け取る、裏面で無効化をONにすると髪や服の内側でビカビカするのをある程度防げます。③範囲で逆光ライトの範囲を選択することができます。指向性は0に近いほど逆光ライトの色が強くなります。数値を上げるとワールドの影響や視点の影響が強くなりふわっとぼけた感じになります。
視線方向の影響度は斜めから見ると分かりやすく、光源から斜めに光が入った時の範囲の広さが変えられます。
【詳細設定】▽ライティング・明るさ設定 - 拡張設定 - ライト方向のオーバーライドのX/Y/Zを動かすことで、アバターの光の当たる方向が指定でき、逆光ライト、リムライト、影などの位置を変えることができます。これを、Scene上部ライトアイコンを有効にしDirectional Lightを動かしながら調整することで、逆光、影の方向を指定することができます。
▶逆光ライトとリムライト
逆光ライトとリムライトはどちらも光らせる効果がありますが、逆光ライトは”光らせる範囲が逆光になる位置にある時に光る”、リムライトは”光らせる範囲が常に縁どられて光る”という違いがあります。逆光ライトは光る範囲を決めていて、リムライトは常に輪郭だけが光る感じです多分。
自分のくうたはリムライトも乗算に変更して影として利用して、正面から見たときに一度暗くなった後逆光が強く入る設定になっています(下図上の感じ)。好みによりそうです。
FixLightingを絶対しよう❕
髪や服を変更したとき、暗いワールドやランプなど光物が置いてあるワールドで一部だけが光ったり暗かったりする場合、各メッシュのAnchor Overrideという設定が、アバターのAnchorOverrideとずれていることが原因として挙げられます。
また、上記の逆光ライトや影の設定を変えてもワールドの色味の影響を強く受けていて違いがあまりわからない・・・ということがあります。
これらを解決するのがliltoonに搭載されているFix lightingという機能です。
これを押すだけでアバターのAnchorOverrideが一括で揃えられるため、部位ごとに明るさが違うといったチグハグがなくなります。
また、Fix lightingを押すことで、【詳細設定】▽ライティング・明るさ設定にある
・明るさの下限 - ワールドの暗さにどこまで順応するか
・明るさの上限 - ワールドの明るさにどこまで順応するか
・ライトのモノクロ化 - 1にするとライトの明度しか影響をうけず、白いライトを受けている状態になり、0にするとワールドのライトの色味を全て受ける
・(Unlit化 - 影の無効化に近づける)
・(頂点ライトの強度 - 頂点ごとのライト計算の反映度・・・?)
が一括で設定されます。
Fixlightingしたときにどの数値で揃えるかを指定するには、
【シェーダー設定】▽初期値(Fix Lightingやライティングプリセットに使用)にあるFix lightingの設定を調整する必要があります。Applyを押すことで設定が保存され、Fix lighting時に全メッシュに適用されます。
押すだけなのでみんなしてください。
わたくしは常に光りたいしあまり肌の色の影響うけたくないので下限0.2でライトのモノクロ化0.6にしてあります。モノクロ化1だったっていい。
下記のLLC使ってたら関係ないです。
距離クリッピングキャンセラーと距離フェード
・距離クリッピングキャンセラー
突然ですがなでなでされたことはありますか?
VRCHATにおける一種の文化として、なであいコミュニケーションが存在しています。しかし、ワールドによっては顔の前に手や顔が来た時貫通してメッシュの中身やその向こう側が見えてしまい、残念な気持ちになることがあると思います。
その場ではVRCHATの設定➤グラフィックスの一番下にあるカメラのニアクリップ距離の上書きをダイナミックにすると改善されますが、
【シェーダー設定】▽シェーダー設定(全マテリアル共通)の距離クリッピングキャンセラーにチェックを入れておくことで、アップロードされるアバターがガチ恋距離まで貫通しないようにすることができます。互いに設定しておくことでなでなでのストレスが軽減されます。
チェックいれるだけなのでみんなしてください。
・距離フェード
【詳細設定】の下部、拡張設定にある▽距離フェードの強度を0.001以上にすることで、近づいたときに指定した色に変化するように設定が出来ます。
これを暗い肌色、強度0.7~に設定することでなでなでやガチ恋距離の質感がブチ上がります。
くうたくんはデフォルトで設定されていますが改変した場合は追加したアセットにもしっかり適用してください。
設定を複数の場所に適用する(プリセット登録)
これまで記述した設定は各マテリアルで揃えることで統一感がでます。各欄にある歯車マークをクリックするとコピー&ペーストができますが、一個一個コピーしておいて全部にペーストしていくのも面倒です。しかもマテリアル一つ一つ同じ設定にしていくのはめちゃめちゃ面倒くさいですよね。そこで役立つのがプリセットです。
メッシュからマテリアルを選択
方法①Inspector-Materialの欄右端の3点リーダをクリックしてSelectMaterialをおすとProject欄のMaterialの収納されている位置まで飛ぶことができます。
方法②Inspector-MaterialsのElement 0~をクリックしてもProjectのMaterialに飛べます。こっちは選択と同時にScene上でアバターのマテリアル適用先が赤くハイライトされるのでわかりやすいです。
Projectの黄色くハイライトされたMaterialをクリックした状態で、inspectorの【プリセット】右下のプリセットを保存を押すと[liltoon]Preset Windowが開きます。
適当に名前をつけて、▽保存対象をひらくとliltoonの詳細設定の一覧が表示されます。この中から、プリセット登録したいものにチェックをいれ、一番下のSaveを押すと.asset形式で保存され、プリセットに保存されます。
マットキャップを登録していると、マットキャップ2ndまでで金属などの特有の質感を再現している場合変なことになりがちです。あんまりおすすめしないかも。
各マテリアルの【プリセット】から保存したプリセットが実行できるので、揃えたい部位で実行していくと質感がそろいます◎
Light Limit Changer、MisoShadow諸々
LightLimitChangerを入れておくと、上記で行った明るさの下限、モノクロ化などの設定をゲーム内で自由に調整できるようになります。ワールドやフレンドの明るさに合わせることができるので、一人だけ明るい…暗い…ということがなくなります。
課金版LLCv2では逆光ライトの設定までいじれます。すごい!LLCv2にすると下の調整系と重複して使えなくなるので要注意ですね。
MisoShadowは、デフォルトでは影がトゥーン調になり影の方向を決められるというアセットですが、影の設定を自分で作ったものに変更することで、自分の設定のまま影の方向を決めることができます。
特に逆光ライトを使っているときにあるとめちゃめちゃ助かります。逆光ライトはワールドの光源に依存しており、角度によっては逆光ライトの白縁が出来たり出来なかったりしてしまうのですが、MisoShadowを入れることで常に真後ろや横から光を浴びている状態にすることができ、正面からみると常に逆光が当たっている神々しい姿になることができます。
__________________________________
Misoshadowの逆光制御だけを使う方法(1/24追記)
MisoShadowの影がトゥーン調になる効果は改変や好みによってはあまり合わなかったりするので、自分は影設定部分を消して自分でつけた影設定になるようにしています。
Misoshadowがずっと使えてなかったのでやっと追記できました。
①MisoShadowをアバター右クリックのサブメニューから適用
②できたMisoShadowオブジェクトを選択して統合されるアニメーターをクリック
③Projectタブに開かれたMisoShadowの中身から、Shadow_Strength_アバター名のアニメーションを選択し、アニメーションタブから中身を全部消す
アニメーションタブは開いておいてください!Shadow_Strengthを選ぶと全部のマテリアルの影色が指定されているため、Ctrl+Aで全選択して右クリック➡Remove Propertiesで中身を全部消せます。
この方法だとExpressionMenuにShadow_Strengthのタブが残ってしまうのでパラメータ等気になる方は各自で調整してください!これで逆光とデフォの質感の影がクルクルできるようになります。
アバターにアセットを追加するたびにやらないとMisoShadowが追加したオブジェクトに適用されないので、改変の最後の最後にFixlightingと一緒にMisoShadowを適用してアニメーションを消すことをおすすめします!
__________________________________
逆光系に関してはいろいろでてるみたいです。これのほうが楽かも?
改変④前髪の影をつける
①FakeShadow
くうたくんはデフォルトの髪にHair_FakeSというマテリアルが設定されています。これによって、デフォルトだと前髪に影がついています。かわいいですね。
これはこの前髪専用のものではなく、髪の毛に大体つけられます。ざっくりと説明すると、影を付けたい髪型の前髪の部分を選択し、InspectorにあるMaterialの右下+ボタンを押すと、Element 1であったりElement 2だったりと名前が付いた枠が増えます。
ここにくうたくんのHairMaterialのところにあるFake_Sをドラッグして設定する(上記のSelect Materialの方法でProjectのマテリアルの場所にとんでください!)と、できたりできなかったりします。
▶できなかった場合
自分もよくわかりません。lilFakeShadowの設定いじり倒したら出来たり出来なかったりします。難しいです。
こんな雑な説明よりbokuseiくん作者のrokota氏のnoteをみてください。めちゃくちゃ丁寧に説明されてます。
②メッシュで影を再現する
①のFakeshadowが出来なかった場合はこの方法でも可能です。eni氏がしっかり説明してくださっているので紹介させていただきます。
ざっくりいうと前髪のメッシュを複製して、同じ動きをするものをちょっと位置をずらして半透明の影としてつかう感じです。
☝つかうよ
改変⑤表情アニメーションを残したままデフォルトの表情を変えたい!!
Unityのみ
表情アニメーション自体を調整する方法です。
くうたくんのアニメーションは凝っているのでちょっと大変ですがこれができれば大抵のアバター表情改変ができます。
①FXレイヤーをAnimatorにいれる
くうたくんの親を選択して▽VRC Avatar Descriptor(script)▽Playable LayerのFXにあるコントローラー『FX_Kuuta』をクリックするとProjectタブがFX_Kuutaの場所に飛びます。これをAvatarDescriptorの上にある▽AnimatorのControllerにドラッグドロップします。
②Animationタブ作成→編集
各タブの右端に縦三点リーダがあるのでそこからAdd tab→Animationを押して、Animationタブを用意します。
最初はdummyが選ばれているはずなので、右の▽を押して編集したい表情の名前を選びます。
Previewを押すと変なポーズになりつつ表情のプレビューがでます。
Previewの隣にある赤丸を押すと録画ができます。これを押している間に行った変更がすべて録画されるので、シェイプキーの数値を入力します。
動かしているシェイプキーの数値をコピーして録画で入力していきましょう。
くうたくんは数フレームつかって表情がかわるので、すでにアニメーションで制御されているシェイプキーをいじった場合、元のアニメーションに合わせてシェイプキーを打ち込みまくる必要があったりします。
▶表情自体は新しく作っていて元のハンドジェスチャーに差し込みたい場合
上記の録画の方法やFaceEmoやらなんやらでつくった表情アニメーションをデフォルトのアニメーション遷移に入れたい場合です。
Animatorタブを用意
Unity画面上の白い欄のWindow→Animation→AnimatorでAnimatorタブを開きます。
Animatorタブ[USER EDIT] FACE EMOTE PLAYERをおして、右の記号がいっぱい並んでいるところのIdleからLEFT HAND ASSIGN 4までが表情を制御している部分です。
例えばRIGHT HAND ASSIGN 1を開くと EMOTE 1 FIST RからEMOTE 7 ThumbsUp Rまでがあり、EMOTE 1 FIST RをクリックするとInspectorにMotionの欄が表示されます。ここで選ばれているアニメーションが、Emote1を選択したときの右手のFist(デスクトップなら右Shift+F2)の表情となります。
ここのミ▲を差し替えることで表情が変わります。
デフォルトの表情を変えたい場合は、上図オレンジ色のIdleを編集すると基本の顔(デスクトップなら左右Shift+F1)の表情が変更できます。
Blenderを使用(簡単!)
【Unity】
くうたくんのパーツを選択して、▽Skinned Mesh RendererのMeshにあるパーツをクリックするとProjectでFBXの欄が開かれます。ProjectにあるFBXを右クリックし、上から二番目のShow in Explorerを押すと、FBXが保存されているファイルの場所が開きます。
【Blender】
Blenderを開いたらAキーを押した後DelキーまたはXキーを押して場に開いてあるものを全部消してください。
開いたKuuta.FBXをBlenderにドラッグアンドドロップするとSceneにKuutaくんがでてきます。
Faceを選択して、右の欄の左側、カラフルなアイコンの緑逆三角を選択するとシェイプキーという欄があります。ここはUnityではBlendShapeの部分で、シェイプキーを登録、編集することができます。
Unityと同じようにシェイプキーをいじって、右の▽から新規シェイプをミックスから作成を押すと、いままでいじったシェイプキーが一つに統括されたシェイプキーが新しくできます。
シェイプキーの1番下にキーxxができるので、ダブルクリックするとリネームができます。
キャラクター全体を表示した状態で、画面左上のファイルを押してエクスポート、FBX(.fbx)を選択します。
適当なところに.fbxをエクスポートします。Project内の.FBX(インポートしたときのデータ)を上書きして更新すると失敗してた時面倒なので別で取っておくと良いです。
‼エクスポート時の設定‼
FBXをエクスポートするときの設定をデフォルトから変えないと、Unityにもっていったときに存在が消えたりぐちゃぐちゃになったりします。四角で囲ったところを必ず一緒にしておいてください。
2/10 追記
スケールを適用がすべてFBXだとくうたくんきえちゃいます。
FBX単位スケールでExportしてください。
元のFBX(Proejctファイルに入っているもの)をデスクトップ上だったりバックアップ用のフォルダなどにコピーしておいて、編集済みのFBXを元のProjectファイルのKuuta.FBXに上書き保存(名前を変えない!!!)すると、Unity内のくうたくんが更新されて、うまくいっていればシェイプキーが追加されています。
くうたくんのアニメーションでは既存のシェイプキーのみが制御されているため、新しく追加したシェイプキーはアニメーションに含まれておらず、
追加シェイプキーの表情を維持したまま表情アニメーションが遷移するようになります!
▶表情破綻するんだけど・・・
まばたきシェイプキーや目が開く系のシェイプキーをしっかり入れているともとの表情アニメーションのままだと破綻(瞼が陥没したり半目になったり)することがあります。修正方法は大体3パターンです。
もっとあるかもしれませんが自分はこの選択肢しか思いつかないかも。
①上記【Unityのみ】で説明したアニメーションの調整方法をつかって破綻しないよう調整する
大体まばたき100になったときがおかしくなるので、その瞬間だけ作ったシェイプキーの数値を戻すか、逆にまばたきの数値を下げるかして直しましょう。
②元の表情アニメーションをあきらめてFaceEmoとか手作業とかで表情を作り直す
くうたくんのような表情アニメーションが凝っているアバターのみの悩みなのでほかのアバターなら大体これです。
③Blenderでまばたきや笑顔などの破綻するシェイプキーの上限下限を変更する
自分はこれで修正していることが多いです。
Blenderでシェイプキーを選択すると下に最小範囲、最大というのがあります。デフォルトだと0.000から1.000で、これはUnity上だとデフォルトの0-100と同一です。
例えば、Blender上で最大範囲を0.700にすると、UnityのBlendShapeで100にしたとき、デフォルトBlendShapeの70と同じまでしか動かなくなります。
まばたき系アニメーションは基本0-100で制御されているので、100にしたときに破綻してしまうなら、70の具合を100とすることで破綻しないようにしよう‼という戦法です。アニメーションいじるの面倒なのでこっちのほうが楽です。
この戦法やシェイプキーをミックスで追加する方法は、表情アニメーションでまばたきが制御されておらず、VRChatの自動まばたきを使用しているアバターにも有効です。FaceEmoを使うとまばたきONにしている場合自動まばたきになります。
自動まばたきは、アバターの親オブジェクトを選択したときのInspectorにある▽VRC Avatar Descriptor(Script)▽EyeLook - Eyelids (Eyelid Type Blendshapeのみ)▽Blendshape StatesのBlinkで制御されており、ここで選択したシェイプキーが0→100の挙動になります。
改変済みの目にあったシェイプキーを新しく追加したり、元のまばたきのシェイプキーの上限の数値を変えてここで選択しておくことで、自動まばたきの破綻が抑えられます。
改変のたびに目の形を変えている人はシェイプキーを追加していくほうが楽だと思います。
まばたき用シェイプキーを新しく追加してあります。
改変⑥髪型を組み合わせたい!!
みんなとちょっと違う髪型にしたいときはパーツごとに組み合わせるようにすると一気に改変の幅が広がります。
① 髪型を選ぶ
使いたい髪型のPrefabをだしたあと、くうた対応ではない髪の場合、Armatureの位置やサイズを変えて位置を合わせます。
② 使いたいパーツを選択
一部だけにしたことで隙間が空いた場合は適宜サイズや位置を調整しましょう。どうしても埋められない空間ができる場合や、メッシュが分かれていない髪の場合は②´をみてください。
②´ メッシュ分かれてないけど一部だけ欲しい
髪型によってはパーツ分けが一切されていないものもあります。一部だけが欲しいときはMeshDeleterを使うのが便利です。Blender使えるならBlenderのほうがいいです。
MeshDeleter With Textureをインポートしたら、Unityの上の白い欄にGatoToolというメニューが追加されます。ここにあるMeshDeleter With Textureをおすと新しいタブが開かれます。Rendererの枠に消したいメッシュがあるオブジェクトをドラッグドロップします。
MeshDeleterはUVマップが表示されるので塗り絵の要領で消したいところを塗りつぶしましょう。できたらDeleteMeshを押すことでメッシュが削除されます。DeleteMeshが見つからない方はタブを大きくしてください!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
③ 色を合わせる
違う色の髪を同じ色に揃えたいとき、元のテクスチャのまま目測でそろえるよりも、一旦白黒(グレースケール)のテクスチャにしたあと改めて色を乗せるほうがうまくいきます。
彩度を0にして、白とびしない程度に明度とガンマを調整して、前と後ろで明暗の差がほとんどないようにします。できたら焼きこみを押して白黒テクスチャをつくります。
④質感をあわせる
質感をそろえたいほうのマテリアルを複製して、テクスチャとノーマルマップだけそれぞれの髪型のものにすると、影設定、Rimshade、リムライト、その他もろもろの設定をそろえることができます。
今回は前髪のマテリアルに揃えます。まず、使いたい髪型のマテリアルの場所に飛び、マテリアルを選択してCtrl+Dで複製します。
複製したマテリアルをそろえたい髪にはめます(今回は後髪部分)。事前に元の髪のテクスチャの位置を把握しておくとすごく楽です。Projectタブを複数用意しておいて、ロックを使うとマテリアルを開いたProjectとテクスチャを開いたProjectが用意できます。
変えたい髪に複製したマテリアルを適用して、テクスチャとノーマルマップを元の髪のものに戻します。
質感揃えたら色全然違ったので修正します。ついでに襟足の前側MeshDeleterで消しました。多分マテリアルを先に揃えるほうがいいですね。
⑤好きな色に変える
複製したマテリアルなので、一気に編集することができます。
Projectからマテリアルを複数選択(Ctrlを押しながらクリック)して、▽メインカラーのHDRから好きな色にします。
— 完 —
プリセット登録したいつもの設定にすると、こう。
よくきかれるやつ
改変したのにVRCHATにもっていくと反映されない
(Unity上ではできてるのに・・・)
①表情が反映されない
顔の表情シェイプキーを頑張っていじっても、VRChatにもっていくと既に設定されているアニメーションのシェイプキーが優先されます。これは【改変⑤Unityのみ】で説明した録画のところで、使っていないシェイプキーを0で録画して表情を作成されていると必ず起こります。
マヌカちゃんなどがいじったシェイプキーがそのまま反映されるのは、デフォルトのアニメーションの中に表情シェイプキーが最低限しか入力されていないためです。
Unity上ではGestureManagerを使用した場合に同じように表情が元に戻ってしまうと思います。
解決方法としては、
・デフォルトのアニメーションファイルを調整する
・FaceEmoなど元のアニメーションをいったんなくすことから処理を
行っているものを利用する
方法が選択されます。改変②と改変⑤をみてね。
②体の一部が細くなる、胸が小さくなる
これもアニメーションが優先されているためです。シフォンちゃんなどでよく聞かれます。デフォルトの服をきれいに着るためにアニメーションで制御されているため、先にアニメーションを切ってしまいましょう。
アニメーションやアニメーターを理解していないうちからParameter類をいじるのは嫌だと思うので、簡単で非破壊的な方法で解決したいと思います。
①FXを開く
▽AvatarDescriptor▽Playable Layers - FXをクリックしてProjectをFXのファイルの場所にします。その後FXをダブルクリックしてAnimatorを開きます。
②AnimatorからいらないアニメーションのWeightを0にする
Animatorを開いたらLayersであることを確認して、消したいアニメーションの右にある歯車をクリック、開いたメニューのWeightを1から0に変えます。Weightを0にできているとBreast sizeの下の白線の色が暗くなります。
Weightを0にすることでアニメーションが発動しなくなるため、Unity上でいじったものと同じ状態にできます。
ただし、ExpressionMenu(緑のリングメニュー)には表示され続けるので、使えないアニメーションが存在しているのが気になる人、もっとちゃんとアニメーションを触ってみたい人は、
Ran_kotonoha氏のNoteを参考にしていくとよいと思います。
MeshDeleter使ってもメッシュが消えない・・・
MeshDeleterのタブを大きくして下部にあるDeleteMeshを押してください。右上の▶ENを押してJPにすると日本語になります。
FBXいじったらアバター(服や髪)が消えちゃった(1/24追記)
FBXをインポート/エクスポートする設定やボーン名称・構造がもともとのFBXデータと異なると、FBXにマテリアルやPhysboneが設定されてセットアップ済のデータであるPrefabは参照元がなくなったと考えられ、Sceneの見かけ上存在が消えてしまいます。
商品としてファイルやデータを整理しているときに、BlenderとUnityでオブジェクトやボーンの名称を変えている場合などもあり、安易にFBXを上書きするとPrefabの中身が見えなくなることが結構あります。
また、Blenderで作成されていないFBXや、ボーンの追加をした場合、どうしてもPrefabが壊れてしまう場合があります。
そんなときは、FBXからセットアップしなおして、Blenderとの行き来がしやすいように新しく最適化したPrefabを作ってしまいましょう!
アバターはうまく使えなくなる可能性が高いのでなるべくPrefabが壊れないようにしましょう。くうたくんはBlenderにもっていくだけでは壊れないはずなので、どこかで設定を間違えたりオブジェクトのスケールをいじったりしてる可能性が高いです。
今回の例では髪のFBXいじってたら前の改変の髪のPrefabが消し飛んでいたのでこちらを使用します。
原因は一部のボーンに回転がかかった状態でエクスポートしたっぽい?多分。
①FBXデータを探す
Hierarchyのメッシュを選択して、Inspector▶Meshを選択すると、ProjectにFBXの場所が出ます。
②FBXをHierarchyにおいてMaterialを設定しなおす
FBXを置くと白無地だったり黒テカリしてるようなマテリアルが設定されていることが多いです。これはBlender上でマテリアルに色を置いていない場合のデフォルトのマテリアルなので、Standardシェーダーの何もないデータです。
自分がやりやすいようにタブを移動したり複製したりしながら、PrefabとFBXの同じ部分にマテリアルを移してださい。
Prefab▶Materialに設定されているマテリアルを選択するとProjectに使用マテリアルが黄色ハイライトで表示されるため、それをFBX▶Materialに移していきましょう。
複数のメッシュが1つのMaterialで構成されている場合、FBXのメッシュをShift+クリックで複数選択すれば、すべての▶Material=Element0に同一のマテリアルを設定することができます。
③Physbone/Physbone Colliderを設定しなおす
Materialを移すとUnityの見かけ上はほとんど一緒になったと思いますが、Physboneが設定されていないため、動かしても揺れることがありません。
次はPhysboneの設定を移して動くようにしていきます。
まず、アーマチュア/Armatureを開いて、VRC Phys Bone(Script)が設定されているBoneを探します。
オブジェクトによっては、
・一番親のところ(下図ではBoneとか)に一括でPhysboneが設定されている
・Bone一つ一つに設定されている
・Bone.00xの更に子から設定されている
・PBという別のオブジェクトに全部まとめて設定している
といろいろあります。
見つけやすい方法としては、下図のようにShow GizmosをONにしてArmatureやオブジェクトを選択していくと良いです。
アーマチュアより下のどこかにPhysboneがついていることがわかる。
VRC Phys Bone scriptが設定されているボーンを見つけたら、FBXのArmatureを開き、同じボーン名称のInspectorを表示します。
FBXのInspectorのAdd Componentを押すと、検索欄が表示されるため、phys と打つと VRC Phys Boneというのがでます。
これを選択するとVRC Phys Bone Component(Script)が追加されるため、もともとのPrefabのPhysboneをCopy Componentして、FBXのVRC Phys BoneにPaste Component Valuesしてください。
‼この時、例えばPBオブジェクトにPhysboneをまとめている場合などに、
VRC Phys Boneの▶Transforms - Root Transformや、▶Collision▶CollidersにBoneやColliderが割り当てられている場合が多くあります。
この設定ごとCopy Componentしているため、割り当て先が元のPrefabのBoneに追従する設定のまま新しいFBXに設定されることになり、うまく動きません。
Root TransformやColliderが設定されている場合は、新しいFBXの同じものを割り当ててください。下でも説明します。
④Colliderを設定しなおす
Colliderとは、Physboneに当たり判定をつけるものです。
Unity上でPhys Bone Collider(Script)というのがPhysboneと同様の方法で作られているため、Boneの中についている場合はPhysboneと同じように複製しましょう。
Colliderの確認方法もPhysboneと同じで、ShowGizmos時に緑で表示されるものです。
ものによっては、ColliderをBoneに直でつけずに、ColやCoなどという名前で別の空っぽのオブジェクトにPhys Bone Collider(Script)をつけることでColliderにしているものもあります。
この場合、新しいFBXに移動するのはこのオブジェクトごとコピーペーストして、中のRoot Transformが元のPrefabのArmature参照になっているのを新しいFBXのArmature参照にする必要があります。
⑤アバターの位置に合わせてPrefab化
ここまで設定ができたらもとのPrefabとほとんど一緒の状態です。対応しているものの場合完璧に同じになったと思います。
毎回この設定をするのはめちゃめちゃ面倒なので、Prefab化して新しいセーブデータを作っておきましょう。
できたFBXをProject欄にドラッグドロップするだけです。これでまたBlenderにもっていってエクスポートしても、設定とBone構造が一緒であればPrefabが使えるデータになっていると思います。
PBなどの設定をコピペしているときに、Unity内で新規にオブジェクトを追加して、Armature内に入れている仕組みのアセットだと、FBXインポートしたときにまたボーン構造が元に戻ってエクスポートされるので作ったPrefabが死ぬ可能性があります。別オブジェクトにまとめておくとか応用したほうがいいかも。一番いいのはPrefabを壊さないことかも。
でもアセット作ってくれた人たちはみんなこの作業をして(コピペする元がないからPBとかの設定も全部やる)Prefabを作ってくれているので、妥協せず頑張ってみようね~
PBについてもっと知りたい!前髪が貫通するのを直したい!
下2つが大分参考になります。PBの設定は特に色々できるし自分のしてほしい挙動を突き詰めると一生時間がかかるので、各自で頑張ってみてください。
前髪の貫通を直す方法
貫通を直すにもいろいろあるので、簡単な2つのやり方を紹介します。
・Immobileの数値をいじってボーン自体が動かないようにする
貫通するBoneを選択して、VRC Phys Bone▶Force - Immobileの数値を1に近づける。 1になると全く動かなくなり、0だとしっかり動きます。
・▶Limits - Limit type(Angle、Hinge、Polar)とPitch、Roll、Yawの調整
自分はこれで設定しなおしていることが多いです。
Limit typeは
None - 一切制御なしで360°ボーンが回転する設定
Angle - 上から順に円錐状に制限されつつクルクル回転する設定
Hinge - 上から順に円の平面的に制限され、円上の左右のみに揺れる設定
Polar - 二つの円の平面に制限され、左右と前後でそれぞれ揺れる設定
の4つに分かれており、自分は前髪の場合全てHingeに変更しています。
更に、PitchとMaxAngleによって揺れるのを許可する範囲を設定、Rollで制限円自体の向き、Yawでボーンの回転方向の向きを設定することができます。本当に好みなので色々いじってみてください。
後記
結構シェーダー設定について聞いてくださる優しい方が多いので調子に乗って書き始めましたが全然理解が浅いことを痛感しています。多分この設定なら使ってる意味ないやついっぱいあるんだろうな・・・と。
影とか奥深いのでもっと楽しめると思います。頑張りましょう。
ここを読んでわからないこと、不足などがあれば
ここのリプライにください。気が向いたら返信、追記します。
慈善事業なので仕事の早さは期待しないでください。
https://t.co/LeFsPKGV5p
— ちー (@chii__c_c) December 17, 2024
改変に興味をもった人向けの改変Noteを作成しました。くうたDD妖怪なのでくうたが題材です。Unityの用語から軽くBlenderを使った方法まで画像付きでみっちり書いたつもりです!お暇なときにどうぞ。自作のMatCapやMaskもそのまま公開してます。#Kuuta3D #VRchatはじめました pic.twitter.com/VPcdgGBAty
今回のNoteがあなたの改変の一助となれば幸いです。

