スケルトンでの名前によるボーンのアクセスでは、エラーが発生する傾向があります。例えば、アーチストがボーンの名前を変更すると、スクリプトが機能しなくなる場合があります。
3ds Max CAT は、リグ内のボーンの名前を認識しなくても、スクリプトから階層をナビゲートできるよう設計されています。これは、使用する命名規則に関わらず、すべての CATRig で機能するスクリプトを記述することができることを意味します。
各ボーンには、子ボーンがあり、それに移動したり、子を取得することができます。
CATには、ツリーのパーツをまとめる特殊なコントローラがあります。ただし、これらのコントローラは 3ds Max の階層には表示されません。例えば、リム(腕または足)を維持する「リム」と呼ばれるコントローラがあります。リムの各ボーンは汎用であり、その特定のボーンに関連する情報のみが含まれます。リムに関する情報を得たい場合には、リム コントローラにアクセスすることができます。
ハブ コントローラからリム コントローラにアクセスでき、リム コントローラから鎖骨コントローラにアクセスできます。
ハブ コントローラから尾コントローラにアクセスでき、尾コントローラから尾のボーン コントローラにアクセスできます。
ハブ コントローラから脊椎コントローラにアクセスでき、脊椎コントローラからすべての脊椎のボーン コントローラまたは脊椎の末端のハブ コントローラにアクセスできます。
3ds Max CAT スクリプト インタフェースには、ボーンの「アドレス」を使ってボーンにアクセスできるメソッドが含まれています。CATRig の各ボーンには、固有のアドレスがあります。
アドレスを一度取得すれば、別のリグでも同じボーンを簡単に取得することができます。
CATParent には、アドレスを使ってスケルトンからボーンを取得するメソッドがあります。
このメソッドは GetBoneUsingAddress: と呼ばれます。
CATParent は、CATRig のすべてのボーンのリストを含む CATRigNodes と呼ばれるプロパティを提供します。
リグのすべてのボーンが収集され、配列に配置されます。これによって、CATRig 階層をナビゲートする方法を学ぶ必要がなくなります。
CATParent は、CATRig のすべてのレイヤ コントロールの配列を含む CATRigLayerCtrls と呼ばれるプロパティも提供します。
CATRig のすべてのボーンはコントローラによって制御されます。
このコントローラは、CATNodeControl インタフェースを公開します。
これは、そのボーンに関する情報にアクセスすることができることを意味します。
ハブは、3ds Max CAT 階層を「ジョイント」する役割を持ちます。
ハブには、リム(足や腕)、尾、脊椎およびそれらにアタッチされる追加のボーンが含まれます。
すべてのハブでは、アタッチされているリムの数を確認することができ、リムにアクセスして、そのリムのボーンを取得することができます。
リムは、次のコントローラで構成されています。リム、鎖骨、ボーン、ボーン セグメント、手のひら、IKTraget、Upvector。
リム コントローラは、名前など全体のリムに関するすべての情報、およびリム、鎖骨、足首、IKTarget のボーンへのポインタを保持します。
1 つのリムのボーンから CATRig のすべてにアクセスすることができるのです。
尾は、TailData および TailTrans の 2 種類のコントローラで構成されています。
TailData は、名前など全体の尾に関する情報、尾の各ボーンへのポインタを保持します。
1 つの尾のボーンから CATRig のすべてにアクセスすることができるのです。