■ボーンシステムとスマスキの実験モデル■

★DownLoad Data★2003.6.18version
注意)このデータは学習用なので、 モデルを流用する際は顔は必ず変えてください。
cautions)since this data is an object for study, in case you divert a model, please be sure to change a face
2006-03-26 update

■データの概要などなど■

■作成目的など■

アニマスのver10ではスマスキ機能が大きく修正されたり、ポーズシステムが階層的になったりして
結構融通が利くようになったのですが、
悲しいかな(v9.xの悪評のためか)使い込んだ作品というのはなかなか出てこず。
実際のところどこまで出来るのかが解りません。
そこで、いっちょやれるところまでやってみようかと思って作成したのがこのモデルです。

■システムの特徴など■
このボーンでは2001RIGで問題だった肘と膝のシステムを修正し、
膝は2重間接化、腕のロール精度向上などを行い、マスターグレード並みのポージング性能を実現
また、背骨はSetupMachineを元に、
2001RIGとある程度まで互換性を持たせたシステムにしています。

■ボーン一覧■
EasySetupの設定やCP割り当ての参考用にボーンの一覧を作成しました。
>>CLICK<<

■スマスキ設定方法■
よく考えたらこれに関するTIPSがあんまりないので書いてみました。
激烈にオレ式なので、これが正解とか鵜呑みにしないようにしてください。
>>CLICK<<


■各部間接に関して■

キャラクターモデルの問題点としてよくあげられているのが間接の破綻です。
アニマスではスマートスキンとコンストレインツ+補助ボーン、さらにウエイトと3種類の方法で緩和する事が出来ます。
以下に各手法の利点と問題点を記載します。(独断と偏見による)


  利点 問題点
スマートスキン

各ポイントごとの設定が直感的で融通が利く。
複雑な動き(例えば肘の動きに合わせて力コブを作る等)が可能。

ポイント間の補間はアニマス任せなので、間違った補間を防ぐためには膨大な設定が必要。
補間の計算方法&精度などの問題で完全には滑らかにならない。
補助ボーン 他のモデルへの移植が簡単。
動きが連続的で滑らかである。
複雑な動きを実現する事は現実的な工数では出来ない。
(理屈的には複雑なコンストレインツでほとんどの動きは出来るはずですが)
ウエイト 他のモデルへの委嘱が簡単。
動きが連続的で滑らかである。
新機能なので機能が洗練されておらず、アニマス上ではウエイトの調整が難しく融通が利かない。(プラグインで一応可能だけど面倒くさい)
新機能なのでちょっと使うのが怖い。


このように、個々の機能には利点と問題点があるので、どれかひとつの方法というのは、あまり良くありません。
そこで、僕はスマートスキンと補助ボーンのハイブリッドを使用する事にしました。
まぁ、肉同士の干渉みたいなダイナミクスの必要な部分は別にして、ほぼマッスルレスなモデルに出来たと自分では考えています。

■肘の補助ボーンシステム■

肘のボーンはRight Forearm Real_sub1-3の3個の補助ボーンに1個ずつに右上の図のようにワッカ状にCPを割り当て
Right Forearm Realに25%,50%,75%と段階的にオリエントさせています。
これにより肘はRight Forearm Realの動きある程度滑らかに補間するようになります。
これにスマートスキンを割り当てればほぼ問題ない肘が出来るでしょう。
なお、なぜワッカ1個に補助ボーン1個を割り当てるかというと、
複数のワッカを割り当てると補助ボーンの効果が無くなり滑らかにならないからです。
多少面倒ですが、差は歴然としているので手抜きはしないほうが良いです。
ただし、
オリエントはターゲットのボーンの回転角が90度を超えるところで
50%より大と未満で別の動きをはじめるという問題
があります。


サンプルムービー

サンプルでは90度を超えると75%のボーンは徐々にターゲットボーンに近づき、25%のボーンは徐々にターゲットボーンから離れます。
正常なのは50%のボーンのみです。
おそらく、計算方法の問題でしょうが、多くの間接は90度よりも曲がるのでこれは問題です。
しかし、これは
階層化する事で回避できます。

