TP3D

タスク

 HumanMDLによって作成されたP3Dファイルの読み込みと、人体モデルを制御する、TP3DFigureオブジェクトの生成(Spawnメソッド)を行います。

 なぜP3Dファイルを読み込むオブジェクトと、その情報を元に人体モデルを制御するオブジェクトが分かれているのかというと、P3Dファイルに格納されているモーションデータなどは、それなりのサイズを持つので、メモリの節約を図るためです。

 また、それぞれを分けることで、「見た目は違うけれど、同じ動きをする人体モデル」、も構成できるのです。

 

リファレンス目次

プロパティ

(凡例:    読み取り専用)

P3Dヘッダ P3DHeader
各データ Motions
MotionNames
Poses
PoseNames
Parts
PartNames

メソッド

コンストラクタ Create
デストラクタ Destroy
読み込み LoadFromStream
LoadFromFile
P3DFigure生成 Spawn

 

リファレンス〜プロパティ

P3DHeader 

P3DHeader : TP3DHeader

 現在読み込んでいるP3Dファイルについての全体的な情報を示します。

 

Motions

Motions[idx:Integer]:TP3DMotion

 人体モデルの個々のモーションについての情報を示します。

 

MotionNames

MotionNames : TStrings

 モーションの名前を格納します。Motions[idx] の名前が、MotionNames[idx]に対応します。

 

Poses

Poses[idx:Integer] : TP3DPose

 人体モデルの個々のポーズについての情報を示します

 

PoseNames 

PoseNames : TStrings

 ポーズの名前を格納します。Poses[idx] の名前が、PoseNames[idx]に対応します。

 

Parts

Parts[idx:Integer] : TP3Dpart

 人体モデルの個々のパーツ(ボーン)についての情報を格納します。

 パーツの情報には、パーツ間の階層構造についての情報も含まれています。

 

PartNames 

PartNames : TStrings

 パーツの名前を格納します。

 Poses[idx] の名前が、PoseNames[idx]に対応します。

 

 

リファレンス〜メソッド

Create 

constructor Create;

 TP3Dオブジェクトを生成します。

 

Destroy

destructor Destroy;

 TP3Dオブジェクトを解放します。

 

LoadFromStream
LoadFromFile

procedure LoadFromStream(source:TStream);

procedure LoadFromFile(fileName:String; qdaName:String = '');

 LoadFromStreamでは、ストリームsourceから、

 LoadFromFileでは、ファイルfileName 、または、QDAファイル qdaName内のfileNameというIDを持ったデータから、P3Dファイルを読み込みます。

 

Spawn

function Spawn(ROKMeshes:TSXMeshList; ParentFrame:TSXFrame):TP3DFigure;

 形状データをROKMeshesで指定して、人体モデル制御オブジェクトを生成します。

 生成した人体モデルを表示する際、ParentFrameの子フレームに、人体モデルの最上位のフレーム(TP3DFigure.TopFrame)が配置されます。