FireMonkeyで3Dアプリを作る
3Dコンポーネントを使ってみる
さて、もう少し画面を設計しましょう。
- ViewPort3D1コンポーネントを選択して、大きさを変更しておきます。
- ツールパレットからTTrackBarコンポーネントを選択し、フォーム上に置き、適当な大きさに変更します。
ここまで準備できたら、TImage3Dコンポーネントを配置します。このコンポーネントは、3D空間上に画像を配置します。画像は、3D空間の中で、回転させることができます。
- 設計画面上でViewPort3D1コンポーネントを選択しておいてから、ツールパレット上で TImage3Dコンポーネントをダブルクリックします。
- すると、ViewPort3D1コンポーネントの内部にImage3D1が配置されます。構造ペイン上を確認すると、コンポーネントが入れ子になっています(図10)。
もし入れ子になっていない場合は、構造ペイン上で、Image3D1をViewPort3D1にドラッグ&ドロップして入れ子の関係を持たせることができます。
Image3D1は 設計画面上でも立体的に動かすことができます(図11)。
ここでは、図12のように簡単に大きさを変更するだけにします。
画像を3D空間で回転させる
では、プロパティを設定して画像が表示されるようにします。
- オブジェクトインスペクタ上で、Image3D1のBitmapプロパティの横にある[...]ボタンをクリックし、「編集」を選択します。(図13)
- ビットマップエディタが開きますので、[読み込み]ボタンを押し、適当な画像を選択して、[OK]ボタンをクリックします。ここではWindowsに標準でインストールされている画像を選択しています(図14)。
- 設計画面上のImage3D1に選択した画像が表示されます(図15)。
- 次に、オブジェクトインスペクタ上で、TrackBar1のMaxプロパティの値を720に変更します。これにより、トラックバーを操作すると、バーの位置により内部的な値が変化します。
最後にトラックバーを動かしたら、上の画像が回転するというコードを記述します。
- 設計画面上でTrackBar1をダブルクリックすると、ボタンをクリックした際のイベント(OnChange)が作成されます。作成されたイベント内に、以下のコードを記述します(太字部分)。
procedure TFrom1.TrackBar1Change(Sender: TObject); begin Image3D1.RotationAngle.X := TrackBar1.Value; end;
これにより 0から720(2回転)に変化した値が代入され、X軸を中心に回転を行います。
- IDEのメニューから[ファイル]-[すべて保存]を選択し、xcodeTestというフォルダを作成し、そこにファイルを保存します(ファイル名はデフォルトのままで構いません)。
- IDEのメニューから[実行]-[実行]を選択し、Windows上で実行させて動作を確認します。(図16)
トラックバーの位置を操作することで画像が回転します。これで、アプリケーションが完成しました。