あのめあを短髪にする方法|#ショートヘあのめあ

当記事の最終的な目的は、なるかでぃあ県様より販売されているオリジナル3Dモデル【あのめあ】を用いて、以下のような写真を撮影することです。
(いずれもトリミング、リスケール以外無編集です)

画像
2024/04/19
画像
2024/10/03
画像
2024/12/17
画像
2025/03/22

要するに自慢の長髪を短くすることが最終目標です。
目的に沿って後半はより踏み込んだ内容になりますので、挑戦したい方はぜひ参考にしてください。

・とりあえず短くする方法が知りたい

以下、Unityの画面で説明します。

画像
全体図。とりあえず【あのめあ】のPrefabをHierarchyに配置したところから

Anomea Variantの横にある▶を押し、Armatureを開いてどんどん進んで、Hair_rootまで展開します。

画像

いっぱい出てきましたが、今回触るのは以下の青くなってる項目だけです。

画像
先頭をクリックしたら、Shiftキーを押しながら末尾をクリックで一括選択するのが楽チン

選択ができたら、次は画面右のInspectorに視点を移します。
下図のように、すべての項目がハイフンになっている筈なので、Scaleの値をxyzすべて「0」にします。

画像
これを
画像
こうじゃ

Unity画面中央のSceneに変化が現れました。あのめあの背中を見てみましょう。

画像

はい、髪が短くなりました。
あとはVRChat SDK→Show Control Panelからアップロードするだけです。お疲れさまでした。

・髪の長さを調整できるようにしたい(アニメーションを組む)

思ってるよりはたぶん簡単です。ただ、説明するとなると結構手順が多いので、画像を見ながら真似してください。
あと我流です。効率の良い方法を知ってる人はその部分だけ読み替えてください。むしろ教えて

画像
とりあえずCtrl+ZでScaleの値はハイフンに戻しておく

HierarchyのAnomea Variantをクリックすると、Inspectorに色んな項目が表示されます。
VRC Avatar Descriptor (Script)→Playable Layers→FXの項目に設定されているFX.controllerの位置を開き、これをそのままAnimator→Controllerに設定します。

画像
①②の順にクリック、③はD&D

③で設定した項目をダブルクリックすると、Sceneが切り替わってAnimatorタブが開きます。
最初はLayersのほうが表示されていますが、一旦Parametersに切り替えます。

画像
ここまで上手く行っていれば画面中央がこうなるはず

ここから本格的にアニメーションを作っていきます。
上部に見える「+▼」をクリックして、Floatを選択したら、1回だけEnterを叩いてください。そうしないと画面がスクロールできないです。何故なのか。
Enterを叩いてからスクロールバーを一番下まで下げると、

画像

New Floatという項目が追加されているので、ダブルクリックして名称設定。今回は分かりやすくするため「Hair_Length」にリネームしておく。
注意※Parametersの名称を日本語にしていると正しく動作しない不具合があったはずなので(もしかしたら修正されてるかもしれないけど、念のため)ここで打ち込む内容は英文にしておくことを推奨。

画像
こうなっていればOK

次にLayersに戻って、上部の「+」をクリックしたら、先程と同様Enterを1回叩く。
それからスクロールバーを移動すると、一番下にNew Layerという項目が追加されている。

画像

必須ではないが、後々のデータ管理を複雑化しないために、ダブルクリック→Hair_Lengthにリネームしておく。

画像

リネームしてEnterを叩いたらスクロールバーが上に戻ってしまいました。Why?
これ、Unityの仕様です。今後も度々強制的に戻されます。慣れてください

気を取り直してスクロールバーを下へ。先程リネームした項目の横にある歯車をクリックして、Weightを「1」にします。
これをしておかないと、以降の作業をミスなく出来ていたとしてもアニメーションが反映されないので、覚えておくと良いです。アバター改変に躓いたら原因の5割はこれです(n敗)

画像
またスクロールバーが強制移動させられるけれど、気にしてはいけない

次は、画面右側のマス目になっているところを、どこでも良いので右クリック。Create State→Emptyを選択すると、オレンジ色のボックスが生成される。これをリネームするかどうかはご自由に、わたしはやってない。

これをクリックするとInspectorの表示が切り替わるので、Motion Timeの横のParameterと書かれたチェックボックス(上から2番目)を有効に、▼をクリックして「Hair_Length」を選択してください(これを忘れてて髪が短いままになりました。1敗)
それと、Write Defaultsのチェックボックスを外す。理由はよく分からないけれど、VRChat側の仕様です。覚えておいてください。

画像
この状態にしておく

次に.animファイルを設定していくのですが、各々の管理しやすさ、作業のしやすさなどで好きな場所に作っていただいて構いません。
参考までにわたしは、他のアニメーションと一緒に管理しているので、今回の場合だとAssets/Anomea/Animations_v1.0.1/Animation/Clothes内に作成していきます。

任意のフォルダを開いたら、空いてる場所で右クリック。一番上のCreate→Animationという項目が真ん中下らへんにあるので、これを選択。
New Animation.animが生成されるので、例によって「Hair_Length」にリネームしておく。(ここは日本語でもOK。任意)

画像
視線誘導のため一部モザイク。こうなっていればOK

先程作ったLayers→Hair_Length内のオレンジ色のボックスを再度クリック。InspectorにあるMotionの項目に、たった今作成した「Hair_Length.anim」をD&D

画像
またスクロールバーが戻されました。慣れましょう

次の作業に入るために「Hair_Length.anim」をダブルクリック。そうすると新しくAnimationウインドウが出てくるので、一旦放置して、Unity本体のタブをAnimatorからSceneに戻す。

