AnimHandle システム

AnimHandle システムは、ノード、モディファイヤ、マテリアル、コントローラなど、シーン内のすべてのエンティティに対して一意の ID 番号を定義します。エンティティをメモリから削除した場合にも、その後作成されるエンティティに対してその番号が再利用されることはありません。ただし、いわゆる「ラップアラウンド」(1 つの 3ds Max セッションで 4 億個(32 ビットの限界)のエンティティが作成された場合にのみ起こり得る異常な状態)の場合は例外です。

このため、ハンドルを使用してオブジェクトを要求し、結果が undefined であるかどうかを確認することで、オブジェクトが削除されているかどうかを判断することができます。

3ds Max 2008 以降 で使用可能です。

   

メソッド:

<integer>GetHandleByAnim <object>

このメソッドは、指定されたシーンエンティティに対して一意の AnimHandle ID を返します。

   

<object>GetAnimByHandle <integer>

このメソッドは一意の AnimHandle ID に対応するシーン エンティティを返します。エンティティが削除されている場合、またはまだ作成されていない場合には、undefined を返します。

例:

x = teapot() --create a teapot
xHandle = GetHandleByAnim x --get the anim.handle
x_verify = GetAnimByHandle xhandle --get by anim.handle
x == x_verify --compare the two -returns true
delete x --delete the teapot
clearUndoBuffer() --object deleted completely from memory
x_verify = GetAnimByHandle xhandle --now returns undefined