私は WPF 3D アニメーションに本当に慣れていないので、まだ苦労しているものがあります。
ディスクからアセンブリを読み込むアプリの 3D UI を構築しています。現在読み込まれている各アセンブリを表すキューブを作成できます。次のように読み込みプロセスをアニメーション化したいと思います。
- 3D 空間でランダムなポイントを選択し、これを立方体の開始位置として設定します。
- そのランダムな点から原点 (0,0,0) に移動する立方体をアニメーション化します。もちろん、これには、既に「スライド」したキューブの再配置が含まれます。
ランダムな開始点を作成することは問題ありません。既存の立方体を再配置して、新しい立方体のためのスペースを確保することは (アニメーション化されていない方法で) 問題ありません。しかし、ランダムな開始点から原点に移動する立方体をアニメーション化するための適切な手順の組み合わせが見つからないようです。
私の(本当に基本的な)XAMLは次のようになります(ウィンドウ内のグリッド):
<Grid Background="WhiteSmoke">
<Viewport3D Name="MainViewport" Height="500" Width="975">
<Viewport3D.Camera>
<PerspectiveCamera x:Name="CubeCam" Position="0,0,35" LookDirection="-1,-1,-25 " UpDirection="0,1,0" FieldOfView="45" />
</Viewport3D.Camera>
<Viewport3D.Children>
<ModelVisual3D x:Name="Light">
<ModelVisual3D.Content>
<Model3DGroup>
<DirectionalLight Color="White" Direction="10,-60,-125" />
<AmbientLight Color="#FF333333"/>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup x:Name="CubeGroup" />
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>
</Grid>`
私は現在 HelixToolkit を使用していますが、何かが欠けていない限り、ドキュメントが不足していることに気づきました。
アニメーション化しようとしている立方体は、HelixToolkit の CubeVisual3D オブジェクトです。コードでキューブを作成し、CubeGroup に追加します。
さまざまな XXXAnimation オブジェクトを試しましたが、常に同じ問題に遭遇します。ターゲット プロパティを設定するときに、アニメーション化しようとしているオブジェクトのいずれにも、フックできる DependencyProperty がありません。
繰り返しますが、これらの立方体を 3D 空間の静的な (計算された) 位置に追加することに問題はありません。私ができないように見えるのは、それらを位置にアニメーション化することです。
アドバイスをいただければ幸いです。