AutomatonRigを作成する時Modeler作業上の注意点についてです。
手首、肘、肩、背骨を水平になるようにモデリングしてください。
この部分が水平でないと手首がFlipしやすくなります。
首と目は地面に水平になるように配置してください。
構成に重用な骨は以下の通りです。
特に肩/腰の以下の部分は水平/垂直度を保つ必要があります。これらの骨は頂点を動かさずに一群として移動させてください。また親子関係が付けられていない骨もあります。これらの部分はAutomatonToolsの内部で連結されますのでModeler上では結合しないで下さい。
詳細な骨の名前は以下の通りです。
R/L_ShoulderCtr-R/L_ArmDir-R/L_Arm(この骨のみ水平方向であれば垂直度はなくても良い、下図参照)
R/L_LegDir-R/L_HipCtr-R/L_Thigh(この骨のみ垂直方向であれば垂直度がなくても良い)
水平ならば肘は内側に曲がっても大丈夫です。(肘や膝は多少曲げた方が安定します)
キャラクタのモデリングが終わったら骨を組み込みます。骨はサンプルシーンの骨をコピーして、裏レイヤーに貼り付けて下さい。
ハンドルの関係が狂う場合があるので部分的にコピーは行なわない方が良いです。また、同じ理由でSkelegonsエディターの実行も避けてください。追加する骨の関係でどうしてもエディットする必要がある場合はSkelegonsエディタ実行後サンプルシーンから体の骨を移植しし直してください。
ヴァーテックスペイントに関しては上記の様な制限事項は有りません。
ヴァーテックスペイントにおいても同様に中心点の回転を書き換えることが判りました。中心点の回転がずれるとAutomatonRigは正常に動作しません。このことからSkelonEditerやヴァーテックスペイントを使う場合は以下の手順でSkelegonsを待避、復帰してください。
Skelegonsを選択
別レイヤーに待避
ヴァーテックスペイントもしくはSkelegonEditerの編集を行なう
本体のSkelegonsを削除して、待避してあったSkelegonsに置き換える
「移動」等を使って骨を移動します。このとき以下の項目に注意して下さい。
手首と手首の骨(R/L_HandDir)は垂直になるように同時に動かしてください。
基準となる骨(R/L_ArmDir、R/L_LegDir、Root)が常に水平になるようにしてください。
ATFKtoIKとの関係から左図の様に角度が12度ぐらいになっていることが好ましいです。
すべての設定が終わったら骨のレイヤーとキャラクタのレイヤーと統合してください。
Automatonはコントローラを骨の位置から算出するのでこれ以外の項目に注意する必要はありません。
キャラクタのウェイトはサンプルファイルを参考に付けて下さい。
Rigのシステム上の問題から以下の骨にウェイトを付けることは出来ません。
・R/L_ArmDir 肩の回転制御
・R/L_LegDir 腰の回転制御
ハイポリゴンの場合、WeightMapを用意することは大変困難です。Automatonでは従来使用されていた止め骨が使用可能です。止め骨を使えば、WeightMapがなくてもAutomatonRigが使用出来ます。
この場合は以下の手順で行なってください。
1)止め骨をSkelegonsに追加します。Skelegons追加の際には以下の項目に注意して下さい。
・元のSkelegons階層に割り込むような形で骨を追加しないでください。
・Skelegonsエディターは使用できません。
・浮動ボーンは対応していません。浮動させたい場合は捨て骨を使ってください。
2)シーンにモデルを読み込みAutomaton.lscを実行します。
3)Use WeightMapのチェックをOFFにします。これで骨にWeightMap指定されなくなります。
4)追加された骨のうち必要でないもの(捨て骨など)を無効にします。また、追加された骨は自動整列されないのでスケマティックを調節してください。
5)後はWeightありのモデルと同じ様に使用可能です。またAutomaton設定後、骨を追加したり、マッスルボーンなどの仕組みを入れることも出来ます。
止め骨の作成を補助する為に名前規約により自動的にボーン無効、非表示にすることが可能です。 止め骨を非表示及び無効にしたい場合サフィックスとして_Nullを追加してください。 以下に例を示します。
L_Shoulder_Null
↑
ここを_Nullするとボーンが無効、非表示になる。注意)_NULLや_nullでは上記の機能は動きません。
以下の例は止めボーン&止めWeightMapを利用した例です。このデータはAutomaton\sample\lwo¥eve_HarfWeight.lwoにあります。
このモデルをロードする場合はWeightMapオプションを「Skelegon」指定で読み込んでください。
髪の毛やスカート等に骨を入れて動かす場合、大量のコントローラNullとIKの設定を行なう必要があります。この機能は名前規約に従ってこれらの作業を簡略化します。
Skelegonsによって追加された骨のサフィックスに_IKの名前があった場合
・骨にフルタイムIKの設定を行い、骨の位置に「*_IKCtrl」という名のコントローラ用のNullを作成します。
・_Startか_Nullのサフィックスが見つかるまで親を検索し、H、Pの設定をIK制御に切り替えます。
・_Startのサフィックスが見つかった場合、「子孫のIK効果を及ぼさない」を設定します。
注意事項
・_IKが付いた骨の名前は重ならないようにしてください。これは、同じ名前があるとコントローラNullを追加する際に正確な設定が行なえなくなるためです。
・親検索を停止する為、_Startか_Nullの付いた骨が必要になります。これが無いとRootまでIK制御の設定を修正してしまうことになります。
・スケマティックの整形機能やコントローラ用のNullの親指定機能は用意していません。お手数ですが手作業でお願いします。
●上腕と下腕の長さが違うモデルがあるが問題はありませんか?
→テストしたところ問題ありませんでした。ただし、モデルによってはFlipを起こす可能性があります。Flipする場合はFKでモーションを動かして下さい。
●なぜ部分コピーはいけないの?
→肩と腰の部分は微妙なバランスの上に成り立っています。この為回転角度の初期位置が狂うとNonFlipSystemが聞かなくなってしまう為です。
これ以外の部分ではコピーやミラーを行なっても問題は発生しません。
●モデルに骨を追加したいのだが。
→モデルのSkelegonsに骨を追加することが可能です。このとき以下の項目に注意してください。
・元のSkelegons階層に割り込むような形で骨を追加しないでください。
・Skelegonsエディターは使用できません。 スケルゴンエディターについてを参照してください。
・浮動ボーンは対応していません。
●足の角度は12度ぐらいじゃなきゃいけないの?
→ATFKtoIKの変換の時に問題になります。この角度が大きく異なっていると足コントローラの水平度が保てなくなります。
このようなモデルは「Offset H Angle」の値を修正してからATFKtoIKを実行してください。ただ、あまりにも面倒になるのでこの値を保つことをお勧めします。
●突然膝や肘が曲がらなくなった。(下記のスケルゴンエディターについても参照してください)
→VirtexPaintやSkelegonEditerは中心点の回転を修正する仕様になっています。この為、これらのツールを使うと上記の現状が発生する可能性があります。
VirtexPaintやSkelegonEditerを使用する場合は必ず別レイヤーにSkelegonsを待避するようにしてください。また、すでに発生してしまった場合は
・もう一度サンプルからSkelegonsを移植する。
・肘や膝の回転角度制限を修正する。(ただし他の部分で不都合が発生します。あくまで最後の手段で行なって下さい)
の二方法で対処してください。、また、上記の「骨の埋め込み」も参考にして下さい。
●スケルゴンエディターについて SkelegonEditer2.0 (2006/09/11)
以前からあったスケルゴンエディタの問題点の対処方法が判りました。ただし、SkelegonEditer1.0では対応不可です。
SkelegonEditer2.0を使用する場合、「バンク」タブで
>「L/R_ForeArm、L/R_Elbow、L/R_Knee、L/R_Sin」 を 「バンク角度を使用しない」
にしてください。
●骨を適応すると目が飛び出す。(2006/09/11)
下図中央の様に骨の位置が地面と水平で無い場合、目BoneのBoneReset時に位置関係がおかしくなります。この結果目玉が飛び出たり、引っ込んだりする現状が発生します。
現状これに対応する為には首と目を地面と水平になるように配置してください(下図、左参照)