2

我正在尝试在 C# 中为我的 WPF 世界中的鱼制作动画我正在使用 helixtoolkit 导入和显示对象

现在要创建的代码如下:

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 中的关键帧让鱼游泳或在模型本身中有一些动画(如动画身体)

4

1 回答 1

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>

于 2013-07-24T15:04:08.210 回答