2013-07-24 63 views
2

我想我使用helixtoolkit導入並顯示對象螺旋工具包動畫

現在的代碼來創建在C# 我的WPF世界動畫魚如下:

public MainViewModel() 
{ 
    var worldGroup = new Model3DGroup(); 
    var fishGroup = new Model3DGroup(); 

    Model3D world = ModelImporter.Load(@".\Models\1.obj"); 
    Model3D fish = ModelImporter.Load(@".\Models\2.obj"); 

    worldGroup.Children.Add(world); 
    fishGroup.Children.Add(fish); 

    WorldModel = worldGroup; 
    FishModel = fishGroup; 
} 

但我不知道如何製作動畫的話,我很想擁有它讓魚遊在由點定義的自定義路徑(或者如果可以通過從3ds max中只導入樣條曲線)

而且是有可能只使用3dsmax的關鍵幀讓魚游泳 或在模型本身的一些動畫(如動畫體)

回答

1

之所以能夠與下面的XAML簡單的動畫吧:

<Window x:Class="_3D.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:HelixToolkit="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf" 
    Title="MainWindow" Height="350" Width="525"> 

<Grid> 

    <HelixToolkit:HelixViewport3D ZoomExtentsWhenLoaded="True" Name="MyAnimatedObject"> 

     <HelixToolkit:SunLight /> 

     <ModelVisual3D Content="{Binding FishModel}"> 
      <ModelVisual3D.Transform> 
       <TranslateTransform3D x:Name="MyTranslateTransform3D" OffsetX="0" OffsetY="0" OffsetZ="0" /> 
      </ModelVisual3D.Transform> 
     </ModelVisual3D> 
     <ModelVisual3D Content="{Binding WorldModel}" /> 

     <HelixToolkit:HelixViewport3D.Triggers> 
      <EventTrigger RoutedEvent="HelixToolkit:HelixViewport3D.Loaded"> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation 
          Storyboard.TargetName="MyTranslateTransform3D" 
          Storyboard.TargetProperty="OffsetX" 
          To="10" 
          AutoReverse="True" RepeatBehavior="Forever" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </HelixToolkit:HelixViewport3D.Triggers> 
    </HelixToolkit:HelixViewport3D> 
</Grid>