Animation Mixer

 
 
 

Animation Mixer は、ユーザがノンリニア方式で何も損なわずにシーケンスのレイヤ/ミックスを行うことができるツールです。 ユーザはミキサのトラックにクリップを挿入してから、クリップ間の関係およびトランジションを作成したり、シーケンスのタイミングを変更したり、別の種類のエフェクトを適用することができます。

注:

ミキサへのデータのロード方法を SDK の観点から説明した内容については、「ソースとクリップ」を参照してください。 ミキサ全般の詳細については、「ノンリニア アニメーション」『(ユーザ)ガイド』を参照してください。

この図は、ミキサ データを読み取るスクリプトやプラグラムを記述する際に予想できる内容を示したものです。 モデルごとにミキサは 1 つだけ存在します。つまり、シーン内のアニメーションはモデル(キャラクタ)ごとに編成されます。 上の図では SceneRoot が最上部にありますが、どのモデルを最上部に置いてもかまいません。

ミキサとそのコンポーネントへアクセスする

Mixer クラス自体は実際には ClipContainer の特別版であり、ClipContainer は一種の巨大な Clip だと言えます。つまり、ClipContainer クラスはコンパウンド クリップを意味するので、Mixer はクリップの超特大コンテナということになります。 以下の表は、Mixer およびハイレベル アニメーションで作業する際に使用する一般的なクラスを簡単に分類したものです。 この表は次の情報を示します。

  • クラス/オブジェクト: 該当の OM のオブジェクトおよび C++ クラスへのリンクを示します。

  • アクセス時に使用: 各オブジェクトにアクセスする際に使用する OM のプロパティおよび C++ 関数へのリンクを示します。

  • 概要: オブジェクトまたはクラスの概要を示します。 詳細については、リファレンス ページを参照してください。

  • : SIObject.Type または SIObject::GetType プロパティを使用してオブジェクトの型をテストする場合に考えられる戻り値のリストです。

  • siClassID: クラシック ID を示します(列挙型 siClassID の値の 1 つとして)。このクラシック ID は、オブジェクト モデルでは SIObject.IsClassOf メソッドをテストするために使用され、C++ API ではクラスごとに実装される GetClassID 関数の戻り値をテストするために使用されます。

  • 注意事項: テクニック、規則、または制限を示します。

クラス/オブジェクト

アクセス時に使用

概要

siClassID

注意事項

Mixer または Mixer

Model.Mixer または Model::GetMixer

ClipContainer の特別版

  • これが本質的なクリップです。

  • Model.HasMixer または Model::HasMixer を使用して、モデルの下にミキサが存在するかどうかを確認するためにテストできます。

ClipContainer または ClipContainer

Model.Mixer または Model::GetMixer

ClipContainer.Clips または ClipContainer::GetClips

Track.Clips または Track::GetClips

ミキサの基本エレメント(クリップ、トラック、トランジション、およびクリップの関係)へのアクセスを提供します。

ほとんどの場合はコンパウンド クリップに使用しますが、Mixer を表すことも可能です。 どちらも、クリップ、トラック、およびトランジションを含むことができます。

  • Get(Clips)メンバーは最上位レベルのみを戻します(たとえば、コンパウンド クリップです)。 各コンパウンド クリップの下にネストされたクリップを取得するには、再クエリする必要があります。

Clip または Clip

ClipContainer.Clips または ClipContainer::GetClips

Track.Clips または Track::GetClips

データの大部分へのアクセスが可能になるミキサ内の基本な構成要素(トラック、トランジション、クリップの関係、ソース、クリップエフェクト、割り当てられたアイテム、および時間制御)。

siClipType 列挙型の任意の値

siClipID

  • Clip クラスのメンバの中にはコンパウンド クリップに使用できないものもあるので、ネストされたクリップが含まれているかどうかを確認するために、SIObject.IsClassOf(siClassID)または SIObject::GetClassID でクリップをテストすることをお勧めします。

ClipRelation または ClipRelation

Clip.Relations(オブジェクト モデルのみ)、ClipContainer.NestedRelations または ClipContainer::GetNestedRelations

マスター/スレーブおよびスワップの検出(予測事項について検出)

"ClipRelation"(任意の列挙型の値ではありません)

siClipRelationID

  • C++ API には Clip.Relations に相当するものがありません。

Track または Track

ClipContainer.Tracks または ClipContainer::GetTracks

クリップへの単なる経路

siTrackType は、トラックのクリップ コレクションに対する siClipType と一致します。

