ジャンプ先: 概要. 戻り値.
関連項目. フラグ. Python 例.
ikHandle( object , [autoPriority=boolean], [connectEffector=boolean],
[createCurve=boolean],
[createRootAxis=boolean],
[curve=name], [disableHandles=boolean], [enableHandles=boolean], [endEffector=string], [exists=string], [forceSolver=boolean], [freezeJoints=boolean], [jointList=boolean], [name=string], [numSpans=int], [parentCurve=boolean], [positionWeight=float], [priority=int], [rootOnCurve=boolean], [rootTwistMode=boolean], [setupForRPsolver=boolean],
[simplifyCurve=boolean],
[snapCurve=boolean], [snapHandleFlagToggle=boolean],
[snapHandleToEffector=boolean],
[solver=string], [startJoint=string], [sticky=string], [twistType=string], [weight=float])
注意:
オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
ikHandle は 「元に戻す」が可能、「照会」が可能、「編集」が可能 です。
ikHandle コマンド は、Maya
内でハンドルを作成、編集、および照会するために使用します。編集と照会機能には、標準の編集(-e)と照会(-q)フラグが使用されます。
ジョイントが 2 つ選択されているときに、フラグ -startJoint と -endEffector
が両方とも指定されていない場合、選択したジョイントからハンドルが作成されます。 単一のジョイントが選択されているときに、フラグ
-startJoint と -endEffector が両方とも指定されていない場合、ハンドルがエンド
エフェクタとして選択したジョイントを使用して作成され、スタート ジョイントがエンド エフェクタを含むジョイント
チェーンの先頭となります。 フラグのデフォルト値は次のとおりです。
- -name "ikHandle#"
- -priority 1
- -weight 1.0
- -positionWeight 1.0
- -solver "ikRPsolver"
- -forceSolver on
- -snapHandleFlagToggle on
- -sticky off
- -createCurve true
- -simplifyCurve true
- -rootOnCurve true
- -twistType linear
- -createRootAxis false
- -parentCurve true
- -snapCurve false
- -numSpans 1
- -rootTwistMode false。
これらのアトリビュートは作成モードで指定できます。また、編集は編集モード(-e)、照会は照会モード(-q)で行います。
戻り値の型は照会モードでは照会フラグが基になります。
connectJoint, ikHandleDisplayScale, ikSolver, ikSystem,
ikSystemInfo, insertJoint, joint,
jointCluster, jointDisplayScale, jointLattice, mirrorJoint, removeJoint, removeJoint
autoPriority, connectEffector, createCurve, createRootAxis, curve, disableHandles, enableHandles, endEffector, exists, forceSolver, freezeJoints, jointList, name,
numSpans, parentCurve, positionWeight, priority, rootOnCurve, rootTwistMode, setupForRPsolver, simplifyCurve, snapCurve, snapHandleFlagToggle, snapHandleToEffector, solver, startJoint,
sticky, twistType, weight
| ロング ネーム(ショート ネーム) |
引数型 |
プロパティ |
name(n) |
string |
   |
|
|
startJoint(sj) |
string |
   |
|
ハンドルのジョイント チェーンのスタート ジョイントを指定します。 |
|
endEffector(ee) |
string |
   |
|
ハンドルのジョイント チェーンのエンド エフェクタを指定します。 エンド エフェクタは、ジョイント、またはエンド
エフェクタとともに指定できます。ジョイントが指定されている場合、エンド エフェクタがジョイントと同じ位置に作成され、この新しいエンド
エフェクタが、エンド エフェクタとして使用されます。 |
|
priority(p) |
int |
   |
|
ハンドルの優先順位を設定します。論理的には、優先順位の値が小さいハンドルは、優先順位の値が大きいハンドルよりも先に処理されます。つまり、優先順位の値が
1 のハンドルは、優先順位の値が 2
のハンドルよりも先に処理されます。ハンドルの優先順位の値は、ゼロより大きくなければなりません。 |
|
autoPriority(ap) |
boolean |
 |
|
このハンドルの優先順位が自動的に割り当てられるように指定します。優先順位は、スケルタル
チェーンのルートからハンドルの開始ジョイントまでの階層距離に基づいて、割り当てられます。 |
|
weight(w) |
float |
   |
|
エラー計算でのハンドルのウェイトを指定します。ウェイトは、ハンドルのゴールがコンフリクトして同時に処理できない場合にのみ、適用されます。この場合、ハンドルのウェイトによってゴールからソリューションまでの「距離」に重みが付けられ、この値を最小化することにより、ソリューションが計算されます。ウェイトの値は、ゼロより大きくなければなりません。 |
|
positionWeight(pw) |
float |
   |
|
ハンドルの位置/方向ウェイトを指定します。 ゴールの位置とエンド
エフェクタの位置の間の「距離」を計算するために使用されます。positionWeight の値が 1.0
の場合、距離はゴール位置とエンド エフェクタ位置の間隔だけが計算され、方向は無視されます。positionWeight の値が 0.0
の場合、距離は方向の距離として計算され、位置は無視されます。positionWeight の値が 0.5
の場合、距離は均等に重みが付けられますが、単位が異なるため、実際には計算できません。
これは直線の単位と角度の単位を合計する方法がないためです。 |
|
solver(sol) |
string |
   |