ボーン名 オリエントターゲット 影響度 ボーン階層
Right Forearm Real_sub1

Right Forearm Real

50%

Right Forearm Real_sub2の子階層
Right Forearm Real_sub2 Right Forearm Real
50% Right Forearm Realと同じ階層
Right Forearm Real_sub3 Right Forearm Real_sub2 50% Right Forearm Realと同じ階層

つまりRight Forearm Real_sub3は50%オリエントのRight Forearm Real_sub2の50%ですから50*50=25%の位置。
Right Forearm Real_sub1は、Right Forearm Real_sub2とRight Forearm Realの位置の差の50%ですから(100%-50%)*50%=25%を
50%でオリエントしたRight Forearm Real_sub2の位置から移動するので、50%+25%=75%となるわけです。
また、ターゲットと90度以上の差のあるボーンはRight Forearm Real_sub2だけで、これは50%ですから、
Right Forearm Real_sub1とRight Forearm Real_sub3は50%以上や以下でも問題ありません。

■EasySetupの補助ボーン設定■

bone-fit "Right Forearm Real_sub1" "Right Forearm Real"
bone-fit "Right Forearm Real_sub2" "Right Forearm Real"
bone-fit "Right Forearm Real_sub3" "Right Forearm Real"

bone-end "Right Forearm Real_sub1" "Right Forearm Real_sub1" 0.6
bone-end "Right Forearm Real_sub2" "Right Forearm Real_sub2" 0.7
bone-end "Right Forearm Real_sub3" "Right Forearm Real_sub3" 0.8

この式では上側の部分で、すべての補助ボーンをターゲットのRight Forearm Realにフィットさせます。

これで動作としては問題ないのですが、全く同じボーンが重なっていると、ちょっと解りにくいので、下側の部分で、ボーンのエンドをスタートに近づけ同じ向きで長さの違うようにして視認性をあげています。

 


■2001RIGシステム補正■

アニマス標準の2001RIGはこれを自分のモデルに適用すれば、それだけで生き生きとモデルが動くというスグレモノなのですが
設定が結構解りにくいので、普及しているとは言い難い気がします。
しかし、EasySetupのおかげで、工数は激減!ちょっとした作業で簡単に適用できるはずです。
とはいえ、しばらく使えばいくつか問題がある事に気付くでしょう。
そこで僕が気付いた問題点と、それの修正方法を記載しておきます。


  問題点 解決方法(詳細は別途記載)

腕をまっすぐに伸ばすと、肘が非常に不安定な動きをはじめます。
また、ある程度まで伸ばすと、計算精度が足りなくなって急にビョコンと伸びきります。(ArcticPigsでも同様の症状有り)

上記の問題は肘のボーンをくの字型でたるんだ状態で設定すれば、解決しますが、今度は肘の軸の位置が人間の骨格と変わるので、よく見るとへんな曲がり方になります。

2001RIGの腕のシステムは計算専用として、別のRealボーンを仕込み、こちらにCPを割り当てる。
肩、腰 回転と捻りが同時に起こると、スマスキでは滑らかに出来ない。 ボーン階層化して回転と捻りの2段階に分ける。
背骨 2001RIGは3段階で曲げるが、体のひねりなど複雑な動きでは破綻が大きい。
ポーズを柔らかにつけられない。
複雑で滑らかな動きの出来るSetupMachineの背骨システムを応用し、なおかつ2001RIGのアクションが適用可能なように工夫する。
2001RIGはFaceターゲットでの制御ができない。
Faceターゲットでは頭のかしげる動きが滑らかにするのが難しい。
頭のボーンを階層化して2001RIGと互換性があり、なおかつポーズONで顔がターゲットの方向を向くようにした。(カメラ目線が簡単)

また、数点のRIGを追加しています。内容がわからないと困ると思うので参考までに。
  内容
Sub Bone System

補助ボーンをターゲットボーンにあわせて動かすためのRIGです。
常時ONにしておく事でスマートスキンの設定時などでも正常に動作します。

