Object Hierarchy | 関連する C++クラス:Clip
Clip
v1.5
クリップはアニメーションとシェイプアクション(ActionSource)、オーディオ、イメージソース(Source)、コンパウンドクリップ(ClipContainer)のインスタンスです。siClipType列挙に含まれる値の 1 つを戻すSIObject.Typeプロパティを使用してクリップタイプ(オーディオクリップなど)を表示してチェックします。
また、このオブジェクトを使用すると、タイミング(TimeControl)、その他のクリップへのリンク(ClipEffect)、および適用するエフェクト(ClipRelation)などのクリップ機能にアクセスすることができます。さらに、このクリップがインスタンス化される(Clip.Sourceを介したSourceオブジェクト)、またはソースのエレメントとなる(Clip.MappedItemsを介したMappedItemオブジェクト、またはActionSource.SourceItemsを介したAnimationSourceItemオブジェクトのいずれかを使用して)基本ソースを取得します。
重要:クリップオブジェクトがコンパウンド、オーディオ、およびイメージクリップの場合、すべてのクリップメソッドとプロパティでは 3 つのタイプが使用できません。たとえば、Clip.MappedItemsプロパティではエラーが発生し、3 つのクリップタイプ(E_NOTIMPL を戻すクリップなど)が実装されなかったことを告げるレポートが作成されます。
ヒント:ソースからクリップが作成するオブジェクトモデルに関数はありませんが、AddClipコマンドを使用できます。これにより、このオブジェクトが戻されます。既存のクリップオブジェクトにアクセスするには、ClipContainer.Clipsプロパティを使用してMixer上のClipCollectionを取得します。
#
# This example demonstrates how to create a Clip containing the static
# values of the local position of an object.
#
oRoot = Application.ActiveSceneRoot
oCube = oRoot.AddGeometry( "Cube", "MeshSurface" )
# Creating the first animation source
sParams = "cube.kine.local.posx,cube.kine.local.posy,cube.kine.local.posz"
oSource = Application.StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 1, 5, 0, 0)
# Creating the first clip
oClip = Application.AddClip( oRoot, oSource )
Application.LogMessage( "First created clip " + oClip.FullName )
# Creating the second animation source
oCube.Parameters("posx").Value = 3.0
oSource2 = Application.StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 7, 9, 0, 0 )
# Creating the second clip
oClip2 = Application.AddClip(oRoot, oSource2)
Application.LogMessage("Second created clip " + oClip2.FullName)
# Expected results:
#INFO : First created clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
#INFO : Second created clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip |
/*
This example demonstrates working with action and audio sources and clips
*/
NewScene( null, false );
// Do it on a nested model
var mdl = ActiveSceneRoot.AddModel();
mdl.Name = "TestModel";
// ----------------------
// Create an fcurve source and instantiate a clip in the mixer
var obj = mdl.AddNull();
// Set FCurves on the null's scaling
var keys = new Array( 5, 1.2, 20, 1.7, 45, 2.0, 90, 2.5 ); // X
obj.sclx.AddFCurve2( keys );
var keyfactor = Math.random() * 10; // Y
var posfactor = Math.random();
for ( var i=0; i<keys.length; i=i+2 ) {
keys[i] = keys[i] + keyfactor;
keys[i+1] = keys[i+1] * posfactor;
}
obj.scly.AddFCurve2( keys );
var keyfactor = Math.random() * 10; // Z
var posfactor = Math.random();
for ( var i=0; i<keys.length; i=i+2 ) {
keys[i] = keys[i] - keyfactor;
keys[i+1] = keys[i+1] * posfactor;
}
obj.sclz.AddFCurve2( keys );
// Get list of parameters to mark
var params = obj.sclx.FullName + ",";
params += obj.scly.FullName + ",";
params += obj.sclz.FullName;
// Make the FCurves into an Action
var src = StoreAction( mdl, params, 2, "StoredAnimFCrvAction" );
AddClip( mdl, src );
// ----------------------
// Add an audio clip to the mixer
var mix;
if ( mdl.HasMixer() ) {
mix = mdl.Mixer;
} else {
mix = mdl.AddMixer();
}
var aud_track = AddTrack( mdl, mix, 2 );
var aud_src_path = XSIUtils.BuildPath( Application.InstallationPath( siFactoryPath ), "Data", "XSI_SAMPLES", "Audio", "Torefaction.wav" );
var aud_src = ImportAudio( mdl, aud_src_path );
AddAudioClip( mdl, aud_src );
// ----------------------
// Find the clips under the mixer
var cliplist = mdl.Mixer.Clips;
for ( var c=0; c<cliplist.Count; c++ ) {
var clip = cliplist(c);
LogMessage( "----------------------" );
LogMessage( "Found a clip of type " + clip.Type + " under " + mdl.Mixer );
// Get the underlying source items associated with this clip, but make sure
// we skip the audio files
if ( clip.Type == siClipAnimationType ) {
LogMessage( "Found " + clip.MappedItems.Count + " mapped items on " + clip );
for ( var m=0; m<clip.MappedItems.Count; m++ ) {
var itm = clip.MappedItems(m);
LogMessage( "Found this mapped item: " + itm.Source2 + " (a " + ClassName(itm.Source2) + ")" );
}
}
}
// Expected results:
//INFO : ----------------------
//INFO : Found a clip of type mixeranimclip under TestModel.Mixer
//INFO : Found 3 mapped items on TestModel.Mixer.Mixer_Anim_Track.StoredAnimFCrvAction_Clip
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : Found this mapped item: FCurve (a FCurve)
//INFO : ----------------------
//INFO : Found a clip of type mixeraudioclip under TestModel.Mixer |