Object Hierarchy | 関連する C++クラス:ActionSource
ActionSource
v1.5
ActionSource オブジェクトはSourceオブジェクトの特化したタイプで、アクションとシェープアニメーションクリップのソースを表します。このタイプのアクションソースは、ActionSource.SourceItemsプロパティを使用してAnimationSourceItemとしてアクセスできる、DataSource 項目(FCurve、Expressionなど)から構成されます。サポートされているアニメーションのソースタイプのリストについては、siAnimationSourceItemType列挙子を参照してください。
アクションはパラメータの変更に基づきます。これは、パラメータベースであるため、一般的に「ローレベルのアニメーション」と呼ばれます。一般に、アクション コンポーネントは FCurve、Constraint、StaticSource (スタティック ポーズ) および ShapeKey です。Model.AddActionSource メソッドを使用して、これらのコンポーネントをアクション ソースとしてバンドルできます。
シェイプアニメーションはポイントの位置の変更に基づいています。したがって、ジオメトリの全体的なシェイプの変更はリファレンスシェイプから成ります(リファレンス シェイプは、モデリング オペレータ スタックの結果を構成します。)クラスタへのこれらの変更は、UI のオブジェクトのジオメトリのクラスタ ノードの下に ShapeKey として保存されます。Mixerでは、ShapeClipとして ShapeKey はとしてインスタンス化されます。
注:アクションソースでは、デフォルトによって適用されるパラメータのパスは常にRelative Nameとして保存されます。そのため、ソースは接続マップテンプレートがない場合でもその他のモデル下においてインスタンス化されます。
クリップとミキサがインタラクトにやり取りするため、アクションソースは多くの場合、ミキサに関連付けられています。ただし、インスタンス化されないアクション、またはSimulationEnvironmentオブジェクトにキャッシュすることを示すアクションは、ミキサまたはモデルには関連付けられません。[Sources]コンテナまたは[Scene]>[Environments]>[Environment]>[Caches]コンテナにのみ関連付けられます。このような場合、機能の一部は制限されます(たとえば、ベースプロパティSIObject.ParentまたはProjectItem.Modelの呼び出しは、これらのソースを含むモデルがないため動作しません)。
そのクリップから既存のアクションソースのポインタを取得する場合は、Clip.Sourceプロパティを使用できます。すべてのアクションソースは、インスタンス化されていない場合でも、Model.Sourcesプロパティを介して、所属するModelからDataSourceCollectionとして使用できます。
重要: これらのソースは DataSourceCollection として使用できますが、繰り返し使用すると、FCurve、Expression などの個別 DataSource オブジェクトではなく、実際の ActionSource オブジェクトを取得します。このことを認識しておくのが重要なのは、ActionSource オブジェクトにより、特定のメソッドやプロパティにアクセスできるためです。
オブジェクトモデルを使用して ActionSource オブジェクトを作成する場合は、Model.AddActionSourceメソッドを使用できます。また、プリセットをロードするコマンド(LoadActionPreset)、現在のローレベルのアニメーションを格納するコマンド(SIStoreActionおよびStoreAction)、プロットするコマンド(PlotToActionsおよびPlotAndApplyActions)など、ActionSource オブジェクトを作成するさまざまなスクリプトコマンドも用意されています。
注:v4.0 よりも古いバージョンの Softimage を使用している場合、ActionSource オブジェクトではSourceインターフェイスを使用できません。つまり、Clip.Sourceからはソースの内容にアクセスすることはできません。ActionSource のベースプロパティSIObject.Parentの呼び出しは、Modelを戻します。ActionSource が環境キャッシュの場合、戻される親はSimulationEnvironmentです。
' ' This example illustrates how to create a simple actionsource from position animation. The ' AnimationSourceItem.Source property will be used to get the fcurve source and modify the keys. ' NewScene , false set oRoot = Application.ActiveProject.ActiveScene.Root ' These commands were cut and pasted from scripting history and modified to work in a script. ' They create a simple actionsource from animation on the null's position set oNull = GetPrim( "Null" ) strPosParams = oNull & ".kine.local.posx," & oNull & ".kine.local.posy," & oNull & ".kine.local.posz" Translate oNull, -8.153, 7.015, -0.702, siRelative, siView, siObj, siXYZ SaveKey strPosParams, 1.000 Translate oNull, 8.350, -8.935, 0.894, siRelative, siView, siObj, siXYZ SaveKey strPosParams, 50.000 Translate oNull, 9.413, 8.935, -0.894, siRelative, siView, siObj, siXYZ SaveKey strPosParams, 100.000 StoreAction oRoot, strPosParams, 2, "StoredFcvAction", True, 1, 100 ' Get the actionsource from the model set oActionSource = oRoot.Sources("StoredFcvAction") ' Find animation source item with posx and mute it for each oSourceItem in oActionSource.SourceItems if instr(1,CStr(oSourceItem.Target),"posx",vbTextCompare)<>0 then logmessage "muting " & oSourceItem.Target oSourceItem.Active = False exit for end if next ' Apply actionsource with muted posx ApplyAction oActionSource, oNull ' Output of above script: 'INFO : muting null.kine.local.posx |