com.docomostar.opt.ui.eruption
クラス Action

Object
  上位を拡張 com.docomostar.opt.ui.eruption.Object3D
      上位を拡張 com.docomostar.opt.ui.eruption.Action

public final class Action
extends Object3D

Animatable のアニメーションを表現するクラスです。

Animatable を継承するクラスのオブジェクトは Action に関連付けられることでアニメーションを行うことができます。
Action はアクションタイプという情報を持っており、これによって関連付けられるクラスが決まります。そのため、あるクラスの Action を他のクラスに関連付けたりすることはできません。
Action はオブジェクト全体のアニメーションに対応し、Animatable の API を通じてその制御を行います。 しかし、TransformTree を例に挙げると TransformTree が持つ各 Transform のアニメーションのように、 実際にはより細かい単位のアニメーションに分割できます。その単位をセグメントと呼び、このセグメント単位で アニメーションの制御を行うには ActionController を用います。 また、1 つ以上の Action 間でモーションブレンドを行う際にも ActionController を要します。詳しくは「Action の概念」を参照してください。

端末によって、本クラスはサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。

Actionの概念

Action は Animatable を継承するクラスのオブジェクトに対するアニメーション情報を保持しています。
Animatable を継承するクラスは Object3D / Animatable を継承しているクラスを参照してください。
各 Action オブジェクトごとに、どのクラスのオブジェクトに対するアニメーションであるかを示すアクションタイプを持っており、アクションタイプと一致しないクラスのオブジェクトにはセットできません。
たとえば、Camera のアニメーションを表している Action を TransformTree のオブジェクトにセットしようとした場合、アクションタイプ不整合であるとして Animatable.setAction(Action action),Animatable.setAction(Action action, int index) は例外を返します。
Action はさらに細かいセグメントと呼ばれる単位から構成されます。Camera を例にとると、画角や Near/Far クリップ面までの距離といったアニメーション単位でセグメントが分けられています。 Camera の場合はセグメント数固定ですが、全ての場合において固定というわけではありません。例えば TransformTree では、セグメントは TransformTree の各ノードに付くため、 TransformTree に対する Action のセグメント数は一定になりません。
Action は単体で使用した場合、全セグメントに対して同一のフレーム値を設定することしかできませんが、 ActionController とセットで使用することにより、セグメント単位でのフレーム値/再生モードの制御ができます。 このときセグメントはインデックスを用いて設定します。各インデックスによって表されるアニメーションの要素は以下の通りです。

※ NodeDeformer はモーションブレンド対象外です。

Action は 1 つの Animatable に対して 4 個まで関連付けることが出来るものの、通常のアニメーションでは 0 番目のものしか使用されません。
このときも ActionController とセットで用いることによって、モーションブレンドを実行できます。

モーションブレンドは、各 Action に対して重み付け(0.0〜 1.0 が100%を表す)を行い、その重みに応じたブレンドが行われます。ブレンドの方法は以下の通りです(N は 1〜4)。

このとき、重み付けは ActionController を通じて行い、重みはセグメントごとに異なる値を用いることができます。なお、計算結果が有効範囲を越えてしまった場合には有効範囲内に収まるようにクランプされます。 使用する ActionController の数が 1 つだけの場合にも重みがかかることに注意してください。 ActionTable は MCA ファイルに含まれる 1 つ以上の Action から構成され、それらを一括で Figure に関連付けするために用います。
関連付けについてはグローバルIDについて を参照してください。


フィールドの概要
static int MCE_REPEAT_MODE_CONSTANT
          一回再生モードを表します(=1)。
static int MCE_REPEAT_MODE_LOOP
          リピート再生モードを表します(=2)。
 
クラス com.docomostar.opt.ui.eruption.Object3D から継承されたフィールド
MCE_CLASS_TYPE_ACTION, MCE_CLASS_TYPE_ACTIONCONTROLLER, MCE_CLASS_TYPE_ACTIONTABLE, MCE_CLASS_TYPE_APPEARANCE, MCE_CLASS_TYPE_BONE, MCE_CLASS_TYPE_BONEDEFORMER, MCE_CLASS_TYPE_CAMERA, MCE_CLASS_TYPE_EFFECTSOURCE, MCE_CLASS_TYPE_FIGURE, MCE_CLASS_TYPE_GEOMETRICSHAPE, MCE_CLASS_TYPE_GRAPHICS3D, MCE_CLASS_TYPE_INDEXBUFFER, MCE_CLASS_TYPE_INTERSECTIONATTRIBUTES, MCE_CLASS_TYPE_LIGHT, MCE_CLASS_TYPE_MORPHDEFORMER, MCE_CLASS_TYPE_NODEDEFORMER, MCE_CLASS_TYPE_OBJECT3D, MCE_CLASS_TYPE_PARTICLE, MCE_CLASS_TYPE_TEXTURE, MCE_CLASS_TYPE_TEXTURETABLE, MCE_CLASS_TYPE_TRACKBALL, MCE_CLASS_TYPE_TRANSFORMTREE, MCE_CLASS_TYPE_VERTEXBUFFER
 
メソッドの概要
 ActionTable getActionTable()
          Action を格納している ActionTable を取得します。
 int getGid()
          Action に設定されているグローバル ID を取得します。
 float getNumFrame()
          最終フレーム値を取得します。
 
クラス com.docomostar.opt.ui.eruption.Object3D から継承されたメソッド
dispose, equals, findObject3D, findObject3D, getClassType, getUserId, hashCode, isDisposed, isRenderEnable, setRenderEnable, setUserId
 
クラス Object から継承されたメソッド
getClass, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

MCE_REPEAT_MODE_CONSTANT

public static final int MCE_REPEAT_MODE_CONSTANT
一回再生モードを表します(=1)。

関連項目:
定数フィールド値

MCE_REPEAT_MODE_LOOP

public static final int MCE_REPEAT_MODE_LOOP
リピート再生モードを表します(=2)。

関連項目:
定数フィールド値
メソッドの詳細

getGid

public final int getGid()
Action に設定されているグローバル ID を取得します。

グローバルID に関しては グローバルIDについて を参照してください。

戻り値:
グローバル ID を返します。

getNumFrame

public final float getNumFrame()
最終フレーム値を取得します。

戻り値:
最終フレーム値を返します。

getActionTable

public final ActionTable getActionTable()
Action を格納している ActionTable を取得します。

戻り値:
ActionTable オブジェクトを返します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。