2025年1月3日金曜日

まだまだ基本編 ボーンの設定いろいろ

まだまだ基本編続いたり

イロイロな制限やローカル軸を設定出来ますので、軽く説明です


回転、移動、表示、操作


回転と移動

基本的にボーンは”移動”と”回転”両方の操作が出来るのですが、移動出来てしまうと扱いにくい場合があります

ですから、PMXEでボーンを新規追加するとまず回転のみ可能な設定で新規追加されます

PMXEのボーンリストでは水色のが頭についていて、移動のチェックがOFFになっている状態です








一番良く見るボーンの状態ですね



移動のチェックをONにすると移動の操作が可能になり、ボーンリストのが黄緑色になります








こちらは、センター、全ての親、IKの親やIKのボーン等に設定されます


PMXEで回転のチェックを外した場合はMMMでは回転が出来なくなりますが、回転のチェックがOFFでもMMD、PMXE上では回転出来てしまいます

こういう細かな違いがMMMとMMDで出てきますので、特殊なセッティングをする場合は使用アプリで確認しておくのをお勧めします


表示

チェックをOFFにすると、ボーンリストに記載されますがMMD上のモデルに表示しなくなります

当然選択出来なくなりますから選択出来ません

操作したり、目視で確認する必要が無いボーンに設定すると良いと思います

ボーンリストに但し書きを追加したりにも使います





ちょっと古いバージョンのMMDだとIKのLinkボーンは非表示に設定しても表示されるバグがありました

最近のバージョンなら修正されているはずです


操作

チェックをOFFにすると、MMD上のモデルには表示しますが、操作が出来なくなるハズなのですが、MMD上だと操作出来ちゃったりします





選択操作する必要が無いなら非表示にしておくのが吉だと思います



軸制限とローカル軸

軸制限

軸制限はどのベクトル軸でボーンを回転させるか設定なので、軸制限にチェックを入れた上でXYZの3個のベクトル値をセットします

ボーンリストのは紫色になります

ステージとか機械や楽器モデルではよく使うんじゃないかな?

XYZのベクトルの絶対値が1になるように設定する必要があります

軸制限は絶対座標と同一なら「1,0,0」でX軸、「0,1,0」でY軸、「0,0,1」でZ軸で解りやすいのですが、斜めになると…計算がメンドクサイですね、そういう時にはちょっとしたテクニックがあります


斜めの円柱に軸制限をかけてみましょう



1 軸制限するボーンを回転体させたい中心に置く(頂点を選んで 範囲中心にオブジェクトを置く ボーンもしくはウエイトボーン)


2 ウエイトぬりぬり


 軸制限するボーンからみて回転軸の先になる場所にボーン(軸先)を置く(反対の円の中心のボーンを選択、して上と同じ操作)

 軸制限するボーンと軸先ボーンを親子関係で繋ぐ(軸制限するボーンが親、軸先が子)

  軸制限ボーンの先も設定(この表示先のベクトルに軸制限がかかるから)


5 軸制限のチェックを入れて、3この窓の後ろの>ボタンポチー


この操作で斜めの軸でも軸制限が綺麗にかけられます


軸制限は出来ているのですが、このままだと使いにくそうですね

斜めに軸制限をかけた時には併せてローカル軸も設定してあげるとより良いと思います

ちなみにIKLinkボーンでも軸制限はかかる筈なのですが、斜めに軸制限をかけると角度制限との相性が悪いので使い勝手は微妙(個人的意見)

それでも、そういう事が出来ると覚えてくと手札が一枚増えます



ローカル軸

あるボーンを操作する時のX、Z軸を、どういうベクトルにするかを設定出来ます

腕、ひじ、手首、指のボーンとかで良く目にするのではないでしょうか?

初期姿勢で斜めに走っているボーンはローカル軸を設定しておかないと、操作がワールド軸になってしまって使いにくい時があります

腕~指のの流れはそれにあたるので設定してあるモデルが大多数じゃないでしょうか?


X、Zの2軸を設定する必要がありますので、XYZのベクトル値を2セット設定することになります

が、特に電卓を叩いて手計算する必要はありません


 ボーンの親子関係か表示先を設定する(これは軸制限の時に完了しているとして)


 ローカル軸のチェックをONにして、その下の>ボタンをポチ


の操作で基本的な方向を自動で計算して設定してくれます

左右のボーンで操作方向を揃えたい場合や、自動で設定された向きが気に入らない場合は各数値の正負を反転してみて納得行くように修正してください


