Biped のノード階層

biped.getNode <biped | biped_ctrl> <name | index> [link:<int_link>]

指定されたリムノードを返します。2 番目の引数には名前付きリム(#larm、#rarm、#lfingers など)、または整数のインデックスを指定できます。リンク引数を指定しない場合は、トップ(最初の)ノードが返されます。指定されたノードが存在しない場合は、undefined 値が返されます。

例:

    --you can get the left hand as follows:
    biped.getNode $ #lArm link:4

Biped のトップ レベルおよびそのリンク ノードは次のとおりです。

インデックス リム名 リンク ノード(リンク インデックス順)
1 #larm L Clavicle L UpperArm L Forearm L Hand
2 #rarm R Clavicle R UpperArm R Forearm R Hand
3 #lfingers L Finger0 L Finger01 L Finger02 L Finger1
L Finger11 L Finger12 L Finger2 L Finger21
L Finger22 L Finger3 L Finger31 L Finger32
L Finger4 L Finger41 L Finger42
4 #rfingers R Finger0 R Finger01 R Finger02 R Finger1
R Finger11 R Finger12 R Finger2 R Finger21
R Finger22 R Finger3 R Finger31 R Finger32
R Finger4 R Finger41 R Finger42
5 #lleg L Thigh L Calf L HorseLink L Foot
6 #rleg R Thigh R Calf R HorseLink R Foot
7 #ltoes L Toe0 L Toe01 L Toe02 L Toe1
L Toe11 L Toe12 L Toe2 L Toe21
L Toe22 L Toe3 L Toe31 L Toe32
L Toe4 L Toe41 L Toe42
8 #rtoes R Toe0 R Toe01 R Toe02 R Toe1
R Toe11 R Toe12 R Toe2 R Toe21
R Toe22 R Toe3 R Toe31 R Toe32
R Toe4 R Toe41 R Toe42
9 #spine Spine Spine1 Spine2 Spine3
Spine4
10 #tail Tail Tail1 Tail2 Tail3
Tail4
11 #head Head
12 #pelvis Pelvis
13 #vertical Biped COM
14 #horizontal Biped COM
15 #turn Biped COM
16 #footprints Footsteps
17 #neck Neck Neck1 Neck2 Neck3
Neck4
18 #pony1 Ponytail1 Ponytail11 Ponytail12 Ponytail13
Ponytail14
19 #pony2 Ponytail2 Ponytail21 Ponytail22 Ponytail23
Ponytail24
20 #prop1 Prop1
21 #prop2 Prop2
22 #prop3 Prop3
101 #lfArmTwist L ForeTwist L ForeTwist1 L ForeTwist2 L ForeTwist3
L ForeTwist4 L ForeTwist5 L ForeTwist6 L ForeTwist7
L ForeTwist8 L ForeTwist9
102 #rfArmTwist R ForeTwist R ForeTwist1 R ForeTwist2 R ForeTwist3
R ForeTwist4 R ForeTwist5 R ForeTwist6 R ForeTwist7
R ForeTwist8 R ForeTwist9
103 #lUparmTwist L UpTwist L UpTwist1 L UpTwist2 L UpTwist3
L UpTwist4 L UpTwist5 L UpTwist6 L UpTwist7
L UpTwist8 L UpTwist9
104 #rUparmTwist R UpTwist R UpTwist1 R UpTwist2 R UpTwist3
R UpTwist4 R UpTwist5 R UpTwist6 R UpTwist7
R UpTwist8 R UpTwist9
105 #lThighTwist L ThighTwist L ThighTwist1 L ThighTwist2 L ThighTwist3
L ThighTwist4 L ThighTwist5 L ThighTwist6 L ThighTwist7
L ThighTwist8 L ThighTwist9
106 #rThighTwist R ThighTwist R ThighTwist1 R ThighTwist2 R ThighTwist3
R ThighTwist4 R ThighTwist5 R ThighTwist6 R ThighTwist7
R ThighTwist8 R ThighTwist9
107 #lCalfTwist L CalfTwist L CalfTwist1 L CalfTwist2 L CalfTwist3
L CalfTwist4 L CalfTwist5 L CalfTwist6 L CalfTwist7
L CalfTwist8 L CalfTwist9
108 #rCalfTwist R CalfTwist R CalfTwist1 R CalfTwist2 R CalfTwist3
R CalfTwist4 R CalfTwist5 R CalfTwist6 R CalfTwist7
R CalfTwist8 R CalfTwist9
109 #lHorseTwist L HorseTwist L HorseTwist1 L HorseTwist2 L HorseTwist3
L HorseTwist4 L HorseTwist5 L HorseTwist6 L HorseTwist7
L HorseTwist8 L HorseTwist9
110 #rHorseTwist R HorseTwist R HorseTwist1 R HorseTwist2 R HorseTwist3
R HorseTwist4 R HorseTwist5 R HorseTwist6 R HorseTwist7
RHorseTwist8 R HorseTwist9

Biped ノード階層に関連したメソッド

biped.maxNumNodes <biped | biped_ctrl>

Biped がサポートする最大ノード。

トップ レベル ノードの一覧については、biped.getNode() の説明を参照してください。

biped.maxNumLinks <biped | biped_ctrl>

Biped がサポートする最大リンク ノード。

リンク ノードの一覧については、biped.getNode() の説明を参照してください。

    bipObj = biped.createNew 100 0 [0,0,0]  arms:true  neckLinks:5\
    spineLinks:5 legLinks:4 tailLinks:5 ponyTail1Links:5 \
    ponyTail2Links:5 fingers:5 fingerLinks:3 toes:5\
    toeLinks:3 ankleAttach:0.3 trianglePelvis:True \
    prop1Exists:True prop2Exists:True prop3Exists:True \
    forearmTwistLinks:4

    nn = biped.maxNumNodes bipObj
    nl = biped.maxNumLinks bipObj
    for i = 1 to nn do
    (
    anode = biped.getNode bipObj i
    if anode != undefined do
    (
    format "% :\t%\n" i anode.name
    for j = 1 to nl do
    (
    alink = biped.getNode bipObj i link:j
    if alink != undefined do
    format "% : % \t%\n" i j alink.name
    )
    )
    )

上記のサンプル コードでは、すべての Biped ノードが取得されますが、Biped のツイスト ノードは取得されません。

3ds Max 7 では、ID 24、25 で前腕(formarm)のツイスト ノードを取得していましたが、これが Biped にあるツイスト ノードのすべてでした。

3ds Max 8 では、上腕、ふくらはぎ、下肢、大腿にツイスト ノードが追加されています。

maxNumNodes は 24 ではなく 22 を返すように変更されました。この変更により、前腕のツイストにアクセスすることはできなくなりました。

前腕のツイストの ID が変更され、他のツイストすべてに新しい ID が追加されましたが、ユーザがツイストにアクセスするためのメソッドはありませんでした。

ツイスト ボーンのメソッド

次のメソッドは、3ds Max 9 で追加され、Biped のツイスト ボーンへのアクセスを提供します。これらのメソッドは、唯一のパラメータとして Biped コントローラを取ります。

Biped.maxTwistNodes  <biped | biped_ctrl>

Biped によってサポートされているツイスト ノード トラックの数。

トップ レベル ツイスト ノードの一覧については、biped.getNode()biped.getNode() の説明を参照してください。

Biped.maxTwistLinks  <biped | biped_ctrl>

Biped によってサポートされている、各ツイスト トラックあたりの最大リンク ノード数。

Biped の説明を参照してください。biped.getNode() の説明を参照してください。

Biped.getTwistStartId <biped | biped_ctrl>

ツイスト ノートの開始 ID。

ツイスト ノードおよびその ID の一覧については、biped.getNode() の説明を参照してください。

以下の例は、Biped のすべてのツイスト ノードを取得します。

    nn = biped.maxTwistNodes bipObj
    format "num twist nodes: %\n" nn
    nl = biped.maxTwistLinks bipObj
    format "max twist links: %\n" nl
    ts = biped.getTwistStartId bipObj
    format "twist start id: %\n" ts

    for i = ts to ts+nn-1 do
    (
        anode = biped.getNode bipObj i
       if anode != undefined do
        (
            format "% :\t%\n" i anode.name
           for j = 1 to nl do
            (
                alink = biped.getNode bipObj i link:j
               if alink != undefined do
                (
                    format "% : % \t%\n" i j alink.name
                )
            )
        )
    )