あのめあを短髪にする方法|#ショートヘあのめあ
当記事の最終的な目的は、なるかでぃあ県様より販売されているオリジナル3Dモデル【あのめあ】を用いて、以下のような写真を撮影することです。
(いずれもトリミング、リスケール以外無編集です)
要するに自慢の長髪を短くすることが最終目標です。
目的に沿って後半はより踏み込んだ内容になりますので、挑戦したい方はぜひ参考にしてください。
・とりあえず短くする方法が知りたい
以下、Unityの画面で説明します。
Anomea Variantの横にある▶を押し、Armatureを開いてどんどん進んで、Hair_rootまで展開します。
いっぱい出てきましたが、今回触るのは以下の青くなってる項目だけです。
選択ができたら、次は画面右のInspectorに視点を移します。
下図のように、すべての項目がハイフンになっている筈なので、Scaleの値をxyzすべて「0」にします。
Unity画面中央のSceneに変化が現れました。あのめあの背中を見てみましょう。
はい、髪が短くなりました。
あとはVRChat SDK→Show Control Panelからアップロードするだけです。お疲れさまでした。
・髪の長さを調整できるようにしたい(アニメーションを組む)
思ってるよりはたぶん簡単です。ただ、説明するとなると結構手順が多いので、画像を見ながら真似してください。
あと我流です。効率の良い方法を知ってる人はその部分だけ読み替えてください。むしろ教えて
HierarchyのAnomea Variantをクリックすると、Inspectorに色んな項目が表示されます。
VRC Avatar Descriptor (Script)→Playable Layers→FXの項目に設定されているFX.controllerの位置を開き、これをそのままAnimator→Controllerに設定します。
③で設定した項目をダブルクリックすると、Sceneが切り替わってAnimatorタブが開きます。
最初はLayersのほうが表示されていますが、一旦Parametersに切り替えます。
ここから本格的にアニメーションを作っていきます。
上部に見える「+▼」をクリックして、Floatを選択したら、1回だけEnterを叩いてください。そうしないと画面がスクロールできないです。何故なのか。
Enterを叩いてからスクロールバーを一番下まで下げると、
New Floatという項目が追加されているので、ダブルクリックして名称設定。今回は分かりやすくするため「Hair_Length」にリネームしておく。
注意※Parametersの名称を日本語にしていると正しく動作しない不具合があったはずなので(もしかしたら修正されてるかもしれないけど、念のため)ここで打ち込む内容は英文にしておくことを推奨。
次に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。任意)
先程作った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あたりをクリックします。
この状態でまた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からアップロードしてください。
動作確認。メニューに項目が追加されてることと、0%~100%で髪の長さが変えられるようになってることを確認してください。
・補足、注意事項
結論、髪のボーンをスケール0にすることで擬似的に短く見せているだけです。薄荷ちゃんの三つ編みなんかでも応用が利きます、てかやってました。
アニメーションを編集する際、50%での髪の長さを0.7倍としていますが、「0.5倍では駄目なのか?」と聞かれると、駄目ではないけれど破綻が目立ちます。
現に今回の作業でも、75%ぐらいの長さは好みなんですけど、後ろから見ると段差が出来ており、見栄えがあまり良くないです。
なので「正面からしか見ない」場合や、あとは「レタッチで上手いこと無くせる」人なら使えますよ、といったオマケ要素になります。推奨はあくまで0%(デフォルトそのまま)50%(ミディアムロング)100%(ショートヘア)という感じです。
後述にしていたParametersのDefaultという項目ですが、0はそのまま0%、1が100%に設定が反映されるので、50%が好みの場合は0.5に設定、ショートヘアをデフォにしたい場合は値を1にすれば、アバターリセットなどした際に毎回変更する手間がなくなりますので、これも参考程度に見ておいてください。


コメント