データ構造

オブジェクトはそれぞれに、(時間依存する、もしくは固定された)パラメータと、アトリビュート(Attribute、属性)を持ちます。アトリビュートは、それぞれにパラメータを持つことになります。

時間依存する n-次元の パラメータは ParamGroup と呼んでいます。(Parameter Group)
たとえば, "Camera" オブジェクトは 3次元の ParamGroup "Position" を持ちます。 これを時間0の値を設定するコマンドは次のようになります。
Data.ParamGroup("Camera", "Position").SetValueAt(0, 1, 1, 1)
時間に依存しない、固定されたパラメータは ConfItem と呼んでいます。(もともと、CONFfigure パネル中にアイテム、という名前から来ました…) You can get the list of confitem by commands such as
print(Data.Object("Camera").GetConfList())
Type Visible Shy
Objects have attributes according to its type. For example, camera object has three attributes (properties for camera setting, focal blur and strerograph.)
print(Data.Object("Camera").GetAttribList())
CameraProp FocalBlurProp StereoProp
Each attribute has its own ParamGroups and ConfItems. Modifiers and Processors are stored as attributes.

List of API

コマンド効果戻り値
Ops.ActiveObject.Delete()アクティブなオブジェクトを削除
Rename("name")アクティブなオブジェクトの名前を変更
GetVisibility()アクティブなオブジェクトの可視/非可視を得るbool
SetVisibility(bool visibility)アクティブなオブジェクトの可視/非可視を設定する成功(1)/失敗(0)
GetValidity()アクティブなオブジェクトの有効/無効を得るbool
SetValidity(bool validity)アクティブなオブジェクトの有効/無効を設定する成功(1)/失敗(0)
GetShy()アクティブなオブジェクトのシャイ(隠す)/非シャイを得るbool
SetShy(bool shy)アクティブなオブジェクトのシャイ(隠す)/非シャイを設定する成功(1)/失敗(0)
GetParameterLink("param")パラメータグループのリンク/非リンクを得るbool
SetParameterLink("param", bool link)パラメータグループのリンク/非リンクを設定する成功(1)/失敗(0)
AddCamera("name")カメラを追加する新規カメラの名前
AddPrimitive("type", "name")プリミティブを追加する新規プリミティブの名前
AddLight("name")光源を追加する新規光源の名前
AddEmpty("name")エンプティを追加する新規エンプティの名前
AddWorld("namd")ワールドを追加する新規ワールドの名前
AddVolumeBox("name")ボリュームボックスを追加する新規ボリュームボックスの名前
AddParticle("name")粒子系を追加する新規粒子系の名前
AddStreamline("name")流線を追加する新規流線の名前
AddHeightField("name")高さマップを追加する新規高さマップの名前
DeleteObject("name")オブジェクトの削除
DeselectObject("name")オブジェクトの選択解除
SelectObject("name", bool additive)オブジェクトの選択(additive=1 で追加選択)
SelectedObject.MoveTo("name", bool under)選択オブジェクトをターゲットの上/下に移動
SetChildTo("name")選択オブジェクトをターゲットの子供に設定
Delete()選択したオブジェクトの削除
SetVisible(bool visibility)選択したオブジェクトの表示/非表示を設定
Data.GetName("name")名前を得る名前
GetActiveObject()アクティブなオブジェクトの名前を得る名前
GetParent("name")*1ターゲットの親オブジェクトの名前を得る名前
GetChild("name", int n)ターゲットのn番目の子供の名前を得る名前
GetChildList("name")ターゲットの子供のリストを得る名前のリスト
GetPosition("name")ターゲットの位置を得る値(3次元)
GetRotationEuler("name")ターゲットの回転を得る値(3次元)
GetScale("name")ターゲットのスケールを得る値(3次元)
Object("name").GetVisibility()表示/非表$示を得るbool
SetVisibility(bool visiblity)表示/非表示を設定する成功(1)か失敗(0)
GetValidity()Get validitybool
SetValidity(bool validity)Set validity成功(1)か失敗(0)
GetShy()シャイ(隠す)/非シャイを得るbool
SetShy(bool shy)シャイ(隠す)/非シャイを設定する成功(1)か失敗(0)
GetConfList()ConfItem のリストを得る名前のリスト
GetConfItem("item")ConfItemの値を得る値(文字列)
GetAttribList()アトリビュートのリストを得る名前のリスト
GetAttrib("attrib")アトリビュートを得る(Table II のコマンドへ)
ParamGroup("name", "param").GetDimension()パラメータグループの次元を得るinteger
GetValueAt(nt)正規化時間(nt)での値を得る値(多次元)
SetValueAt(nt, ...)正規化時間(nt)での値を設定する値(多次元)
GetLink()グループ内のパラメータがリンク状態かを得るbool
SetLink(bool link)グループ内のパラメータのリンク状態をセットする成功(1)か失敗(0)
GetShy()シャイ(隠す)/非シャイを得るbool
SetShy(bool shy)シャイ(隠す)/非シャイを設定する成功(1)か失敗(0)
GetUseExpression()エクスプレッションを使用するかを得るbool
SetUseExpression(bool use)エクスプレッションを使用するか設定する成功(1)か失敗(0)
GetExpression()エクスプレッションを得るstring
SetExpression(string expr)エクスプレッションを設定する成功(1)か失敗(0)
GetTimeDependency()パラメータが時間依存モードかどうかを得るbool(多次元)
SetTimeDependency(...)パラメータの時間依存モードを設定する成功(1)か失敗(0)
This. *2GetValueAt(nt)Get value at normalized time nt (non-expression)値(多次元)
GetKeyNum(i)Get key number of i-th parameternumber

*1 他のオブジェクトの子供ではないオブジェクト"ROOT"の子供であるとして設定されています。
*2 パラメータグループのエクスプレッション中でのみ使用できます。

Table II.
ターゲットコマンド効果戻り値
AttributeGetConfList()ConfItem のリストを得る名前のリスト
GetConfItem("conf")ConfItemの値を得る値(文字列)

Example

Luaコンソールでのスクリプトの例としては次のようになります。
for nt=0,1,0.1 do Data.ParamGroup("Box", "Position").SetValueAt(nt, math.cos(nt*6.283), math.sin(nt*6.283), 0) end

このスクリプトは、オブジェクト"Box"の位置パラメータが原点の周りを回転するように10のキーフレームを配置します。
パラメータはあらかじめ時間依存モードになっている必要があります。 inserted by FC2 system