ぷちどるでBeatSaber
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

ぷちどるでBeatSaber

2020-07-06 00:34
    BeatSaber×THE IDOLM@STER シリーズ(宣伝)
    カスタム譜面配布場所はこちら

    前置き

    某こうめちゃんのBeatSaber動画が超絶に可愛かったので、対抗してぷちにBeatSaberしてもらった。
    2頭身キャラをアバターにして BeatSaber の CustomAvatars でプレイする時に必要だった設定方法をまとめました。

    ぷちどるのモデルは、こちらのすけさんP様が作成されたモデルをお借りしています。



    本題

    MMDモデルをBeatSaber用に変換する細かい手順は省略しますのでご了承ください。その辺の手順はいずれ別でまとめたい……というかまとめてる途中です。
    今回は、前置きにあるように、2頭身キャラという、ちょっと特殊なモデルを BeatSaber に持ち込む時に必要だった事を書いていきたいと思います。
    ざっくりまとめるとこんな感じ。

    1.blenderで、Armature(Bone)の設定を通常キャラと同様に作り込む
    2.Unityで、Rig を設定する
    3.Unityで、VRIK(VRインバース・キネマティクス)の設定を補正する
    4.BeatSaberで、各種設定をぷちどるサイズに合わせる
    5.ぷちどるの気持ちになってゲームをプレイするですよ!

    先に言っておくと、一番辛いのが5でした。
    では、いってみましょー。

    1.blenderで、Armature(Bone)の設定を作り込む
    まずお断りしておく点が一つ。
    普段は、紅ヒーP様の H.M.D をかぶせてますが、ぷちどるにかぶせるとご覧の通り、サイズが全く合わないので、今回は取り付けていません。


    まぁ、他のアイドル達ならともかく、ぷちなら H.M.D なくても良いんじゃね?
    という気もしますし。大目に見てください。

    閑話休題

    利用させていただいているぷちどるのMMDモデルを、blenderImport したモデルがこちら。( Fix Model はまだ行っていない状態です)

    Armatureの構成を紐解くとこんな感じになってます。
    ・ぜんぶ日本語
    ・手首から先、つま先などの末端部分が無い
    と、2つ問題があるので順番に解消していきます。


    とりあえず Fix Model をすると以下のようになります。


    日本語部分はすべて英語に切り替わったので解消。


    末端部分に関しては、Unityで Rig の設定(要は骨格を人間らしく動かすための紐付け)をしようとすると、先に述べた省略された部分が無いとエラーになってしまうので、足りない部分を追加していきます。(図の赤枠部分)

    腕に関しては、肩から
    [Left shoulder] → [Left arm] → [Left elbow]
    までは残っているので、先端部分を選択して [Left wrist][Thumb_L] を追加します。


    ※[Options] の [X-Axis Mirror] にチェックしておけば、


    [Left elbow]の先端部分を選択し、


    [Shift] + [E] キーで、選択部分の先につながる Bone が作れます。


    ※作成された Bone は名前が [Left elbow.001] とかになっているので、それぞれ正しい名前に変更するのを忘れないように気をつけましょう。

    さらに、新しく作成した Armature とメッシュを紐付け(Weight Paint)ます。
    ①Bodyを選択
    ②Armatureを選択
    ③Vertex Groups の [+] を押して新しい頂点グループを追加
    ④追加された頂点グループの名前を、Armature と同じ名前に変更


    [Object Mode] を [Weight Paint] に変更。


    そのままでは見にくいので、下図のように赤枠で囲んだようにしておくと多少色を塗りやすいかも。


    先程追加した Vertex Groups の [Left wrist][Thumb_L] それぞれに対し、少しだけで良いので腕の先端部分を赤く塗って紐付けます。
    (指のような細かいパーツがあるでもなし、適当で良いです…Thumb_Lだけで良いかも)


    これを左右両方に行います。
    これで手首から先が出来たので、次はつま先です。



    図のように [Hips] → [Left leg] → [Left knee] → [Left ankle] → [Left toe] となるよう追加して、腕のときと同じように [Weight Paint] まで行います。

    これで、Armature の構成が下図のようになっていれば blender 側の設定は終了です。


    通常のモデルであれば、拳を握る Shape Key も追加するところですが、ぷちだとその辺もすっとばして大丈夫です。普段どおりに fbx ファイルに Export して Unity にいきましょう。


    2.Unityで、Rig を設定する
    相変わらず長くなってる……。
    気にせず参りましょう(汗)

    blender から Export した fbx を Unity に取り込んだら、まず最初にモデルのサイズを 80cm に拡大してください。初期状態のままでは 40cm 弱なのでちょっと小さすぎます。
    そのままでもイケるかもしれんけど

    ※現在、筆者は初期状態のサイズのままプレイしています。以降の4の設定次第ではここのサイズを調整する必要がなくなるからです。このへん、要検証というか、まだはっきりまとめられていませんので、いずれ別記事で記載したいと思います。

    サイズを調整してから、Inspector ウィンドウの [Rig] タブをクリックし、Animation Type[Humanoid] に変更、Apply クリックで [Configure...] ボタンが押せるようになるのでクリックします。


    [Configure...] を押すとこんな画面が出てきます。
    左端が Scene ウィンドウ
    中央が Hierarchy ウィンドウの Armature を展開した状態、
    右側が Inspector ウィンドウです。
    (※画像が見やすいように、少しレイアウトをいじっています)


    先程の図は、紐付け直した状態のものですが、Apply した直後は下図の状態です。
    ・Hand(手) に Thumb(親指)が紐付けられている
    ・Foot(足)に toe(つま先)が紐付けられている
    ・Left Hand、Right Hand に何も紐付けられていない



    というわけで、この3つを修正します。
    それぞれ、Hierarchy ウィンドウからドラッグ&ドロップしてください。

    ・Hand(手) に wrist(手首)を紐付ける
    ・Foot(足)に ankle(足首)を紐付ける
    ・Toes(つま先)に toe(つま先)を紐付ける


    ・Left Hand の Thumb Proximal に Thumb_L(左親指)を紐付ける


    ・Right Hand の Thumb Proximal に Thumb_R(右親指)を紐付ける


    [Rig] の設定は以上です。


    3.Unityで、VRIK(VRインバース・キネマティクス)の設定を補正する
    [Rig] の設定後は、通常のモデルと同様に Material の設定、IK(インバース・キネマティクス)コンポーネント の追加、VRIK コンポーネント の追加を行うのですが、ここで一つ問題が発生しました。
    原因は不明ですが、画面上部の▲ボタンから再生モードにしてモデルの動きを見ようとしたところ、モデル位置が原点から左にズレ(半透明が元位置)、さらに両足が開脚状態に……。
    (これ、どなたか原因わかる方教えて下さいm(__)m)


    推測ですが、極端な短足と、頭の位置が低すぎる為、極端な「がに股」状態が発生しているのでは、と思いますが、そういうときのがに股対策として値を変更する 「Left Leg swivel_Offset」「Right Leg_swivel Offset」の値を限界値まで振り切っても解消はされませんでした。

    ちなみに、Head オブジェクト、Left Hand オブジェクト、RightHand オブジェクトは以下の位置にしています。

    Headオブジェクト


    LeftHandオブジェクト


    RightHandオブジェクト


    で、色々設定を変更してみた結果、VRIKSolver にある「Locomotion Weight」が怪しいという事に。通常時は「1」ですが、「0」に変更した結果、再生モードでも足は立ったまま、モデル位置も移動しなくなりました。


    ついでに IK Manager Advanced (Script) 側の「Locomotion_weight」「0」にするのをお忘れなく。
    ※通常の IK Manager (Script) では該当する項目がありません。VRIK 側だけで解決するのかどうかは調べていないので不明です。


    これすると、モデルが一歩も動けなくなりますけどね!
    まぁ、ぷちですから、移動出来なくてもさほど問題ないです。
    そういえば、フルトラッキングだとどうなるんだろう?

    ともかく、これで Unity での設定も終了です。さっそく avatar ファイルExport して CustomAvatars フォルダに放り込みましょう。


    4.BeatSaberで、各種設定をぷちどるサイズに合わせる
    いよいよ BeatSaber の設定です。ポイントは3つ。(実質2つですが)

    ・PLAYER SETTINGS の設定


    Unity でぷちのサイズを 80cm に変更したので、Player Height1.0m に設定します。

    ・SETTINGS の設定


    ROOM ADJUST の設定もぷちのサイズに合わせていじる必要があるかと思ったんですが、とりあえず全てゼロのままにしています。
    ※これも丁度よい設定があれば教えてくださいませm(__)m

    ・Mods の AVATARS 設定


    最後の設定です。
    Resize ModeArm Span に設定
     こうすることで、ぷち自体を腕を広げたサイズに合わせてサイズ変更させます。
    Floor Height AdjustOn に設定
     これによって、ぷちの足の位置にちょうど床が位置するようになります。
    ・Arm Span を 0.50m 程度に設定
     これ、本来のサイズである 0.40m でも良いかもしれません。
     逆に、1.00m では見た目が少し大きすぎました。
     結果から考えると、Unity でサイズ変更する必要もなかったかもしれません。
     まぁ、深く考えると長くなるので、とりあえずこれで進めてます。


    5.ぷちどるの気持ちになってゲームをプレイするですよ!
    さて、ここまで来たらあとはプレイするだけです。

    が、まだ注意点があります。

    残念なことに、推定身長 160~170cm 前後のプレイヤーさんが普段のアバターと同じようにプレイすると、明らかにセーバーの位置が上に来てしまいます。
    なので、セーバーの位置はぷちの腕と同じ程度の高さである床から 40cm 程度に調整する必要があります。

    つ・ま・り


    プレイ中は、基本的にこの体勢です。
    画像では関節の都合上、膝立ちになっていますが、常に正座、あるいは中腰状態で頑張ってください!

    それでは、良きビーセイライフを!

    いじょ!

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。