简体   繁体   English

Helix工具包动画

[英]Helix Toolkit Animations

I'm trying to animate a fish in my WPF world in C# I'm using the helixtoolkit to import and show the objects 我正在尝试使用C#在WPF世界中为一条鱼设置动画,我正在使用helixtoolkit导入并显示对象

the code now to create is the following: 现在创建的代码如下:

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;
}

But I don't know how to animate it, I would love to have it let the fish swim in a custom path defined by points (or if possible by just importing a spline from 3ds max) 但我不知道如何对其进行动画处理,我希望它可以让鱼在由点定义的自定义路径中游泳(或者如果可能的话,只需从3ds max导入样条线)

And is it possible to just use keyframes from 3dsmax to let the fish swim or have some animation in the model itself (like an animated body) 并且是否可以仅使用3dsmax中的关键帧来让鱼游动或在模型本身中进行一些动画处理(例如动画主体)

Was able to simple animate it with following XAML: 可以使用以下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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM