2004/10/03 2.0 AutomatonType2を追加
2003/11/15 1.1 WeightMapの機能拡張。L/R_Hipの回転制限をなくした。L/R_ForarmDir_IKNullの制御の公開。
Automaton 腰までの高さを基準にコントローラのサイズを修正するように変更。顔ターゲットの表示位置ロジックを改善。
2003/10/30 1.0公開
2003/10/22 β0.91 UseWeightMapスイッチの追加
2003/10/02 β版登録
1)サンプルデータを参考にキャラクタを作成します。Skelegonsデータはサンプルのものをコピーして使用してください。回転角などの問題がある為、Skelegonsの部分コピーは避けたほうが無難です。
2)オブジェクトを読み込みます。IKコントロールNULLは骨の位置から生成されますのでSkelegons入りのモデルだけがあればOKです。
3)まず、「その場でペアレント」がOFF状態になっていることを確認してください。「その場でペアレント」が有効になっているとRig作成が正常に行なえません。こんな感じになります。
4)必ずセットアップは初期位置<0,0,0>の状態と0フレーム目で行なってください。もし、違っている場合はエラー表示されます。
5)Genetic LScript「Automaton.lsc」を実行してください。
実行すると以下のようなダイアログが表示されます。ここで、生成したいRigを選択してください。IKBlenderAMEx.pがインストールされていないとIK/FKブレンドが正常に動作しないので注意してください。
6)IK/FKブレンドはRig作成時にIKSlidHolder.lwoが必要です。ダイアログでIKSlidHolder.lwoのファイルの位置を指定してください。初期値ではContentDirectory以下になっています。IKSlidHolder.lwoはプラグインと同じLzhにはいっています。
7)「WeightMap」はウェイトマップを使用するかどうかのスイッチです。
●「create」 Weight名を自動的に作成します。
●「NotUse」 WeightMapを使用しません。
●「Skelegon」 Skelegonデータをそのまま使用します。
8)「OK」を押すと指定されたRigが生成されます。
AutomatonType2は二重関節モデル専用のAutomatonRigを生成するツールです。二重関節モデルをコンバートする場合は必ずこのツールを使用してください。
二重関節モデルの利点。
・足や腕の肘の形状を保持しやすくなります。
・伸ばした状態でのモーションの不具合を抑えることが出来ます。(関節がパキっと曲がる、足の甲がゆがむ)
・二重関節の位置を工夫することで肘や膝に遊びが出来、逆関節への曲がりをシミュレーション出来ます。l
二重関節モデルの欠点
・FKモデルでの操作性が悪くなります。
AutomatonはSkelegons上の止め骨をサポートしています。 また止め骨の作成を補助する為に名前規約により自動的にボーン無効、非表示にすることが可能です。
止め骨を非表示及び無効にしたい場合サフィックスとして_Nullを追加してください。
以下に例を示します。
L_Shoulder_Null
↑
ここを_Nullするとボーンが無効、非表示になる。注意)_NULLや_nullでは上記の機能は動きません。
Automatonは名前規約によってIK設定を自動的に行なうことが可能です。
_StartによってIK設定のを開始します。この名前のNullにはIKStopが適応されて、上位の階層にIKが伝わらないようになります。
_Start以下の階層にあるNullは回転中心のResetとH/PにIK制御を設定します。
_IKはIKの終端です。終端部分にはControler用のNullが追加されます(Nullの親はMasterになっているので必要に応じて親を変更してください)。
_Startと_IKは対になっています。必ず忘れないようにしてください。以下に名前規約の例を記します。
Kami1_Null - Kami2_Start - Kami3 -Kami4 - Kami5_IK
↓
Kami5_IKCtrl(Nullを追加)
↑ ↑
↑ H,P IKに変更、回転中心の記録実行。
IK効果停止
この機能はLW7.5Xでは動作しません。
Automatonは名前規約によってMuscleIKを設定することが出来ます。この機能を使うには予めATMuscle.lsをLWに登録しておくことが必要です。Muscleの設定は以下のフローに従ってください。
1)Modelerのスケルゴンで骨を追加し、命名規約に沿って名前を変更します。
*_Start -> *_Muscle -> *_IK
の様にします。
2)Muscleを配置します。人間の骨格図に合わせるとよい結果が出るようです。また。あまり伸縮させないほうがスムーズな変形になります。
3)Layoutに移ってAutomatonType2で変換します。このとき予め「その場でペアレント」をONにしておくと便利です。
4)IKBlendAutoBaker.lsでAutoBakeモードに変更します。必ず0フレーム目で設定することを忘れないで下さい。
5)生成されたMuscleBoneControlNullはMaster以下に付いているので親子関係を変更してください。この作業は自動では行なわれません。
6)Boneの適応が100%だと形状を保ち難いので_MuscleのBoneを20%ぐらいにする良いようです。
7)うまく変形しなければ2)に戻って修正しなおしてください(RemoveAutomaton,lsを使用すると簡単にRigをクリア出来ます)。
Automatonの名前規約一覧は以下の通りです。
PostFix(終端名) | 機能 | 例 |
_Null | Boneの無効化/非表示化する。 | Root_Null |
_Start |
IK開始(_IKを使用する場合必ず必要)。このNullにIK効果停止(IKStop)が設定される。これ以下の階層のNulにlは「H/PのIK制御」と「回転中心の記録」が実行される。 |
Kami2_Start |
_IK |
IKControler用Bone。[*]_IKCtrlという名前でNullを追加し、Bone開始位置にNullを移動する。追加されるNullの親はMasterとする。 |
Kami5_IK |
_Muscle | ATMuscle.lsのプラグインを自動的に追加する。予めATMuscle.lsをLWに登録しておくこと。この機能はLW7.5Xでは動作しません。 | Kami2_Muscle |
Automatonでは内部的に「*____Base」という名前を使用しています。この為、この名前規約と同一の名前がシーン内にあると誤動作する可能性があります。
AutomatonRigのコントロール方法のを以下に示します。
●IKモデル、IK/FKブレンドモデル 共通
NULL/Bone名 | 機能 | 特記事項 |
Master | 全体位置と回転 | |
Root | 体の中心の位置と回転 | |
Spine1〜Spine3 | 背骨の曲がり | |
Neck | 首の根元 | 首が伸びすぎた場合、調節出来ます。 |
HeadGoal | 首の向き |
首の向きをIKでコントロールします。 |
R_Shoulder | 左鎖骨の動き | 手でFlipが起きた場合、鎖骨のバンク回転で抑えられる時があります。 |
R_ArmGoal | 左腕の位置と回転 | IK/FKブレンドモデルの場合、HandsWithArmsIKかR_HandsIKが有効になっている必要があります。 |
L_Shoulder | 右鎖骨の動き | 手でFlipが起きた場合、鎖骨のバンク回転で抑えられる時があります。 |
L_ArmGoal | 右腕の位置と回転 | IK/FKブレンドモデルの場合、HandsWithArmsIKかR_HandsIKが有効になっている必要があります。 |
R_FtCtrl | 左足の位置とかかと回りの回転 | IK/FKブレンドモデルの場合、FootsWithLegsIKかL_FootIKが有効になっている必要があります。 |
R_FtRot | 左つま先の曲がり | |
R_FtTipGoal | つま先を中心とした回転 | |
L_FtCtrl | 右足の位置とかかと回りの回転 | IK/FKブレンドモデルの場合、FootsWithLegsIKかL_FootIKが有効になっている必要があります。 |
L_FtRot | 左つま先の曲がり | |
L_FtTipGoal | 右つま先を中心とした回転 |
●IKモデル
NULL/Bone名 | 機能 | 特記事項 |
R_Shoulder2 | 左肘の向き |
回転が大きいと腕や足の付け根が破綻する可能性があります。 また、Flipの可能性も大きくなるので注意してください。 |
L_Shoulder2 | 右肘の向き | |
R_Hipr2 | 左膝の向き | |
L_Hip2 | 右膝の向き |
●IK/FKブレンドモデル
NULL/Bone名 | 機能 | 特記事項 |
R_Shoulder2_IKNull | 左肘の向き |
回転が大きいと腕や足の付け根が破綻する可能性があります。 また、Flipの可能性も大きくなるので注意してください。 |
L_Shoulder2_IKNull | 右肘の向き | |
R_Hipr2_IKNull | 左膝の向き | |
L_Hip2_IKNull | 右膝の向き | |
R_Hand | 左手首の回転 | HandsWithArmsIKとR_HandsIKが無効になっている必要があります。 |
L_Hand | 右手首の回転 | HandsWithArmsIKとR_HandsIKが無効になっている必要があります。 |
ブレンド率の変更はIKSlideHolderのMorphMixer各項目によって行なえます。以下にその一覧を示します
NULL/Bone名 | 機能 | 特記事項 |
IK_1.ActivateIK | 全IKの有効/無効 | この項目が無効だとすべての項目が無効になります。 |
IK_1.BothArmsIK | 両腕IKの有効/無効 | |
IK_1.BothLegsIK | 両足IKの有効/無効 | |
IK_1.FootWithLegsIK | 足首方向をコントローラに粘着させる | 足が空中にある場合など無効にすると便利です。 |
IK_1.HandWithArmsIK | 手首方向をコントローラに粘着させる | 初期状態で無効になっています。 |
IK_1.HeadIK | 首IKの有効/無効 | |
IK_2.R_ArmIK | 左手IKの有効/無効 | IK_1.BothArmsIKが無効の場合のみ効果があります。 |
IK_2.R_FootIK | 左足首の回転粘着 | IK_1.FootWithLegsIKが無効の場合のみ効果があります。 |
IK_2.R_HandIK | 左手首の回転粘着 | IK_1.HandWithArmsIKが無効の場合のみ効果があります。 |
IK_2.R_LegIK | 左足IKの有効/無効 | IK_1.BothLegsIKが無効の場合のみ効果があります。 |
IK_2.L_ArmIK | 右手IKの有効/無効 | IK_1.BothArmsIKが無効の場合のみ効果があります。 |
IK_2.L_FootIK | 右足首の回転粘着 | IK_1.FootWithLegsIKが無効の場合のみ効果があります。 |
IK_2.L_HandIK | 右手首の回転粘着 | IK_1.HandWithArmsIKが無効の場合のみ効果があります。 |
IK_2.L_LegIK | 右足IKの有効/無効 | IK_1.BothLegsIKが無効の場合のみ効果があります。 |
ATItemPickerを使用してIKSlideHolderのMorphMixerを表示することが可能です。
●以下に概念図を示します。
IKモデル
IK/FKブレンドモデル
注意)IK/FKブレンド率の変更は上記のIKSLidHolderのMotionMixerチャンネルでも行なえますが、ATToolsのATIKCtrl.lsを使うと効率よくブレンド率を変更できます。
●判りにくいコントローラの機能の概要を図にしてみました。
本ソフトウェアおよび書類を使用したことまたは使用できなかったことから生じる、 直接損害、間接損害 につき一切の責任を負いかねますので 予め了承ください。 要望やバグがある場合は以下のアドレスまでメールしてください。
Copyright Noboru Fujiyama 2003/05/27
e-mail : noboyama@yk.rim.or.jp
homepage : http://www.yk.rim.or.jp/~noboyama/