※コンストレインツによっては、ボーンの動きを拘束してスマスキの設定を邪魔するものがあるので、そういうボーンは含んでいません。

Body_Bone_System SetupMachineから移植した背骨の制御システムです。胸の正確な位置を明示的に制御できない代わりに滑らかな動きが出来ます。
AnimeEye_Size アニメ目の形を制御しています。
Face_Eye_Lock 顔と目をターゲットの方向に向かせます。
Bone_hide ポージングに必要ないボーンを隠すためのものです。



■腕のRealボーンシステム■
2001RIGの腕のボーンシステムは上記のようにある程度のくの字状態でないと計算が上手くいかないので正常に動作しません。
しかし、腕はまっすぐ伸ばしたいですよね?
そこで、2001RIGの腕システムにあわせて動き、なおかつまっすぐ伸びる、Realボーンを追加し、こちらを実際には使用するようにします。


上記の図では黄色の矢印の部分が計算用に作られた隙間。(これが無いとボーンが不安定な動きをします)
Right Forearm RealとRight Bicep realが実際の腕を制御するボーンです。

ボーン名 コンストレインツ ターゲット ボーン階層
Right Forearm Real

エイム(Z軸のみターゲットまで伸ばす)

Right Hand

Right Bicepの子階層
Right Bicep real エイム
Right Forearm Real Right Bicep と同じ階層


なお、これだけでは肩〜肘部分での捻りがRealに反映されないのですが、実際は捻り専門のボーン、Right Bicep roll_1-4で実行しています。


Right Bicep roll_1-4はRight Bicep realの子階層のでなおかつ同じ軸上に有り、ロールのみをRight Bicepを参照しています。
ロールの%設定は腕のどの位置にスプラインがあるかによります。
目安として、(肩から割り当てるスプラインまでの距離)/(肘から肩までの距離)*100)を%に設定すればよいでしょう。
僕は微調整をして以下のような設定になっています。

ボーン名 コンストレインツ %設定 ターゲット ボーン階層
Right Bicep roll_1

ロールライク

100%

Right Bicep

Right Bicep realの子階層
Right Bicep roll_2 50%
Right Bicep roll_3 25%
Right Bicep roll_4 20%

また、肘〜手の捻りに関しても上記と同じ手法が出来そうにも思うのですが、ちょっと違う手法を使っています。
(確か一時期出ていたバグの回避のためだったような.....)

Right Handの子階層にRight Forearm roll_Targetというボーンを造りこれをRight Forearm Realにエイムさせます。
これによりRight HandのロールにあわせてロールするRight Forearm roll_Targetが出来ます。
これに、捻り制御用のRight Forearm roll_1-3を%指定でオリエントさせ捻りをスプライン毎に分散させます。

ボーン名 コンストレインツ %設定 ターゲット ボーン階層
Right Forearm roll_Target

エイム

100%

Right Forearm Real

Right Handの子階層
Right Forearm roll_1 オリエント
30% Right Forearm roll_2 Right Forearm Realの子階層
Right Forearm roll_2 オリエント
50% Right Forearm roll_Target Right Forearm Realの子階層
Right Forearm roll_3 オリエント
90% Right Forearm roll_Target Right Forearm roll_2の子階層


■EasySetupの腕ボーン設定■

bone-end "Right Bicep real" "Right Forearm Real" ★リアルボーンの処理
リアルボーンのズレを補正します。

bone-fit"Right Bicep_sub_1" "Right Bicep real"
bone-end "Right Bicep_sub_1" "Right Bicep_sub_1" 0.5

bone-fit "Right Bicep_sub_2" "Right Bicep_sub_1"
bone-fit "Right Bicep_sub_3" "Right Bicep_sub_1"
bone-end "Right Bicep_sub_2" "Right Bicep_sub_2" 0.3
bone-end "Right Bicep_sub_3" "Right Bicep_sub_3" 0.5
★肩の処理
この式では上側の部分で、補助ボーン(Right Bicep_sub_1)をターゲットのRight Bicep Realにフィットさせ、ボーンのエンドをスタートに50%近づけ同じ向きで長さの違うようにして視認性をあげています。
さらにそのRight Bicep_sub_1に対して同じ作業をRight Bicep_sub2-3も行っています。
bone-translateto "Right Bicep" "Right Bicep real"
bone-end "Right Bicep" "Right Elbow"
bone-end-end "Right Bicep" "Right Elbow" 0.2
bone-pivot-end "Right Forearm" "Right Bicep"
bone-end "Right Forearm" "Right Hand”

