AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [3D-FMX] 3Dモデル(Model3D) 2014/04/01
 
前回は [3D Shapes]内の「3D楕円」(Ellipse3D)について見てみましたので今回は同じく[3D Shapes]内の「3Dモデル」(Model3D)について見てみます。
 
[3D Shapes]内
FMX
 
ヘルプより
メッシュの集まりで構成される汎用の 3D モデルを表します。
 
TModel3D を使用すると、定義された 3D モデルを 3D ビューポート内にインポートできます。3D モデルを読み込むには、MeshCollection プロパティを使用します。
 
TModel3D には、読み込まれたモデルの幾何学的操作を可能にするプロパティやメソッドがカプセル化されています。
 
サポートされている 3D 形式は、.dae、.obj、.ase です。
 

 
MeshCollection
このモデルを構成するオブジェクトのコレクションを示します。
 
 
.dae形式、.obj形式、.ase形式を読み込んで表示出来るコンポーネントです。
.dae形式は、COLLADA 形式ファイルです。3Dソフトの「スケッチアップ」や3D-CGソフトの「Blender」等で使えますね。
.obj形式は、Wave Front 形式ファイルです。一般的な3D-CGソフトでは使える場合が多いですね。
.ase形式は、ヘルプでは「Adobe Swatch Exchange(.ase)モデル」と書かれていますが、残念ながら私には分かりません。
 
MeshCollection プロパティ欄の右端の[…]をクリックして、3Dファイルを指定して、それを開く事が出来ます。



 
当方ソフトでは、「Script!3D」と「AFWord2」で .dae(COLLADA)ファイル・及び・.objファイルを出力することが出来るようになっていますので、これを利用する事が出来ます。なお、小さいモデルを読み込もうとすると、Scaleプロパティが 0 値になってしまう事があるようなので注意します。
 
例えば、Script!3D で下記のようなスクリプトを実行したとします(これは以前ブログで書いたモデルの1つです)。
#VAR
 sp = 10   ;*曲線分割数
 sp2 = 5   ;*膨らみ面分割数
 sp3 = 8   ;*分割数
 r = 1.1   ;*膨らみ倍率
 x1 = 50   ;*x1
 y1 = 0    ;*y1
 x2 = 200   ;*x2
 y2 = 150   ;*y2
 x3 = 200   ;*x3
 y3 = 240   ;*y3
 x4 = 100   ;*x4
 y4 = 300   ;*y4
 x5 = 60   ;*x5
 y5 = 320   ;*y5
 x6 =  0   ;*x6
 y6 = 330   ;*y6
 i
 j
 w1
 w2
 w3
 
#DRAW
 CAL w1 = 0.5*PI
 ROXMATR w1
 BEZIR2D i,sp,x1,y1,x2,y2,x3,y3,x4,y4
 BEZIR2D i,sp,x4,y4,x5,y5,x5,y5,x6,y6
 GETFIGN j,i
 
 ALLSEL i, 1,1,999,999
 CAL w1 = PI / sp3
 S_ROT2 0,-1,1,sp2, 0,0,0, 0,0,0, 0,0,100, r,r,1,0,w1,0
 ALLSEL i, 1,6,999,999
 S_REVS
 
 CLRSEL
 ADDSEL i, 1,j,1,1,999,999
 CAL w1 = - w1
 S_ROT2 0,-1,2,sp2, 0,0,0, 0,0,0, 0,0,100, r,r,1,0,w1,0
 
 ALLSEL i, 1,1,999,999
 S_DELE
 ALLSEL i, 1,999,999,999
 CAL w1 = 2.0*PI
 S_COPRS 0,-1,-1,sp3, 0,0,0,0,0,0,0,0,100,1,1,1,0,w1,0
これを実行すると

という画面が表示されますので、これを、.dae(COLLADA)ファイルとして保存し、MeshCollection プロパティでこのファイルを指定します。



 
Scaleプロパティを各 30 にします。
RotationAngle.X プロパティを 90 にします。
ライト Light1 を配置し、位置を調整します。

 
 
次に、.obj ファイルを開いてみます。



 
Scaleプロパティを各 0.03 にします。
RotationAngle.X プロパティを 90 にします。
ライト Light1 を配置し、位置を調整します。

 
基本的に、.obj ファイルは単色表示です。
が、色を表現出来るマテリアルファイルの拡張仕様もあります。このコンポーネントがその拡張仕様に対応しているかどうかについては未確認です。
 
.ase ファイルについては全く分かりませんので動作確認出来ませんから、未確認です。利用出来る方は実際に利用してみて下さい。有効活用出来るようでしたら、利用されると良いのではないかと思われます。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Dehi入門編
>Delphi2010
>DelphiXE3
▲2014/03/31
 2014/04/01
▼2014/04/02
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.