画像
全体図としてはこんな風になってるはず

HierarchyのAnomea Variantをクリックすると、Animationウインドウの表示が変わるはずです。今からこれを使って、あのめあの髪が伸縮できるアニメーションを作っていきます。
まずは左上、Previewの1こ下に、おそらく「dummy」と書かれた項目があるのでクリック、この中から先程の.animファイルと同じ名前を探します。

画像
見つかりました

Previewの横にある赤丸、所謂RECボタンを押すと、アニメーションの編集モードに切り替わります。
この状態で前項でも見たHair_root内の「Hair_Back_1_L ~ Hair_Back_inside_2_R」までの11項目を選択状態にしてください。

画像
画面上だとこう。あのめあがしゃがみ込んでます。かわいいね

この状態でInspectorにあるScaleの値を、一度全て「1」にします。するとAnimationウインドウのほうに、なんか色々と追加されました。

画像
この状態

次に、Animationウインドウの右側、タイムラインになっている箇所の、適当に0:05あたりをクリックします。

画像
白いラインが移動すればOK

この状態でまたInspectorのScaleを編集します。今度はxyzそれぞれの値を「1 0.7 1」とするのですが、ここで注意点。
xとzの値は、一度違う数字にしてから、1に戻すようにしてください。こうしないと最終的なアニメーションが上手く動作しない可能性があります。

画像
この状態

次は、先程のようにタイムラインの0:10あたりをクリックして白線を移動。
InspectorのScaleをxyz共に「0」にします。ここまで出来たらRECボタンを押して、編集モードを解除します。

画像
この状態

これで山場を一つ乗り切りました。お疲れさまです。Animationウインドウはもう使わないので×で閉じておいてください。

次の山場ですが(無情)、HierarchyのAnomea Variantをクリックして、Inspectorを下までスクロールすると、VRC Avatar Descriptor (Script)→Expressions→Parametersという項目があるので、ここに設定されている「_Param.asset」をダブルクリックします。

画像
水色になってるやつ。枠内をダブルクリックする

するとInspectorの表示が切り替わるので、最下部にある+と-の「+」のほうをクリック。
Parametersの一番下の項目が複製されるので、これを以下のように編集します。
Name:Hair_Lengs(Animatorタブ→Parametersで設定したものと必ず同じ表記にすること。スペルミス、大文字小文字、末尾の見えない半角スペースなどで動作しなくなります。アバター改変に躓く原因の8割はこれ。コピペを強く推奨。n敗)
Type:Float
Default:基本0。後述。
Saved:チェック有だとワールド移動やアバターチェンジしても髪の長さが記憶されます。お好み。
Synced:チェック無だと周りのユーザーに同期されません。基本チェック有。

画像
今回はこのようにしました

次に、もう一度HierarchyのAnomea Variantをクリック、Inspectorの下部にあるVRC Avatar Descriptor (Script)→Expressions→Menuの項目にある「RootMenu.asset」をダブルクリックします。
またまたInspectorの表示が切り替わるので、ここからExpessions Menuで動作できるように設定を追加していきます。

画像
アニメーション設定はすべてここに収束する

アニメーションを追加する場所も、人それぞれ好みがあると思うので自由にしていただいて構いませんが、今回はとりあえずファッション→ヘアセットの中に追加します。
Controlsに羅列された中から当該の項目を選択して、下部に表示されるSub Menuに設定された項目をダブルクリックすることで内部に進んでいきます。

画像
ここを進んで
画像
更に内部へ

Controlsの右下に+と-があるので「+」のほうを押して、生成されたNew Controlを以下のように編集します。
Name:Hair_Length(昔は日本語だと不具合があったみたいだけれど、今は問題なく動くっぽいので任意)
Type:RadialPuppet
Parameter:[None]
Rotation:Hair_Length,Float
右上にある「⦿」は、UnityProject内にある画像ファイルをExpressions Menu上に表示させる設定ですが、拘りがなければそのままか、Noneにするとデフォルトのピクトグラムが表示されます。参考のため、今回はNoneにしておきます。

画像
こうなりました

なんと、これで作業は終わりです。お疲れさまでした。あとはVRChat SDK→Show Control Panelからアップロードしてください。

画像
Expressions MenuにHair_Lengthが追加されている

動作確認。メニューに項目が追加されてることと、0%~100%で髪の長さが変えられるようになってることを確認してください。

画像
50%でミディアムロングに
画像
100%でショートヘアになります

・補足、注意事項

結論、髪のボーンをスケール0にすることで擬似的に短く見せているだけです。薄荷ちゃんの三つ編みなんかでも応用が利きます、てかやってました。

アニメーションを編集する際、50%での髪の長さを0.7倍としていますが、「0.5倍では駄目なのか?」と聞かれると、駄目ではないけれど破綻が目立ちます
現に今回の作業でも、75%ぐらいの長さは好みなんですけど、後ろから見ると段差が出来ており、見栄えがあまり良くないです。

画像
yスケールはともかく、xとzのスケール変更は段差を生じてしまう

なので「正面からしか見ない」場合や、あとは「レタッチで上手いこと無くせる」人なら使えますよ、といったオマケ要素になります。推奨はあくまで0%(デフォルトそのまま)50%(ミディアムロング)100%(ショートヘア)という感じです。

後述にしていたParametersのDefaultという項目ですが、0はそのまま0%、1が100%に設定が反映されるので、50%が好みの場合は0.5に設定、ショートヘアをデフォにしたい場合は値を1にすれば、アバターリセットなどした際に毎回変更する手間がなくなりますので、これも参考程度に見ておいてください。

画像

いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
あのめあを短髪にする方法|#ショートヘあのめあ|みくにき
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1