« あぁ… | トップページ | C4D Python R12 テスト:オブジェクトからキーフレームにもアクセスしてみる。 »

C4D Python R12 テスト:アニメーションのトラックにアクセスしてみる。

今回は、立方体オブジェクトに設定したトラックをC4D Pythonで取得してみる。

Python_ctrack_01

こんな設定をした立方体を選択して、スクリプトを実行してみます。

Python
"""
オブジェクトのアニメーショントラックを取得する
2011.3.28
"""


import c4d


def main():
    if not isinstance(op, c4d.BaseObject):return

    #表示用'on'&'off'
    onoff = {True:'on', False:'off'}
    #表示用トラックの前/後のタイプ
    types = {c4d.ID_CTRACK_OFF:'オフ',
             c4d.ID_CTRACK_CONSTANT:'定数',
             c4d.ID_CTRACK_CONTINUE:'継続',
             c4d.ID_CTRACK_REPEAT:'くり返し',
             c4d.ID_CTRACK_OFFSETREPEAT:'オフセットくり返し',
             c4d.ID_CTRACK_OSCILLATE:'往復'}

    print op.GetName(), '*'*30
    cts = op.GetCTracks() #オブジェクトの全てのトラックを取得する(CTrackリスト)

    #トラックの設定値を表示する。
    for ct in cts:
        print '-'*20
        print 'トラック名:', ct[c4d.ID_BASELIST_NAME]
        print 'レイヤ:', ct[c4d.ID_LAYER_LINK]
        print 'アニメーションを使用:', onoff[ct[c4d.ID_CTRACK_ANIMOFF]]
        print 'ソロアニメーション:', onoff[ct[c4d.ID_CTRACK_ANIMSOLO]]
        print '初期設定の色を使う:', onoff[ct[c4d.ID_CTRACK_USE_PREF]]
        print 'Fカーブオフセット:', ct[c4d.ID_CTRACK_FCURVE_OFFSET]
        print 'Fカーブスケール:', ct[c4d.ID_CTRACK_FCURVE_SCALE]
        print '等速度:', onoff[ct[c4d.ID_CTRACK_CONSTANTVELOCITY_V]]
        print '前:', types[ct[c4d.ID_CTRACK_BEFORE]]
        print '後:', types[ct[c4d.ID_CTRACK_AFTER]]
        print '時間トラック:', ct[c4d.ID_CTRACK_TIME]
    print

if __name__=='__main__':
    main()

実行すると下記のようにコンソールに表示されます。

立方体 ******************************
--------------------
トラック名: 時間
レイヤ: None
アニメーションを使用: on
ソロアニメーション: off
初期設定の色を使う: on
Fカーブオフセット: 0.0
Fカーブスケール: 1.0
等速度: off
前: 定数
後: 定数
時間トラック: None
--------------------
トラック名: 位置 . X
レイヤ: <c4d.documents.LayerObject object at 0x20644210>
アニメーションを使用: on
ソロアニメーション: off
初期設定の色を使う: on
Fカーブオフセット: 0.0
Fカーブスケール: 1.0
等速度: off
前: 定数
後: 定数
時間トラック: <c4d.CTrack object at 0x20644210>
--------------------
トラック名: 位置 . Y
レイヤ: None
アニメーションを使用: on
ソロアニメーション: off
初期設定の色を使う: on
Fカーブオフセット: 0.0
Fカーブスケール: 1.0
等速度: off
前: 定数
後: 定数
時間トラック: None
--------------------
トラック名: 位置 . Z
レイヤ: None
アニメーションを使用: on
ソロアニメーション: off
初期設定の色を使う: on
Fカーブオフセット: 0.0
Fカーブスケール: 1.0
等速度: off
前: 定数
後: 定数
時間トラック: None

キーフレーム、レイヤ、時間トラック等の設定は、ヘルプを読んでください。

Pythonでトラックの取得は、

BaseList2D.GetCTracks()

BaseList2DのメソッドGetCTracks()を使います。
返り値は、CTrackリストです。

c4d.ID_BASELIST_NAME等のトラックのパラメータ定数は、属性マネージャからのドラッグ&ドロップで取得できます。

Python_ctrack_02

トラックの前/後のタイプの定数は、

ID_CTRACK_OFF オフ
ID_CTRACK_CONSTANT 定数
ID_CTRACK_CONTINUE 継続
ID_CTRACK_REPEAT くり返し
ID_CTRACK_OFFSETREPEAT オフセットくり返し
ID_CTRACK_OSCILLATE 往復

今回は、オブジェクトに設定済みのアニメーショントラックをPythonで取得してみました。
あまり意味ないなぁ…

|

« あぁ… | トップページ | C4D Python R12 テスト:オブジェクトからキーフレームにもアクセスしてみる。 »

コメント

Can you help me, How do I copy the Time Track of one object to all selected objects?

投稿: Jim | 2012年6月13日 (水) 07時58分

コメントを書く



(ウェブ上には掲載しません)




« あぁ… | トップページ | C4D Python R12 テスト:オブジェクトからキーフレームにもアクセスしてみる。 »