siTrackID

  • ユーザがトラックを追加できるのは AddTrack コマンドで明示的に行う場合のみですが、AddClip コマンドの使用時にはトラックは自動的に追加されます。

Transition または Transition

開始クリップと終了クリップへのアクセスを提供します。

siTransitionType 列挙型の任意の値

siTransitionID

--

Source または Source

Clip.Source または Clip::GetSource

アクション、オーディオ、およびイメージの汎用ソース。 プロパティへのアクセスを提供します。

注:

アニメーションの本来の機能の大部分は、代わりに ActionSource を通じて提供されます。

siImageSourceType(siType から)

siSourceID

--

ActionSource または ActionSource

Clip.Source または Clip::GetSource

ソースのオフロードと再ロードが可能です。しかし、ほとんどの場合は、基本のアニメーションソースアイテムへのアクセスを提供します。

siActionType(siType から)

siActionSourceID

  • ActionSource オブジェクトには、DataSource オブジェクトまたはその他の ActionSource に基づいたアクションが含まれる場合があります。

  • ActionSources はパラメータ パスを相対名として保存します。

  • 一部の機能がバージョン 4.0 で変更されています(詳細はリファレンスを参照)。

AnimationSourceItem または AnimationSourceItem

ActionSource.SourceItems または ActionSource::GetItems

アニメーションDataSource(たとえば、F カーブ)へのアクセス、およびそのターゲット(アニメーション ソースが制御するパラメータ)へのアクセスを提供します。

siAnimationSourceItemType 列挙型の任意の値

siAnimationSourceItemID

  • C++ API には AnimationSourceItem.SetAsFCurve 関数に相当するものがありません。

  • 一部の機能がバージョン 4.0 で変更されています(詳細はリファレンスを参照)。

AnimationSource または AnimationSource

AnimationSourceItem.Source または AnimationSourceItem::GetSource

真のインターフェイスではありません(基本的にFカーブ、エクスプレッション、コンストレイント、シェイプキーなどのエイリアスです)。

アニメーション ソースのデータ型であればどれでも可能です(たとえば、F カーブは siFCurveType 値の 1 つを戻します)。

siAnimationSourceID ではなく、むしろ任意のソースのクラス ID に一致します(たとえば、F カーブは siFCurveID でテストした場合は true を戻し、siAnimationSourceID でテストした場合は false を戻します)。

  • AnimationSource の有効な型は、siAnimationSourceItemType 列挙型にリストされます。

  • コンパウンドのアニメーション ソース アイテムから AnimationSource の取得を試みても失敗します(AnimationSourceItem.Source を参照)。

MappedItem または MappedItem

Clip.MappedItems または Clip::GetMappedItems

関連ソース、関連ソースにより制御されるパラメータ、およびクリップに適用された任意のクリップエフェクトアイテムへのアクセスを提供します。

siMappedItemType 列挙型の任意の値

siMappedItemID

  • アクションまたはシェイプアニメーション ActionSource のいずれかからインスタンスが作成されたクリップでのみ使用可能

ClipEffect または ClipEffect

Clip.Effect または Clip::GetEffect

ClipEffectItem へのアクセスを提供します。

""(空文字列)

siClipEffectID

  • 各 ClipEffect には、クリップに割り当てられたアイテムごとに 1 つの ClipEffectItem が含まれます。

ClipEffectItem または ClipEffectItem

MappedItem.ClipEffectItem または MappedItem::GetClipEffectItem

ClipEffect.Items または ClipEffect::GetItems

クリップのインスタンスが作成された Source に影響を与えずにクリップを制御するエクスプレッションが含まれます。

""(空文字列)

siClipEffectItemID

TimeControl または TimeControl

Clip.TimeControl または Clip::GetTimeControl

クリップの[時間制御]プロパティへのアクセスを提供します。これは、クリップ長の一部をサイクル、バウンス、ホールドするなど、さらにクリップ エフェクトを追加するのに使用できます。

「timectr」([時間制御]プロパティのスクリプト名)

siTimeControlID

  • 特定のクリップに適用した時間制御エフェクトが原因で、オリジナルのソースが変更されたり、そのソースからインスタンス作成されたその他のクリップが変更されることはありません。

  • 時間制御のパラメータへのアクセスは読み取り専用です。

重要:

ミキサ内にグローバルとローカルのソース(つまり、グローバル モードで定義されたアニメーションに基づくアクションと Local モード)。 その場合の結果は予測不可能です。 また、コンストレイントは常にグローバル空間で定義されていることを忘れないでください。