3ds Max 8 におけるスクリプト コントローラの割り当て動作の変更

 

   

アニメーション コントローラ - クイック ナビゲーション

3ds Max 8 より前のバージョンでは、スクリプト文字列を作図パラメータとして与えることが可能でしたが、予想どおりには機能しませんでした。

スクリプト コントローラをトラックに割り当てると、3ds Max 7 以前 は自動的に現在のトラックの値を読み取り、その値を新しいコントローラに代入して、この値を有効にし元の値を保存します。たとえば、トラックに 12.6 の値が含まれている場合、スクリプト コントローラを割り当てた後、コントローラ内の文字列は、最後の既知の値を保存するため自動的に「12.6」に設定されます。したがって、単一のパスでスクリプトを割り当てようとしても 3ds Max 7 以前ではうまくいきませんでした。

例:

$Box01.height.controller = float_script script:"random 0 100"

最初に右辺でスクリプト コントローラ インスタンスが作成され、そのインスタンスにスクリプト文字列「random 0 100」が代入されます。その後、コントローラが左辺に代入され、そのスクリプト文字列が即座に左辺のトラックの現在値を含む新しい文字列で上書きされるため、このスクリプトはうまくいかないのです。

常に、コントローラを最初に割り当ててから、その .script プロパティに割り当てる必要があります。

例:

fs =float_script ()
$Box01.height.controller =fs
fs.script="random 0 100"

3ds Max 8 以降では、上記の動作が修正されました。すべてのコントローラに、コントローラが「新しい」のか「新しくない」のかを示す内部フラグが追加されたので、現在のトラック値は、新しいコントローラが代入された場合のみ使用されるようになりました。

この新しい機能のおかげで、スクリプト プロパティが既に設定されているコントローラのスクリプト文字列は、置き換えられることがなくなりました。

関連事項