Autodesk 3ds Max Erweiterung 1 enthält zahlreiche neue Funktionen und Verbesserungen für Max Creation Graph.
Sie können MCG zum Erstellen benutzerdefinierter Animations-Controller verwenden, um die animierbaren Parameter eines Objekts basierend auf einem Diagramm festzulegen. Es gibt neue Knoten in der Ausgaben-Kategorie für die verschiedenen Controller-Typen, z. B. Gleitkommazahl, Position, Drehung, Transformieren und andere. Sie können auch den neuen impliziten Parameter Transformations-Controller: Matrix verwenden, um den Wert des übergeordneten Objekts eines Objekts zur Verwendung in Ihren Berechnungen zu erhalten.
Nachdem die MCG-basierten Controller erfolgreich gespeichert und ausgewertet wurden, erscheinen sie automatisch im entsprechenden Fenster Controller zuweisen in den Gruppen Spuransicht und Bewegung.
Mehrere Beispiel-Controller sind verfügbar. Sie können diese aus dem Menü anwenden oder sie als Beispiele für das Erstellen eigener Controller verwenden.
Mit MCG können Sie jetzt die Simulationen erstellen, die iterativ aktualisiert werden, basierend auf den Werten im vorherigen Frame. Sie können Simulationsdiagramme für Modifikatoren, Controller und Geometrien erstellen.
Werkzeuge, die aus Simulationsdiagrammen erstellt wurden, verfügen über ein zusätzliches Simulation-Rollout. Wenn Sie auf Simulation zurücksetzen klicken, werden die Caches gelöscht, und die Simulation wird von Anfang an bis zur aktuellen Zeit erneut ausgeführt. Dies ist beispielsweise nützlich, wenn Sie eine der Werkzeugeingaben geändert haben und im aktuellen Frame die richtigen Ergebnisse sehen wollen.
Weitere Informationen finden Sie unter Erstellen eines Simulationsdiagramms.
Die Kategorie Bullet Physics enthält Knoten, mit denen Sie basierend auf der Bullet Physics-Engine Starrkörper-Simulationen erstellen können. Sie können eine Welt erstellen, dieser Objekte und Eigenschaften hinzufügen und dann deren Welt-Transformationen abrufen, nachdem die Welt aktualisiert wurde.
Einige der als Beispiele aufgeführten MCG-basierten Controller, MCG 1 DOF Rotationsfeder-Controller und MCG 3 DOF Rotationsfeder-Controller, sind Beispiele für Simulationen, die mithilfe der Bullet Physics-Knoten erstellt wurden.
Eine Anleitung zum Erstellen eigener Simulationen mithilfe der Bullet Physics-Knoten finden Sie unter Erstellen einer Simulation von steifen Körpern mit Kugeln.
Es werden 4D-Vektoren unterstützt. Zusätzlich zu Ausgabe: Point4 Controller zum Erstellen von XYZW- und RGBA-Animations-Controllern gibt es Knoten in der Vector4-Kategorie zum Erstellen von Vector4-Werten aus einzelnen Werten, zum Abrufen von einzelnen Werten aus Vector4-Werten und zur Konvertierung zwischen Vector4-Werten und Quaternions.
Mit den neuen *EmptyArray-Knoten in der Anordnungen-Kategorie können Sie Anordnungen verschiedener Typen erstellen, z. B. Matrix oder Vector3, ohne dass Sie dazu der Anordnung ein bestimmtes Element hinzufügen müssen.
Hier finden Sie eine Liste der neuen Operatoren und Verbundelemente in MCG.
GetRayToSurfaceIntersections(nodes, rayToSurfacePivot, rayOrigin, flipAxis, rayAxis)
MeshFromNodeAtTime(n, time)
NodePosAverage(values)
WeightedAveragePosition(Targets, Weights)
WorldTransformAtTime(node, time)
AnimationPlaybackEnd()
AnimationStartTime()
FramesToSeconds(frames)
FramesToTicks(frames)
SecondsToFrames(seconds)
SecondsToTicks(seconds)
TicksToFrames(ticks)
TicksToSeconds(ticks)
BitmapEmptyArray()
BooleanEmptyArray()
BoundingBoxEmptyArray()
BoundingFrustumEmptyArray()
BoundingSphereEmptyArray()
ConstraintEmptyArray()
EdgeEmptyArray()
Face3EmptyArray()
Face4EmptyArray()
INodeEmptyArray()
Int32EmptyArray()
LineEmptyArray()
MapChannelEmptyArray()
MatrixEmptyArray()
PlaneEmptyArray()
QuadMeshEmptyArray()
QuaternionEmptyArray()
RandomEmptyArray()
RayEmptyArray()
RayTraceIntersectionEmptyArray()
RayTraceSceneEmptyArray()
RectangleEmptyArray()
RigidBodyDynamicsEmptyArray()
SingleEmptyArray()
StringEmptyArray()
TexmapEmptyArray()
TriMeshEmptyArray()
Vector3EmptyArray()
WorldEmptyArray()
AddBulletObject(world, worldObject)
AddConstraint(world, constraint)
AddRigidBody(world, rigidBody)
CreateGeneric6DofConstraint(rigidBody1, frame1, rigidBody2, frame2, rotationOrder)
CreatePoint2PointConstraint(rigidBody1, pivot1, rigidBody2, pivot2, tau, damping)
CreatePointConstraint(rigidBody, pivot, tau, damping)
CreateRigidBody(xform, offset, convexHull, rigidBodyDynamics, localInertia, isKinematic)
CreateRigidBodyDynamics(mass, friction, rollingFriction, restitution, linearDamping, angularDamping)
CreateWorld(initialTime)
GetCenterOfMass(convexHull)
GetNumberOfRigidBodies(world)
GetRigidBodyByIndex(world, index)
GetRigidBodyConvexHull(rb)
GetRigidBodyWorldTransform(world, rb)
GetSimulationTime(world)
IsRigidBodyKinematic(rb)
ResetWorld(world)
SetGeneric6DofConstraintAngularDynamics(constraint, damping, bounce, stiffness)
SetGeneric6DofConstraintAngularLimit(constraint, lower, upper, reversed)
SetGeneric6DofConstraintLinearDynamics(constraint, damping, bounce, stiffness)
SetGeneric6DofConstraintLinearLimit(constraint, lower, upper)
AddConstraint(world, constraint)
SetGravity(world, gravity)
SetRigidBodyVelocity(rb, linear, angular)
SetRigidBodyWorldTransform(world, rb, m)
SetSimulationTime(world, time)
StepSimulation(world, step)
TraceRigidBody(world, rb)
CreateSimulation(constraints, rigidBodies, startTime, gravity, active, preUpdateFn, currentTime)
FilterAndSortRayIntersections(intersections, rays)
IfSingleGreaterThanZero(Value, True, False)
LimitSingle(Value, LimitOne, LimitTwo)
SwitchOneTwoThree(switchValue, valueIfOne, valueIfTwo, valueIfThree)
CanDecompose(matrix)
ConstructBasisFromUpFwd(upAxis, targetUp, forwardAxis, targetForward)
Determinant(matrix)
FlipMatrixBasis(matrix)
GetMatrixRotation(matrix)
GetMatrixScaling(matrix)
SetMatrixFrom3Rows(Row1, Row2, Row3)
RayFromMatrices(origin, destination)
RayFromMatrixAxis(origin, flipAxis, axis)
RayIntersectsBox(ray, box)
RayIntersectsPlane(ray, plane)
RayIntersectsSphere(ray, sphere)
GetMapChannel(mesh, id)
GetMapChannelName(id)
QuaternionToVector4(q)
Vector4(x, y, z, w)
Vector4ToQuaternion(v)
Vector4W(v)
Vector4X(v)
Vector4Y(v)
Vector4Z(v)
NormalizedCross(v1, v2)
NormalizedCrossWithFlip(Flip, VecOptFlipped, Vec2)
PerpToVecInPlane2ndVec(Flip, Vec, Vec2FirstCross)
VecNegateIf(Condition, Vec)
Referenzerstellung: ReferenceMaker()
Zeit: Int32()
Transformationscontroller: Matrix()
Eingabe: cache()
Eingabe: Constraint()
Eingabe: RigidBodyDynamics()
Eingabe: World()
Ausgabe: Color Controller(value)
Ausgabe: Float Controller(value)
Ausgabe: Point3 Controller(value)
Ausgabe: Point4 Controller(value)
Ausgabe: Position Controller(value)
Ausgabe: Rotation Controller(value)
Ausgabe: Scale Controller(value)
Ausgabe: Transform Controller(value)
Parameter: IArray<INode>()
Parameter: IArray<Single>()
Parameter: Vector3()
Zwangspunkt: cache(x)
Zwangspunkt: Constraint(x)
Zwangspunkt: RigidBodyDynamics(x)
Zwangspunkt: World(x)
NodeSingleTupleFirst(Tuple2)
NodeSingleTupleSecond(Tuple2)