|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.ui.eruption.Object3D
com.docomostar.opt.ui.eruption.BoneDeformer
public final class BoneDeformer
ボーンアニメーションを扱うクラスです。
Figure.setBoneDeformer(BoneDeformer) により Figure に関連付けて用いられます。 Figure を介して参照する TransformTree をボーンの階層構造の表現に用います。
各ボーンは TransformTree のノードとして表され、ある頂点が所属するボーンと、そのボーンに対する重みは setTransformAndWeights(int, short[], float[], int) で設定します。このとき、重みは合計が 1.0 になるように正規化されます。
アニメーションは Figure を介して参照する VertexBuffer の頂点に対して行い、各頂点は最大 4 つのボーンに所属できます。
ボーンごとに自身の変換行列を用いて頂点のワールド座標系における位置を計算し、それらの重み付け和により最終的な頂点の座標が決定します。ライティングやスフィアマップを行っている場合には法線、バイノーマルやタンジェントに対してもアニメーションの計算を行います。
端末によって、本クラスはサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。
| フィールドの概要 |
|---|
| コンストラクタの概要 | |
|---|---|
BoneDeformer(int vertNum,
int transNum)
BoneDeformer を生成します。 |
|
| メソッドの概要 | |
|---|---|
void |
couplingTransformTree(TransformTree tTree,
int meshTix)
BoneDeformer と TransformTree の整合を検査します。 |
void |
getTransformAndWeights(int index,
short[] transIds,
float[] weights)
頂点を指定して、ボーンアニメーションで用いる Transform とその重みを取得します。 |
short[] |
getTransIndexMap()
変換行列と頂点を指定するインデックスとの対応マップを取得します。 |
int |
getTransNum()
変換行列の数を取得します。 |
void |
setTransformAndWeights(int index,
short[] transIds,
float[] weights,
int num)
頂点を指定して、ボーンアニメーションで用いる Transform とその重みを設定します。 |
void |
setTransIndexMap(short[] trIxMap)
変換行列と頂点を指定するインデックスとの対応マップを設定します。 |
| クラス 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 |
| コンストラクタの詳細 |
|---|
public BoneDeformer(int vertNum,
int transNum)
BoneDeformer を生成します。
vertNum - 頂点数を指定します。transNum - 変換行列の数を指定します。
vertNum はボーンアニメーションを行う VertexBuffer の頂点数と一致しなければなりません。
transNum は Figure を介して関連付けられる TransformTree の要素数と一致しなければなりません。
IllegalArgumentException -
vertNum が [1, 32767] 以外の場合に発生します。
IllegalArgumentException -
transNum が 0 以下、もしくは 255 を超えている場合に発生します。| メソッドの詳細 |
|---|
public final void setTransformAndWeights(int index,
short[] transIds,
float[] weights,
int num)
Transform とその重みを設定します。
重みは内部で合計が 1.0 になるように正規化されます。
尚、モデルデータに含まれる BoneDeformer は transIds のインデックス情報が
内部状態で保持されるため、本 API では使用できません。
コンストラクタを使用して生成した BoneDeformer のみ有効となります。
index - 関連付ける頂点を指定するインデックスを指定します。transIds - Figure を介して参照する TransformTree でのインデックスの配列を指定します。weights - 重みの配列を指定します。num - 頂点に関連付ける変換行列および重みの数を指定します。
NullPointerException -
transIds が null の場合に発生します。
NullPointerException -
weights が null の場合に発生します。
IllegalArgumentException -
index が [0, 頂点数 - 1] 以外の場合に発生します。
IllegalArgumentException -
num が [1, 4] 以外の場合に発生します。
IllegalArgumentException -
transIds とweights の要素数が 4 以下ではない場合に発生します。
IllegalArgumentException -
transIds とweights の要素数が一致しない場合に発生します。
IllegalArgumentException -
weights に 0.0 以下の値が含まれている場合に発生します。
IllegalArgumentException -
transIds に不正なインデックス( [0, 変換行列数 - 1] 以外)が含まれている場合に発生します。
IllegalArgumentException -
This がモデルデータに含まれていた BoneDeformer の場合に発生します。
public final void getTransformAndWeights(int index,
short[] transIds,
float[] weights)
Transform とその重みを取得します。
尚、モデルデータに含まれる BoneDeformer は transIds のインデックス情報が
内部状態で保持されるため、本 API では使用できません。
コンストラクタを使用して生成した BoneDeformer のみ有効となります。
index - 頂点を指定するインデックスを指定します。transIds - 頂点に関連付けられているボーンを指定する TransformTree でのインデックスを渡す配列を指定します。weights - 頂点に関連付けられている重みを渡す配列を指定します。
NullPointerException -
transIds が null の場合に発生します。
NullPointerException -
weights が null の場合に発生します。
IllegalArgumentException -
index が [0, 頂点数 - 1] 以外の場合に発生します。
IllegalArgumentException -
This がモデルデータに含まれていた BoneDeformer の場合に発生します。public final int getTransNum()
public final void setTransIndexMap(short[] trIxMap)
trIxMap - 対応マップを配列で指定します。
IndexOutOfBoundsException -
trIxMap 配列の範囲外にアクセスする場合に発生します。public final short[] getTransIndexMap()
public final void couplingTransformTree(TransformTree tTree,
int meshTix)
BoneDeformer と TransformTree の整合を検査します。
tTree - この BoneDeformer との整合検査を行う TransformTree を指定します。meshTix - tTree の中に Mesh を変換する変換行列が存在する場合、これのインデックスを指定します。存在しない場合には -1 を指定します。
NullPointerException -
tTree が null の場合に発生します。
IllegalArgumentException -
meshTix が範囲外の場合に発生します。
IllegalArgumentException -
getTransNum() メソッドで得られる数と tTree の要素数が一致しない場合に発生します。
ArithmeticException -
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
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ドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。