3ds Max 2017 の 新機能 : OffsetManager コア インタフェースはオフセット コントローラおよびアニメーション プリセットを作成および管理するためのメソッドを公開します。
メソッド:
[アニメーション](Animation) > [オフセット コントローラ](Offset Controllers)メニュー
<void>OffsetManager.addSel()
[コントローラを選択](Select Controllers)ダイアログを開き、選択したオブジェクトのコントローラを表示します。
[メイン メニュー](Main Menu) > [アニメーション](Animation) > [オフセット コントローラ](Offset Controllers) > [オフセット コントローラを追加](Add Offset Controllers)メニュー項目を呼び出す操作と同等です。
<void>OffsetManager.RemoveOffsetControlDlg()
[オフセットコントローラを削除](Remove Offset Controllers)ダイアログを開きます。
[メイン メニュー](Main Menu) > [アニメーション](Animation) > [オフセット コントローラ](Offset Controllers) > [オフセット コントローラを削除](Delete Offset Controllers)メニュー項目を選択する操作と同等です。
[アニメーション](Animation) > [プリセット](Presets)メニュー
<void>OffsetManager.LoadEffectDlg()
[プリセットをロード](Load Preset)ダイアログを開き、ユーザが現在の選択にプリセットを割り当てられるようにします。
<void>OffsetManager.PublishLocal <maxObject>modifier <node>template <&node array>nodes
nodes は入出力パラメータです
2 番目の引数で指定されたテンプレート ノードから 3 番目の引数で指定されたノードの参照配列に、最初の引数として指定された Preset_Maker モディファイヤによってコントロールされるプリセットを適用します。
<void>OffsetManager.RemoveEffectFromNodes <string>name <&node array>nodes
nodes は入出力パラメータです
<void>OffsetManager.createTemplate()
現在選択されているオブジェクトの[プリセット コントローラを選択](Select Preset Controllers)ダイアログを開きます。
このダイアログを開くには、単一オブジェクトを選択する必要があります。
[メイン メニュー](Main Menu) > [アニメーション](Animation) > [プリセット](Presets) > [プリセット作成](Create Preset)メニュー項目を呼び出す操作と同等です。
<void>OffsetManager.RemoveEffectFromDisk <string>name
指定した名前付きプリセットをディスクから削除します。
[メイン メニュー](Main Menu) > [アニメーション](Animation) > [プリセット](Presets) > [ディスクからプリセットを削除](Remove Preset From Disk)メニュー項目を開く操作とほぼ同等ですが、ダイアログを開くときに、指定した名前付きプリセットが直接削除されます。
[モディファイヤ](Modifier) > [オフセット モーション コントロール](Offset Motion Controls)ロールアウト > [距離別のオフセット順序](Offset Order By Distance)コントロール領域
<void>OffsetManager.OffsetByPos <node>center <node array>nodes <boolean>x <boolean>y <boolean>z
1 番目の引数として指定された中心ノードから開始する、2 番目の引数として渡されるノード配列に、新しい位置ベースのオフセットを適用します。
3 つのブール引数によって、中心ノードの X、Y、および Z 軸に沿った距離計測が有効になります。
[オフセット](Offset)モディファイヤの UI で公開される[距離別のオフセット設定](Set Offset By Distance)コントロールと同等です。
[モディファイヤ](Modifier) > [プリセットのメーカー](Preset Maker)ロールアウト
<void>OffsetManager.PublishToFile <maxObject>modifier <node>template
1 番目の引数として指定された Preset_Maker モディファイヤと、2 番目の引数として指定されたテンプレートノードを使用して、名前付きプリセットをディスクに保存します。
プリセットの名前は Preset_Maker モディファイヤの .publishFile プロパティから取得されます。
モディファイヤの[プリセットのメーカー](Preset Maker)ロールアウトの[プリセットを保存](Save Preset)ボタンを押す操作と同等です。
MAXScript-Only 関数
<void>OffsetManager.LoadEffect <string>name
以前に保存した名前付きプリセットをディスクからロードし、現在の選択に適用します。
これは OffsetManager.LoadEffectDlg() と似ていますが、インタラクティブなダイアログを開かないで、名前付きプリセットを直接操作します。
プロセットの名前を取得するには、OffsetManager.GetEffectList() メソッドを使用します(以下を参照)。
<void>OffsetManager.GetEffectList <&string array>names
names は出力パラメータです。
以前にディスクに保存したプリセットの名前からなる配列を参照引数に格納して返します。
これは OffsetManager.LoadEffectDlg() と似ていますが、インタラクティブなダイアログを開かないで、文字列値からなる MAXScript 配列としてプリセットの名前を返します。
<void>OffsetManager.ReorderEffect <string>name
オフセット コントローラを操作して、順序 ID を元の値にリセットします。
オフセット コントローラを最初に適用すると、コントローラの再生順序を決定する各コントローラの順序 ID が増分されます。
ユーザは順序 ID を変更して再生順を変更できます。
このメソッドは順序 ID を既定の状態にリセットします。
<void>OffsetManager.AddNodeToEffect <string>name <&node array>nodes
nodes は入出力パラメータです
最初の文字列引数で指定された名前付きプリセットに、2 番目の引数として参照ノード配列で指定されたノードを追加します。
<void>OffsetManager.addMenu()
内部でのみ使用されます。
アクション:
なし
例 1 |
( resetMaxFile #noprompt --reset the scene without prompting animationRange = interval 0 140 --set the scene time range to 140 frames c = cylinder heightsegs:32 height:100 --create a tall cylinder copiesArray = for i = 1 to 21 collect --create a few copies ( cc = copy c --copy the original cylinder cc.pos = [(i-1)*40,0,0] --move the copy 40 units along X cc.wirecolor = green --set the object color to green cc --collect the copy in the array ) b = bend direction:90 --create a Bend modifier rotated at 90 degrees addmodifier c b --add the Bend modifier to the cylinder with animate on --enable animation ( at time 15 b.angle = 90 --set Bend Angle to 90 degrees at frame 15 at time 30 b.angle = 0 --set Bend Angle back to 0 at frame 30 ) select c --select the original cylinder OffsetManager.createTemplate() --prompt the user to create a template c.modifiers[1].timingUI.perNodeOffset = 5 --set Per Node Delay to 5 frames OffsetManager.PublishLocal c.modifiers[1] c &copiesArray --apply the template to the copies c.modifiers[1].publishFile = "Bend90DegOver30F" --give the preset a name OffsetManager.PublishToFile c.modifiers[1] c --and save it to disk for future use delete c --delete the original cylinder OffsetManager.OffsetByPos copiesArray[11] copiesArray true false false --start from the middle max zoomext sel all --zoom extents all redrawViews() --redraw the views playAnimation() --and play back the animation... ) |
例 2 |
( x = box heightsegs:32 height:250 --create a tall box copiesArray = for i = 1 to 21 collect --create a few copies ( cx = copy x --copy the original box cx.pos = [(i-1)*40,60,0] --move the copy 40 units along X and 60 along Y cx.wirecolor = color 200 40 100 --set the object color to pink cx --collect the copy ) delete x --delete the original select copiesArray --select the newly created box copies OffsetManager.LoadEffect "Bend90DegOver30F" --load the preset saved in Example 1 max zoomext sel all --zoom extents all ) |