3DToolsのTrackballDecoratorの使い方

以前の投稿で、3DToolsのInteractive3DDecoratorを少し紹介しました。今回は配置するだけでマウスによるドラッグで3Dオブジェクトのカメラポジションを自由に変えることができるようになるTrackballDecoratorを紹介します。


3DToolsは、いくつかの修正が行われた1.01というバージョンが現在の最新となっています。下記のページからダウンロードすることができます。

CodePlex Archive



利用するだけならソースコードは必要ありませんので、今回は「3DTools-1.01-bin」をダウンロードします。また、当然ながら3Dオブジェクトが必要になります。ZAM 3Dを使って、適当な3Dオブジェクトを作りましょう。でなければ、川西さんのblogでティーポットの3Dオブジェクトが提供されていますので、これを使わせてもらいましょう。


TrackballDecoratorの使い方は下記のようにとっても簡単です。


Visual Studio、Explession Blend、どちらでも良いのでWPFアプリケーションのプロジェクトを新規に作成します。


・ダウロードした「3DTools-1.01-bin」に含まれている「3DTools.dll」に対する参照を追加します。


・Explession BlendであればAsset LibraryのCustom Controls(日本語版ベータ1の時点ではユーザーコントロール)というタブにTrackballDecoratorが表示されていますので、これを選択してアートボードに貼り付けます。



・そうすうると下記の内容がWindowsタグの中に追加されているはずです。Visual Studioの場合にはこれを手書きします。

xmlns:_3DTools="clr-namespace:_3DTools;assembly=3DTools"


・あとは3DオブジェクトのViewport3DタグをTrackballDecoratorタグでくくってやるだけです。名前空間が上記のように_3DToolsとなっている場合下記のような感じになります。
<_3DTools:TrackballDecorator>
  <Viewport3D x:Name="ZAM3DViewport3D" ClipToBounds="true" Width="400" Height="300">

  </Viewport3D>
</_3DTools:TrackballDecorator>



これをマウスでドラッグして

こんな感じにカメラ位置を自由に変えることができます。


上記のスクリーンショットid:NyaRuRu:20070326:p2で紹介されていたWindow Clippings 1.5を使ってみました。それで気がついたのですが、どうやらアニメーションを含むウィンドウはアルファ値付きの影イメージをうまく取得できないようです。そのことが、上記のKenny Kerr 氏の記事のコメント欄に記載されていました。

If the window you are capturing has any kind of animation, you ideally need to turn off the animation if you hope to capture a transparent image of it.