C4D.Python: オブジェクトの操作方法を調べる
前回の C4D.Python: オブジェクトの作成では、「SetRelPos()」を使えば相対位置を設定できることがわかったので、他にできること探ってみます。使えそうな関数のリストはヘルプにあります。色々あるけど、Setで始まるのが設定する関数で、Getで始まるものがその状態を取得するものらしいです。なので、SetRelPos()なら相対位置を設定にするがGetRelPos()なら相対位置を取得します。
使い方としては他のオブジェクトの相対位置を取得して、別のオブジェクトに転写するスクリプトを作るときにGetRelPos()で位置を取得して変数に入れておいて、SetPelPos()でオブジェクトの位置として設定するという形になります。
各関数
とりあえず、BaseObjectにある関数のリストを頭に入れるために翻訳。ただ、基本分かっていないで翻訳しているので間違っていることが多々あると思うのでその点は注意してください。
基本的にはオブジェクトの位置・スケール・角度(この3つはPSR(Position Scale Rotation)として表記されることが多い)やオブジェクトの状態などを取得と設定するものがほとんど。
関数 | 説明 | データタイプ |
---|---|---|
__init__() | 解説には、メモリの中の新しいBaseObjectを初期化する。新しいbase objectを返すとあるけど、現状理解できませんでした。 | |
GetAbsPos() | オブジェクトの絶対位置を取得 | ベクトル |
SetAbsPos() | オブジェクトの絶対位置を設定 | ベクトル |
GetAbsScale() | オブジェクトの絶対スケールを取得 | ベクトル |
SetAbsScale() | オブジェクトの絶対スケールを設定 | ベクトル |
GetAbsRot() | オブジェクトの絶対角度を取得 | ベクトル |
SetAbsRot() | オブジェクトの絶対角度を設定 | ベクトル |
GetFrozenPos() | 座標変換を固定の位置を取得 | ベクトル |
SetFrozenPos() | 座標変換を固定の位置を設定 | ベクトル |
GetFrozenScale() | 座標変換を固定のスケールを取得 | ベクトル |
SetFrozenScale() | 座標変換を固定のスケールを設定 | ベクトル |
GetFrozenRot() | 座標変換を固定の角度を取得 | ベクトル |
SetFrozenRot() | 座標変換を固定の角度を設定 | ベクトル |
GetRelPos() | 相対位置を取得 | ベクトル |
SetRelPos() | 相対位置をを設定 | ベクトル |
GetRelScale() | 相対スケールを取得 | ベクトル |
SetRelScale() | 相対スケールをを設定 | ベクトル |
GetRelRot() | 相対角度を取得 | ベクトル |
SetRelRot() | 相対角度をを設定 | ベクトル |
GetMl() | ローカルマトリックスを取得 | マトリックス |
SetMl() | ローカルマトリックスを設定 | マトリックス |
GetFrozenMln() | 座標変換を固定と正規化されたマトリックスを取得 | マトリックス |
GetRelMln() | 相対と正規化されたマトリックスを取得 | マトリックス |
GetRelMl() | 相対マトリックスを取得 | マトリックス |
SetRelMl() | 相対マトリックスを設定 | マトリックス |
GetMg() | グローバルマトリックスを取得 | マトリックス |
SetMg() | グローバルマトリックスを設定 | マトリックス |
GetMln() | 正規化されたローカルマトリックスを取得 | マトリックス |
GetMgn() | 正規化されたグローバルマトリックスを取得 | マトリックス |
GetUpMg() | 親オブジェクトのグローバルマトリックスを取得。親がない場合は、単位行列を返すとありますが、原点の座標を返すようです。 | マトリックス |
CopyMatrixTo() | マトリックスを他のオブジェクトに複製。 | マトリックス |
GetMp() | ローカルのバウンディング(境界)ボックスの中心のベクトルを取得 | ベクトル |
GetRad() | 全てのオブジェクトのバウンディングボックスの各半径(x/y/z)を取得。ということはこれを2倍するとバウンディングボックスのサイズが求められるようだ。 | |
GetEditorMode() | エディタでの表示の情報を取得。値が0は表示、1は隠す、2は親に従う | int: 整数 |
SetEditorMode() | エディタでの表示の情報を設定。値が0は表示、1は隠す、2は親に従う | int: 整数 |
GetRenderMode() | レンダリングでの表示の情報を取得。値が0は表示、1は隠す、2は親に従う | int: 整数 |
SetRenderMode() | レンダリングでの表示の情報を設定。値が0は表示、1は隠す、2は親に従う | int: 整数 |
SetDeformMode() | デフォーマとジェネレータのオブジェクトの状態を設定。Trureでオン、Falseオフ。 | ブール |
GetDeformMode() | デフォーマとジェネレータのオブジェクトの状態を取得。Trureでオン、Falseオフ。 | ブール |
GetUniqueIP() | オブジェクトのIP番号を取得とあるがIP番号か何か不明。 | int: 整数 |
SetUniqueIP() | オブジェクトのIP番号を設定 | int: 整数 |
GetFirstTag() | オブジェクトの最初(一番左)のタグを取得 | タグ |
GetLastTag() | オブジェクトの最後(一番右)のタグを取得 | タグ |
GetTag() | 特定のタグを取得する。指定方法は、GetTag(ID,並び順)となる。たとえば、複数マテリアルが割り当てられていて、最初のマテリアルタグを取得したい場合なら、GetTag(5616,0)と記述。2番目ならGetTag(5616,1)となる。 | リスト |
GetTags() | オブジェクトに適用されている全てのタグをリストとして取得 | リスト |
GetTagDataCount() | UVWやパーティクル、ポイントなどのデータサイズが可変するタグのエレメント数を取得。ただ、ヘルプにあるオブジェクトシンボルだと動かず。オブジェクトID番号なら動作した。 | int: 整数 |
MakeTag() | タグを作成してオブジェクトにタグを挿入。記述はMakeTag(タグ,オブジェクト) | |
MakeVariableTag() | 変数タグを作成する | |
KillTag() | オブジェクトからタグを消す。KillTag(消したいタグのタイプ,順番:複数ある場合) | |
CopyTagsTo() | オブジェクトのタグを指定オブジェクト先にタグをコピーする。 | |
InsertTag() | タグを挿入する。 | |
SetDirty() | ヘルプだとオブジェクトが前回触ってから変更があったところをチェックとあるけど、Setだから変更があったと設定する?。 | |
IsDirty() | オブジェクトが前回触ってから変更があるかチェック。 | |
GetDeformCache() | アクティブなデフォーマで変形されたデータをキャッシュする。 | |
GetCache() | 生成されているキャッシュを取得。 | |
GetCacheParent() | キャッシュは、親を見つけるGetUPが使えないので、これで親のキャッシュを取得する。 | |
CheckCache() | よくわからなかった。 | |
Touch() | よくわからなかった。 | |
SetPhong() | スムーズタグを設定。すでにあれば上書き。 | |
GetRealSpline() | プリミティブスプラインの実際のスプラインを取得。プリミティブスプラインの長さを測ったりすることができる。 | 生成されたスプラインオブジェクト |
GetHighlightHandle() | ハイライトハンドルをあったらID返すとあるがよくわからず。スプラインのハンドルのこと? | 整数 |
NewDependenceList() | 新しい依存リストを開始?これも不明。 | |
CompareDependenceList() | 依存リストに変更があるか比較 | ブール |
AddDependence() | 子オブジェクトを依存リストに追加?これも不明。 | |
TouchDependenceList() | ジェネレータによって置き換えられる依存リストにある全てのオブジェクトをマークする。 | |
SearchHierarchy() | オブジェクトが選択オブジェクトの子かどうかをチェック。 | |
GetAndCheckHierarchyClone() | 親ジェネレータの子オブジェクトのクローンをチェックと作成。 | |
GetHierarchyClone() | 親ジェネレータの子オブジェクトのクローンを作成。 | |
SetRotationOrder() | 角度の計算順序を設定 | 整数 |
GetRotationOrder() | 角度の計算順序を取得 | 整数 |
GetGUID() | ドキュメントにあるオブジェクトのユニークIDを返す。 | long |
SetQuaternionRotationMode() | オブジェクトの回転モードをクォータニオンに設定。 | |
IsQuaternionRotationMode() | 回転モードがクォータニオンかチェック。 | |
SynchronizeVectorTrackKeys() | トラックカーブコンポーネント(タイムライントラックのこと?)があったら他のトラックをシンクロさせる。 | |
FindBestEulerAngle() | 前のキーに対してベストのオイラー角を見つける。 | |
EvaluateSynchronizedRotation() | すべての回転トラックを強制的に評価し、クォータニオン補間を考慮します。 | |
GetVectorTracks() | 指定されたIDの各コンポーネントトラックを返す。 | |
GetVectorCurves() | 指定されたカーブの各コンポーネントカーブを返す。 | |
GetModelingAxis() | モデリング軸に与えられている内部マトリックスを取得。 | |
SetModelingAxis() | モデリング軸に与えられている内部マトリックスを設定。 | |
GetVisibility() | オブジェクトの可視性を取得。可視性トラックがない場合、これは渡された親の可視性を返す。 |