下手にローカル軸をいじったりした場合モーションデータの整合性が崩れるのでは?と心と心配してしまう人がいるかもしれないので補足しておきます

モーションデータはワールド軸の回転に置き換えられて保存されますから、データ元モデルと読み込むモデルのローカル軸方向が違っていても大きな問題は無いです


モーションデータから大きく崩れてしまう場合は

 ●必須ボーンが入っていない、もしくは名前が違う

 ●モデルサイズやモデルの手足の長さが違う

 ●初期ボーズの腕の角度が大きく違う

 ●足IKの癖が違う

という場合だと思うので、そういった所を見直されると幸せになれると思います



付与

これはあるボーンの回転か移動の変化をあるボーンに付与する(連動して動く)設定です

ボーンリストのは薄紫色になります

付与される側のボーンに付与親とその付与倍率を設定してあげることで有効になります

ボーンリスト順序は付与親が上(ボーン番号小)、付与を受けるボーンが下(ボーン番号大)が正解です

よく見る使い方は、両目と左右の目、足Dとかだと思います

付与率は整のみではなく、小数点やマイナスも指定出来ますが、小数点を含む付与率を設定すると「巻き戻り」というちょっと面倒な事がおこります

構造の追加や仕掛けにわりと頻繁に使ったりもしますので、後でそれぞれ説明をしていくことになると思います

使用例のステージを配布していたりします

ステージとか小物配布するよ「エレキキュレーター」いろいろ回れ

とか

こんな事にも使ったりなのでわりと有用なんじゃないかな?


PMXEにLのコマンドがあるのですがLにチェックを入れるとローカル軸計算での付与になる筈です

が、よほど複雑な構造でない限りは普通意識しなくていいんじゃないかと思います

付与が変な動きをしているな?と感じたときににチェックしてみてもいいんじゃないでしょうか


つま先ボーンが付与親無し付与率0という設定で足首に繋がれている事があるのですが、これMMDの内部処理を利用したバグに近い処理でして

何時だったかMMDのバージョンが上がった際につま先が追随しなくなった事がありました

ちょっとした修正で対処出来る事だったのですが、配布されているモデルがどういう処理をしているかを把握出来ていないと対処出来なかったかもしれませんね

対処方法としては、

足Dを追加して追加された足Dにつま先を接合する方法はメジャーですね

ボーンを追加しなくても対処する方法はあります、変形階層を指定する方法です

どちらの方法が良いかとかはありませんので、モデルに適した手法を用いれば良いと思いますです、ハイ


変形階層、物理後


つま先びょーんの対処方法として、「変形階層を足IKの流れより後にずらす」もしくは「物理後のチェックを入れる」という処置でもいけます(お勧めは物理後チェック:理由はの後で別章になると思います)

この変形階層と物理後チェックの意味とかある程度でも理解して触ってる人って少数派では無いでしょうか


これは、ボーンの計算順序を明示的に指定する項目なんですね

階層0のボーン番号順に処理→階層1のボーン番号順に処理・・・・階層nのボーン番号順に処理→MMD内部特別処理→物理演算を処理→物理演算後階層0の処理→物理演算後階層1の

のような処理順序になっていってるだろうと個人的に推察しています

(私の場合、念のためなので物理演算後ボーンの階層はあえて物理演算前の階層から一段落とした階層から始めるようにしています)


このあたりの処理とかPMXEとMMDとMMMで微妙に処理が違うので「こっちで上手に行ってもあちらで動かない」なんてことは通常運転ですから、トライアンドエラーです

通常のPMXモデルの規模であればボーン順序を正しく整理してしまえば階層指定をしなくても正しく動くようになります

また、ちょっと凝った構造を組み込もうとすると、階層をいくつか指定していくことになっていくので、組み込みしやすくするためにもボーン順序の整理が必要になります


ボーン順の整理とかのお話は長くなりますので、そのあたりの整理方法は改めて設けますね



次は多分「ボーンモーフ」のお話をしてから、「ボーンで何が出来るのか?

というお話で「ボーンの基礎編」が一応の〆になるんじゃないかな?と思います

…ちょーっと意味不明に感じる事を言い出しかねないので、教材モデルを用意したいところです


0 件のコメント:

コメントを投稿

ボーンモーフの回転とか順番とかについて(また中編??)

ボーンモーフの回転量、移動量はワールド軸、ワールド座標で記述、処理されます ボーンを操作して変形の結果を確認しながらの作業がほとんどで、丁寧にセットアップされているモデルさんだと丁寧にローカル軸の設定等はされています ですから、ワールド軸(座標)、ローカル軸(座標)というのは普段...