スマートキネマティクスの設定
スマートキネマティクスは、インバースキネマティクス(以下、IK)の動作を補助し、複雑な関節構造を持った形状のポーズやモーションを簡単に設定することができる機能です。人体や動物などのキャラクタ、多関節が連動する機械などの複雑な動きをリアルに再現したい場合に威力を発揮します。
注意スマートキネマティクスは、ProfessionalとStandardにのみ搭載されている機能です。
●属性の設定
スマートキネマティクスを使用するには、IKとして動作するジョイントに適正な属性を設定する必要があります。
◆ジョイントに属性を設定する
- ShadeExplorer から「プリセット」の「ドキュメント-サンプル」にある「Supplemental Manual」に収録されている「smartkinematics01_setup.shd」を開きます。
- また、ブラウザが表示されていない場合は、「表示」メニューから「ブラウザ」を選択して、ブラウザを表示します。
- 「表示」メニューから「スマートキネマティクス」を選択します。
「スマートキネマティクス」ウインドウが表示されます。
スマートキネマティクス
- 「|Body」ジョイントを選択して、「スマートキネマティクス」ウインドウの「ルート」グループの「適用」ボタンをクリックします。
「|Body」ジョイントにルート属性が設定され、ブラウザに「|Body:ルート(スマートキネマティクス)」と表示されます。
スマートキネマティクス
- 「|Left Ankle」と「|Right Ankle」ジョイントを同時に選択して、「スマートキネマティクス」ウインドウの「ゴール」グループの「適用」ボタンをクリックします。
「|Left Ankle」と「|Right Ankle」ジョイントにゴール属性が設定され、ブラウザにそれぞれ「|Left Ankle:ゴール(スマートキネマティクス)」「|Right Ankle:ゴール(スマートキネマティクス)」と表示されます。
スマートキネマティクス
- 「|Body:ルート(スマートキネマティクス)」ジョイントを選択した状態で、編集モードを「ジョイント」に切り替えて(コントロールバーの「編集モード」ポップアップメニューから「ジョイント」を選択)、マニピュレータをドラッグして動かします。
「|Left Ankle」と「|Right Ankle」ジョイントの位置に拘束が発生し、足首が常に元の位置(拘束が発生した場所)の方向を向くように動きます。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- ツールボックスの「パート」タブから「ボールジョイント」を選択して、二足歩行のロボットの両足のつまさきとかかとの位置にボールジョイントを作成します。
- ブラウザで、作成したボールジョイントを以下の位置に配置します。
- 「|Left Ankle:ゴール(スマートキネマティクス)」「|Right Ankle:ゴール(スマートキネマティクス)」が内包している「ボールジョイント」をすべて選択して、「スマートキネマティクス」ウインドウの「エンド」グループの「適用」ボタンをクリックします。
「ボールジョイント」にエンド属性が設定され、ブラウザに「ボールジョイント:エンド(スマートキネマティクス)」と表示されます。
スマートキネマティクス - 「|Body:ルート(スマートキネマティクス)」ジョイントを選択した状態で、編集モードを「ジョイント」に切り替えて、マニピュレータをドラッグして動かします。
「|Left Ankle:ゴール(スマートキネマティクス)」と「|Right Ankle:ゴール(スマートキネマティクス)」ジョイントが拘束され、つま先とかかとの位置関係が維持されるように動きます。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- 「|Left Ankle:ゴール(スマートキネマティクス)」が内包している、つまさき側の「ボールジョイント:エンド(スマートキネマティクス)」を選択した状態で、編集モードを「ジョイント」に切り替えて、マニピュレータをドラッグして動かします。
形状全体が、つまさきのボールジョイントの動きに引っ張られるように動きます。
以下の説明において、ルート、ゴール、エンドの各属性が設定されたジョイントをルートジョイント、ゴールジョイント、エンドジョイントと呼びます。
◆属性を削除する
属性を設定したジョイントから属性を削除する場合は、属性を削除したいジョイントを選択して、「スマートキネマティクス」ウインドウの「属性削除」ボタンをクリックします。
スマートキネマティクス |
---|
また、既に属性が設定してあるジョイントに異なる属性を設定したい場合は、設定してある属性を削除してから、新たな属性を設定する必要があります。
●インバースキネマティクスの詳細設定
スマートキネマティクスでは、IKを操作したときの動作を状況に合わせて設定することができます。
◆ジョイントの拘束を制御する
IK操作をしたときにゴールジョイントの拘束を制御する方法が選択できます。
この機能は、IKチェーン全体をオフセット移動するような場合の動作には影響しません。以下で、ジョイントの拘束を制御する方法ごとの動作の違いを確認します。
- ShadeExplorer から「プリセット」の「ドキュメント-サンプル」にある「Supplemental Manual」に収録されている「smartkinematics02_snap.shd」を開きます。
- 「表示」メニューから「スマートキネマティクス」を選択して、「スマートキネマティクス」ウインドウを表示します。また、ブラウザが表示されていない場合には、「表示」メニューから「ブラウザ」を選択して、ブラウザを表示します。
- ブラウザで 「ルートパート」以外を選択した状態で、「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「有効」チェックボックスをオンにし、「インバースキネマティクス」グループの「選択ジョイント拘束」ポップアップメニューから「通常」を選択します。
スマートキネマティクス - 「Left Knee」ジョイントを選択した状態で、ツールボックスの「作成」タブの「移動」ボタンをクリックし、「ジョイント操作」ツールのポップアップメニューから「||Left Leg」を選択して、IKを操作します。
- 足首に拘束が発生して、つま先やかかとの位置がなるべく移動しない範囲で膝や大腿が動きます。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- 「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「選択ジョイント拘束」ポップアップメニューから「ハーフ」を選択します。
スマートキネマティクス - 「Left Knee」ジョイントを選択した状態で、ツールボックスの「作成」タブの「移動」ボタンをクリックし、「ジョイント操作」ツールのポップアップメニューから「|Left Leg」を選択して、IKを操作します。
膝や大腿が自由に動き、足首以下は、つまさきとかかとが元の角度を保持するように追従します。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- 「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「選択ジョイント拘束」ポップアップメニューから「フリー」を選択します。
スマートキネマティクス - 「Left Knee」ジョイントを選択した状態で、ツールボックスの「作成」タブの「移動」ボタンをクリックし、「ジョイント操作」ツールのポップアップメニューから「|Left Leg」を選択して、IKを操作します。
膝や大腿が自由に動き、足首以下は、固定されたまま追従します。
◆エンド角度を保持する
歩行中にキャラクタの足が地面から離れるときなど、エンドジョイントが元の位置を維持できない場合に、ゴールジョイント以下のジョイントをどのように動かすかを設定します。
以下で、エンド角度を保持した場合とそうでない場合の動作の違いを確認します。
- ShadeExplorer から「プリセット」の「ドキュメント-サンプル」にある「Supplemental Manual」に収録されている「smartkinematics02_snap.shd」を開きます。
- 「表示」メニューから「スマートキネマティクス」を選択して、「スマートキネマティクス」ウインドウを表示します。
また、ブラウザが表示されていない場合には、「表示」メニューから「ブラウザ」を選択して、ブラウザを表示します。 - ブラウザで 「ルートパート」以外を選択した状態で、「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「有効」チェックボックスをオンにし、「エンド角度保持」チェックボックスをオンにします。
スマートキネマティクス - 「|Body:ルート(スマートキネマティクス)」ジョイントを選択した状態で、編集モードを「ジョイント」に切り替えて、マニピュレータをドラッグして動かします。
体の移動や回転に関わらず、足首のジョイントは足首以下が元の角度を保持するように動きます。
重要エンド角度を保持するには、2つ以上のエンドジョイントが必要です。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- 「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「エンド角度保持」チェックボックスをオフにします。
スマートキネマティクス - 「|Body:ルート(スマートキネマティクス)」ジョイントを選択した状態で、編集モードを「ジョイント」に切り替えて、マニピュレータをドラッグして動かします。
足が地面から離れたときに、足首のジョイントはつま先とかかとが元の位置の方向を向くように動きます。
●接地面にスナップする
接地スナップ補正機能により、エンドジョイントの位置が接地面の高さに近いときに、自動的にIKを調節してエンドジョイントを接地面にスナップさせることができます。接地面の高さは任意に変更することができます。歩行モーションなどで、正確な接地が必要な場合に便利な機能です。
なお、接地スナップ補正機能は、「インバースキネマティクス」グループの「有効」チェックボックスがオフ、または「有効」チェックボックスがオンかつ「選択ジョイント拘束」ポップアップメニューで「フリー」が選択されている場合に設定が有効になります。
- ShadeExplorer から「プリセット」の「ドキュメント-サンプル」にある「Supplemental Manual」に収録されている「smartkinematics02_snap.shd」を開きます。
- 「表示」メニューから「スマートキネマティクス」を選択して、「スマートキネマティクス」ウインドウを表示します。
また、ブラウザが表示されていない場合には、「表示」メニューから「ブラウザ」を選択して、ブラウザを表示します。 - ブラウザで 「ルートパート」以外を選択した状態で、「スマートキネマティクス」ウインドウの「インバースキネマティクス」グループの「有効」チェックボックスをオフにします。
- 「|Body:ルート(スマートキネマティクス)」ジョイントまたはそれ以下の階層の形状を選択した状態で、「スマートキネマティクス」ウインドウの「接地スナップ補正」グループの「有効」チェックボックスをオンになっていることを確認します。
スマートキネマティクス - 「Left Knee」を選択した状態で、ツールボックスの「作成」タブの「移動」ボタンをクリックし、「ジョイント操作」ツールのポップアップメニューから「Left Knee」を選択して、図形ウインドウ上でドラッグして動かします。
つま先とかかとの位置にあるエンドジョイントの位置が、接地面の高さから1/2グリッド以内に近づいたときに、接地面の高さにスナップします。
- 「編集」メニューから「取り消し」を選択して、操作を取り消します。
- 「Left Ankle」を選択した状態で、ツールボックスの「作成」タブの「移動」ボタンをクリックし、「ジョイント操作」ツールのポップアップメニューから「Left Ankle」を選択して、図形ウインドウ上でドラッグして動かします。つま先とかかとの位置にあるエンドジョイントのうち、低い位置にある方が常に接地面に接地するように、膝や大腿の回転が調節されます。
●モーション補完による位置ズレを補正する
クリーンナップ機能により、モーションポイント間でのモーション補完が原因で、歩行モーションなどで足の位置がすべってしまうような結果になる現象を補正することができます。
クリーンナップ機能は、モーションの設定後に「クリーンナップ実行」ボタンで、位置ズレを計測する必要があります。また、クリーンナップを実行した後にモーションを変更した場合は、再度クリーンナップを実行する必要があります。
- ShadeExplorer から「プリセット」の「ドキュメント-サンプル」にある「Supplemental Manual」に収録されている「smartkinematics03_cleanup.shd」を開きます。
- 「表示」メニューから「スマートキネマティクス」を選択して、「スマートキネマティクス」ウインドウを表示します。また、ブラウザが表示されていない場合には、「表示」メニューから「ブラウザ」を選択して、ブラウザを表示します。
- 「|Body:ルート(スマートキネマティクス)」ジョイントを選択した状態で、「スマートキネマティクス」ウインドウの「クリーンナップ」グループの「有効」チェックボックスがオフになっていることを確認します。
スマートキネマティクス - 「表示」メニューから「モーション」を選択して、「モーション」ウインドウを表示します。
- 「モーション」ウインドウの再生ボタン をクリックして、モーションをプレビューします。モーションポイント間で足の位置が滑ったり、地面に沈んだりするのが確認できます。
- 「スマートキネマティクス」ウインドウの「クリーンナップ」グループの「有効」チェックボックスをオンにします。
スマートキネマティクス - 「モーション」ウインドウで、すべてのモーションポイントを選択します。
- 「スマートキネマティクス」ウインドウの「クリーンナップ」グループの「クリーンナップ実行」ボタンをクリックします。
スマートキネマティクス - 「モーション」ウインドウの再生ボタンをクリックして、モーションをプレビューします。足の位置が拘束され、滑らなくなりました。
しかし、ジャンプの動きがおかしくなったことが確認できます。
- 「モーション」ウインドウで、ジャンプの動作が始まる10-12番目(85-95フレーム)のモーションポイントを選択します。
- 「スマートキネマティクス」ウインドウの「クリーンナップ」グループの「無効化」ボタンをクリックします。
スマートキネマティクス - 「モーション」ウインドウの再生ボタンをクリックして、モーションをプレビューします。クリーンナップの無効化を設定した範囲でジョイントの拘束がなくなり、全体として正常な動作になったことが確認できます。