« artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-07 | トップページ | C4D R11 C.O.F.F.E.E.からアニメーショントラック内のキーを取得しアクセス »

C4D R11 C.O.F.F.E.E.からアニメーショントラックの属性にアクセス

R9.5ではアニメーションのトラックの中に、いくつかのシーケンスが格納され、そのシーケンスにもいくつかのキーが設定されています。
BaseTrack/BaseSequence/BaseKeyと言う3つのクラスでアニメーションにアクセスできました。

R11では、もうアニメーショントラックの中にシーケンスと言う構造ではないようです。

さて、C4D R11のアニメーショントラックの属性の値を取得してみよう。
オブジェクトのアニメーショントラックを取得するには、

[CTrack]BaseList2D::GetFirstCTrack();

BaseList2Dクラスなので、オブジェクト限定と言う事ではないのですね。

では、コンソールにアクティブオブジェクト(選択オブジェクトは1個だけ)のトラックの属性を表示させて見ます。

適当にキーフレームを設定して実行してみてください。

Track_01

選択したトラックではなくて、アクティブオブジェクトの全てのトラックの属性の値をコンソールに表示します。

/*
C.O.F.F.E.E.からアニメーショントラック属性へのアクセス R11
2009.7.14
*/


main(doc , op)
{
  var trc = op->GetFirstCTrack();
  var type = new(array , 6);
  type[CLOOP_OFF] = "オフ";
  type[CLOOP_CONSTANT] = "定数";
  type[CLOOP_CONTINUE] = "継続";
  type[CLOOP_REPEAT] = "くり返し";
  type[CLOOP_OFFSETREPEAT] = "オフセットくり返し";
  type[CLOOP_OSCILLATE] = "往復";

  println("---- トラック属性 ----");
  while(trc)
  {
    println(trc->GetName());
    println("  ■メンバ関数を使った取得");
    println("    名前 : " , trc->GetName());
    println("    前 : " , type[trc->GetBefore()]);
    println("    後 : " , type[trc->GetAfter()]);
    println("    時間トラック : " , trc->GetTimeTrack(doc));

    println("  ■属性マネージャより、定数を使った取得");
    println("    名前 : " , trc#ID_BASELIST_NAME);
    println("    レイヤ : " , trc#ID_LAYER_LINK);
    println("    アニメーションを使用 : " , trc#ID_CTRACK_ANIMOFF);
    println("    ソロアニメーション : " , trc#ID_CTRACK_ANIMSOLO);
    println("    カラー : " , trc#ID_CTRACK_FCURVE_COLOR);
    println("    Fカーブオフセット : " , trc#ID_CTRACK_FCURVE_OFFSET);
    println("    Fカーブスケール : " , trc#ID_CTRACK_FCURVE_SCALE);
    println("    等速度 : " , trc#ID_CTRACK_CONSTANTVELOCITY);
    println("    前 : " , type[trc#ID_CTRACK_BEFORE]);
    println("    後 : " , type[trc#ID_CTRACK_AFTER]);
    println("    時間トラック : " , trc#ID_CTRACK_TIME);
    println(" ");

    trc = trc->GetNext();
  }
}

CTrackクラスのメンバ関数から取得できる属性の項目は、名前/前/後/時間トラックぐらいでした。

その代わり、属性マネージャからトラック属性の項目をドラッグ&ドロップでの定数指定の方が簡単で良いですね。

Track_02

---- トラック属性 ----
位置 . X
  ■メンバ関数を使った取得
    名前 : 位置 . X
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 位置 . X
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.750029,0.000000,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

位置 . Y
  ■メンバ関数を使った取得
    名前 : 位置 . Y
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 位置 . Y
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.500020,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

位置 . Z
  ■メンバ関数を使った取得
    名前 : 位置 . Z
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 位置 . Z
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.000000,0.750029]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

スケール . X
  ■メンバ関数を使った取得
    名前 : スケール . X
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : スケール . X
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.750029,0.000000,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

スケール . Y
  ■メンバ関数を使った取得
    名前 : スケール . Y
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : スケール . Y
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.500020,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

スケール . Z
  ■メンバ関数を使った取得
    名前 : スケール . Z
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : スケール . Z
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.000000,0.750029]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

角度 . H
  ■メンバ関数を使った取得
    名前 : 角度 . H
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 角度 . H
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.750029,0.000000,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

角度 . P
  ■メンバ関数を使った取得
    名前 : 角度 . P
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 角度 . P
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.500020,0.000000]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

角度 . B
  ■メンバ関数を使った取得
    名前 : 角度 . B
    前 : 定数
    後 : 定数
    時間トラック : nil
  ■属性マネージャより、定数を使った取得
    名前 : 角度 . B
    レイヤ : nil
    アニメーションを使用 : 1
    ャ鴻Aニメーション : 0
    カラー : [0.000000,0.000000,0.750029]
    Fカーブオフセット : 0.000000
    Fカーブスケール : 1.000000
    等速度 : 0
    前 : 定数
    後 : 定数
    時間トラック : nil

コンソールの文字が文字化けしてる…「ソロ」が…

|

« artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-07 | トップページ | C4D R11 C.O.F.F.E.E.からアニメーショントラック内のキーを取得しアクセス »