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 つとして)を提供します。これは、オブジェクト モデルで 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 enum のいずれかの値

siClipID

  • クリップをテストし、SIObject.IsClassOf(siClassID)または SIObject::GetClassID を使用してネストしたクリップが含まれているかを確認することが重要になります。これは、Clip クラスの一部のメンバーがコンパウンド クリップに使用できないためです。

ClipRelation または ClipRelation

Clip.Relations(OM の場合のみ)ClipContainer.NestedRelations または ClipContainer::GetNestedRelations

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

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

siClipRelationID

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

Track または Track

ClipContainer.Tracks または ClipContainer::GetTracks

クリップへの単なる経路

siTrackType はトラックのクリップ コレクション上で siClipType と一致します

siTrackID

  • 必ず明示的に AddTrack コマンドでトラックを追加する必要がありますが、AddClip コマンドを使用するとトラックは自動的に追加されます。

Transition または Transition

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

siTransitionType enum のいずれか

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 enum からのいずれかの値

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 enum に一覧表示されます

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

MappedItem または MappedItem

Clip.MappedItems または Clip::GetMappedItems

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

siMappedItemType enum からのすべての値

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 モード)。 その場合の結果は予測不可能です。 また、コンストレイントは常にグローバル空間で定義されていることを忘れないでください。