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() --ティーポットを作成します。
xHandle = GetHandleByAnim x --anim.handle を取得します。
x_verify = GetAnimByHandle xhandle --anim.handle によって取得します。
x == x_verify --2 つを比較します - true を返します。
delete x --ティーポットを削除します。
clearUndoBuffer() --オブジェクトをメモリから完全に削除します。
x_verify = GetAnimByHandle xhandle --今度は undefined が返されます。