★腕の制御用ボーンの位置調整
あらかじめ調整済みのRight Bicep real、Right Forearm_Real、Right Elbowの位置を元にRight Forearm、Right Bicepの位置を調整しています。

具体的には一旦、Right BicepのendをRight Elbowのstart位置に置いて、Right Elbowの先端方向に引っ張り上げ、そこをstartとしてRight Forearmwoおき、endをRight Handにしています。

bone-fit "Right Bicep roll_1" "Right Bicep real"
bone-fit "Right Bicep roll_2" "Right Bicep real"
bone-fit "Right Bicep roll_3" "Right Bicep real"
bone-fit "Right Bicep roll_4" "Right Bicep real"

bone-end "Right Bicep roll_1" "Right Bicep roll_1" 0.1
bone-end "Right Bicep roll_2" "Right Bicep roll_2" 0.2
bone-end "Right Bicep roll_3" "Right Bicep roll_3" 0.3
bone-end "Right Bicep roll_4" "Right Bicep roll_4" 0.4

★肩〜肘の処理
この式では上側の部分で、補助ボーン(Right Bicep roll_1-4)をターゲットのRight Bicep Realにフィットさせます。

これで動作としては問題ないのですが、全く同じボーンが重なっていると、ちょっと解りにくいので、下側の部分で、ボーンのエンドをスタートに近づけ同じ向きで長さの違うようにして視認性をあげています。

bone-end "Right Forearm Real" "Right Hand"
bone-fit "Right Forearm Real_sub1" "Right Forearm Real"
bone-fit "Right Forearm Real_sub2" "Right Forearm Real"
bone-fit "Right Forearm Real_sub3" "Right Forearm Real"

bone-end "Right Forearm Real_sub1" "Right Forearm Real_sub1" 0.6
bone-end "Right Forearm Real_sub2" "Right Forearm Real_sub2" 0.7
bone-end "Right Forearm Real_sub3" "Right Forearm Real_sub3" 0.8

★肘の処理
肘に関する解説部分参照

bone-fit-reverse "Right Forearm roll_Target" "Right Forearm Real"
bone-fit "Right Forearm roll_1" "Right Forearm roll_Target"
bone-fit "Right Forearm roll_2" "Right Forearm roll_Target"
bone-fit "Right Forearm roll_3" "Right Forearm roll_Target"

bone-end "Right Forearm roll_1" "Right Forearm roll_1" 0.3
bone-end "Right Forearm roll_2" "Right Forearm roll_2" 0.5
bone-end "Right Forearm roll_3" "Right Forearm roll_3" 0.7

★肘から手の処理
この式では上側の部分で、ターゲットのRight Forearm roll_TargetをRight Forearm Realに反転フィットし補助ボーン(Right Forearm roll_1-4)をターゲットのRight Forearm roll_Targetにフィットさせます。

これで動作としては問題ないのですが、全く同じボーンが重なっていると、ちょっと解りにくいので、下側の部分で、ボーンのエンドをスタートに近づけ同じ向きで長さの違うようにして視認性をあげています。
bone-fit "Right Hand_sub" "Right Hand"
bone-end "Right Hand_sub" "Right Hand_sub" 0.5
★手の処理
この式では上側の部分で、補助ボーン(Right Hand_sub)をターゲットのRight Handにフィットさせます。

これで動作としては問題ないのですが、全く同じボーンが重なっていると、ちょっと解りにくいので、下側の部分で、ボーンのエンドをスタートに近づけ同じ向きで長さの違うようにして視認性をあげています。

 

 



このページはまだ未完成です。そのうち改訂とか追記とかやるんじゃなかろうかと。