|
ソルバを指定します。ソルバの中にはプラグインとして実装されるものもあるため、使用可能なソルバの全リストはランタイムまでわかりません。現時点で使用可能なソルバは、ikRPsolver、ikSCsolver
および ikSplineSolver だけです。 |
|
forceSolver(fs) |
boolean |
   |
|
強制的に常にソルバが使用されるように設定します。 これは animSticky
とも呼ばれます。したがって、最初のキーを設定すると、ハンドルは sticky になります。 |
|
snapHandleFlagToggle(shf) |
boolean |
   |
|
ユーザがエンド エフェクタを移動する場合に、ハンドルの位置をエンド
エフェクタの位置にスナップするように指定します。このフラグをオンに設定すると、スケルトンのポーズや調整のためにフォワード
キネマティクスを使用でき、インバース キネマティクスを使用してアニメートできます。 |
|
snapHandleToEffector(see) |
boolean |
 |
|
すべてのハンドルを直ちに移動します。ハンドルの位置と方向は、エンド エフェクタの位置と方向に一致します。 |
|
sticky(s) |
string |
   |
|
このハンドルが、「スティッキー」であることを指定します。有効な値は、「off」、「sticky」、「superSticky」です。スティッキー
ハンドルは、スケルトンをインタラクティブに操作しているときに処理されます。キャラクタの足がスティッキーである場合、ユーザがキャラクタのルートを動かしても、足が常に同じ位置に固定されて動きません。スティッキーでない場合、足はルートとともに移動します。 |
|
connectEffector(ce) |
boolean |
  |
|
デフォルトでは、このオプションは true に設定されています。これは、エンド エフェクタによる変換が、endJoint
による変換とコネクトされていることを意味します。 |
|
jointList(jl) |
boolean |
 |
|
ハンドルにより操作されるジョイントのリストを返します。 |
|
exists(ex) |
string |
 |
|
|
setupForRPsolver(srp) |
boolean |
 |
|
ikSolver が ikRPsolver の場合、新規 ikHandle のために RPRotateSetup
をコールします。これは ikRPsolver に対してのみです。 |
|
enableHandles(eh) |
boolean |
 |
|
特定のハンドルをフル ik に設定します(ikBlend アトリビュート = 1.0)。 |
|
disableHandles(dh) |
boolean |
 |
|
特定のハンドルをフル fk に設定します(ikBlend アトリビュート = 0.0)。 |
|
curve(c) |
name |
   |
|
ikSplineHandle
で使用するカーブを指定します。ジョイントはこのカーブにアラインするように移動されます。-freezeJoints
オプションを使用するときの必須フラグです。 |
|
createCurve(ccv) |
boolean |
 |
|
ikSplineHandle に対してカーブを自動的に作成するかどうかを指定します。 |
|
freezeJoints(fj) |
boolean |
  |
|
-curve オプションで指定したカーブを既存のジョイント チェーンに強制的にアラインさせます。 false
または指定なしの場合は、ジョイントは指定したカーブ上の位置に移動されます。 |
|
simplifyCurve(scv) |
boolean |
 |
|
ikSplineHandle カーブを単純化するかどうかを指定します。 |
|
rootOnCurve(roc) |
boolean |
   |
|
ルートを ikSplineHandle のカーブにロックするかどうかを指定します。 |
|
twistType(tws) |
string |
   |
|
ikSplineHandle
が使用する補間のタイプを指定します。補間オプションには、「linear」、「easeIn」、「easeOut」、および「easeInOut」があります。 |
|
createRootAxis(cra) |
boolean |
 |
|
ikSplineHandle に作用されるジョイントの上に、ルート トランスフォームを自動的に作成する場合に指定します。
このオプションは、モーション パスでルートが単独でフリップするのを防止するために使用されます。 |
|
parentCurve(pcv) |
boolean |
 |
|
ikSplineHandle
により影響を受ける最初のジョイントの親が、自動的にカーブの親となるかどうかを指定します。 |
|
snapCurve(snc) |
boolean |
 |
|
ikSplineHandle
により影響を受ける最初のジョイントに、カーブが自動的にスナップされるかどうかを指定します。 |
|
numSpans(ns) |
int |
 |
|
自動的に生成された ikSplineHandle のカーブにあるスパンの数を指定します。 |
|
rootTwistMode(rtm) |
boolean |
   |
|
スタート
ジョイントのツイストを許可するかどうかを指定します。許可しない場合、必要なツイストは残りのジョイントに分散されます。この設定は全種類のツイストに適用されます。 |
|
: コマンドの作成モードで使用可能なフラグ |
: コマンドの編集モードで使用可能なフラグ |
: コマンドの照会モードで使用可能なフラグ |
: タプルまたはリストとして渡された複数の引数を持てるフラグ |
import maya.cmds as cmds
# Will create a handle from Joint-1 to an end-effector at
# the location of Joint-5 with a priority of 2 and a
# weight of 0.5
#
cmds.ikHandle( sj='joint1', ee='joint5', p=2, w=.5 )
# Create a handle called leg from the start joint
# named hip to the end-effector named Ankle.
#
cmds.ikHandle( n='Leg', sj='Hip', ee='Ankle' )