Lägg till animeringsegenskaper och inställningskamera i dokumentet 3D.
Contents
[
Hide
]
Add Animation property in 3D document
Aspose.3D for .NET stöder att visa animerad scen. Den här artikeln förklarar förutsättningarna för att flytta ett föremål.
Flytta kubens position
Klassobjektet
Mesh
används i koden. Vi kan Skapa ett Mesh-klassobjekt som berättat där. och det måste animera den lokala översättningsegenskapen för noden också: Lägga till omvandlingen i noden.
I Aspose.3D är objektanimation faktiskt nyckelram- animation som animerar på egenskaper. För att animera egenskaper behöver du en CurveMapping
instans som kartlägger komponenter i en egenskap till olika kurvor, t.ex. en Vector3
egenskap kan ha 3 komponenter X
/Y
/Z
, som kommer att ställa in tre kanaler i CurveMapping
, varje kanal kan ha en uppsättning Curve
.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET | |
// Initialize scene object | |
Scene scene = new Scene(); | |
// Call Common class create mesh using polygon builder method to set mesh instance | |
Mesh mesh = Common.CreateMeshUsingPolygonBuilder(); | |
// Each cube node has their own translation | |
Node cube1 = scene.RootNode.CreateChildNode("cube1", mesh); | |
// Find translation property on node's transform object | |
Property translation = cube1.Transform.FindProperty("Translation"); | |
// Create a bind point based on translation property | |
BindPoint bindPoint = new BindPoint(scene, translation); | |
// Create the animation curve on X component of the scale | |
bindPoint.BindKeyframeSequence("X", new KeyframeSequence() | |
{ | |
// Move node's translation to (10, 0, 10) at 0 sec using bezier interpolation | |
{0, 10.0f, Interpolation.Bezier}, | |
// Move node's translation to (20, 0, -10) at 3 sec | |
{3, 20.0f, Interpolation.Bezier}, | |
// Move node's translation to (30, 0, 0) at 5 sec | |
{5, 30.0f, Interpolation.Linear}, | |
}); | |
// Create the animation curve on Z component of the scale | |
bindPoint.BindKeyframeSequence("Z", new KeyframeSequence() | |
{ | |
// Move node's translation to (10, 0, 10) at 0 sec using bezier interpolation | |
{0, 10.0f, Interpolation.Bezier}, | |
// Move node's translation to (20, 0, -10) at 3 sec | |
{3, -10.0f, Interpolation.Bezier}, | |
// Move node's translation to (30, 0, 0) at 5 sec | |
{5, 0.0f, Interpolation.Linear}, | |
}); | |
// Save 3D scene in the supported file formats | |
scene.Save("PropertyToDocument.fbx"); |
Ställ in målkameran i 3D fil
Aspose.3D for .NET erbjuder att ställa in målkameran i 3D-fil. I vissa filformat, stöder ljus/kamera mål, vilket tillåter ljuset/kameran alltid vända mot en specificerad nod, detta är användbart i animation.
Klasserna
Scene
, Camera
, Node
och Transform
används i koden. För att spara en Scene
används Scene.Save
-metoden, accepterar den ett filnamn med komplett sökväg och parameter FileFormat
.
I exempel nedan är målet och kameran inställd i 3D:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET | |
// Initialize scene object | |
Scene scene = new Scene(); | |
// Get a child node object | |
Node cameraNode = scene.RootNode.CreateChildNode("camera", new Camera()); | |
// Set camera node translation | |
cameraNode.Transform.Translation = new Vector3(100, 20, 0); | |
cameraNode.GetEntity<Camera>().Target = scene.RootNode.CreateChildNode("target"); | |
scene.Save("camera-test.3ds"); |