From ade85ad8c089306ed822f1e50afe30cd4a0fd33d Mon Sep 17 00:00:00 2001
From: David Rowe Warning: glTF animations currently do not always animate correctly.true
if the animation should loop, false
if it shouldn't.
diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h
index db373c6402..31fbba03ae 100644
--- a/interface/src/avatar/MyAvatar.h
+++ b/interface/src/avatar/MyAvatar.h
@@ -609,8 +609,10 @@ public:
* the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see
* Avatar Standards.
Warning: glTF animations currently do not always animate correctly.
* @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. * @param {boolean} loop -true
if the animation should loop, false
if it shouldn't.
* @param {number} firstFrame - The frame to start the animation at.
@@ -630,8 +632,10 @@ public:
* Use {@link MyAvatar.restoreHandAnimation} to restore the default poses.
* @function MyAvatar.overrideHandAnimation
* @param isLeft {boolean} true
to override the left hand, false
to override the right hand.
- * @param {string} url - The URL of the animation file. Animation files need to be FBX format, but only need to contain the
- * avatar skeleton and animation data.
+ * @param {string} url - The URL of the animation file. Animation files need to be in glTF or FBX format, but only need to
+ * contain the avatar skeleton and animation data. glTF models may be in JSON or binary format (".gltf" or ".glb" URLs
+ * respectively).
+ * Warning: glTF animations currently do not always animate correctly.
* @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. * @param {boolean} loop -true
if the animation should loop, false
if it shouldn't.
* @param {number} firstFrame - The frame to start the animation at.
@@ -702,19 +706,22 @@ public:
* Each avatar has an avatar-animation.json file that defines a set of animation roles. Animation roles map to easily
* understandable actions that the avatar can perform, such as "idleStand"
, "idleTalk"
, or
* "walkFwd"
. To get the full list of roles, use {@ link MyAvatar.getAnimationRoles}.
- * For each role, the avatar-animation.json defines when the animation is used, the animation clip (FBX) used, and how
- * animations are blended together with procedural data (such as look at vectors, hand sensors etc.).
- * overrideRoleAnimation()
is used to change the animation clip (FBX) associated with a specified animation
- * role. To end the role animation and restore the default, use {@link MyAvatar.restoreRoleAnimation}.
Note: Hand roles only affect the hand. Other 'main' roles, like 'idleStand', 'idleTalk', 'takeoffStand' are full body.
+ * For each role, the avatar-animation.json defines when the animation is used, the animation clip (glTF or FBX) used, and + * how animations are blended together with procedural data (such as look at vectors, hand sensors etc.). + *overrideRoleAnimation()
is used to change the animation clip (glTF or FBX) associated with a specified
+ * animation role. To end the role animation and restore the default, use {@link MyAvatar.restoreRoleAnimation}.
+ * Note: Hand roles only affect the hand. Other "main" roles, like "idleStand", "idleTalk", and "takeoffStand", are full + * body.
*Note: When using pre-built animation data, it's critical that the joint orientation of the source animation and target * rig are equivalent, since the animation data applies absolute values onto the joints. If the orientations are different, * the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see * Avatar Standards. * @function MyAvatar.overrideRoleAnimation * @param {string} role - The animation role to override - * @param {string} url - The URL to the animation file. Animation files need to be in FBX format, but only need to contain - * the avatar skeleton and animation data. + * @param {string} url - The URL to the animation file. Animation files need to be in glTF or FBX format, but only need to + * contain the avatar skeleton and animation data. glTF models may be in JSON or binary format (".gltf" or ".glb" URLs + * respectively). + *
Warning: glTF animations currently do not always animate correctly.
* @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. * @param {boolean} loop -true
if the animation should loop, false
if it shouldn't.
* @param {number} firstFrame - The frame the animation should start at.
@@ -739,9 +746,9 @@ public:
* Each avatar has an avatar-animation.json file that defines a set of animation roles. Animation roles map to easily
* understandable actions that the avatar can perform, such as Note: Attached models are models only; they are not entities and can not be manipulated using the {@link Entities} API.
- * Nor can you use this function to attach an entity (such as a sphere or a box) to your avatar. Warning: glTF animations currently do not always animate correctly. Deprecated: This property is deprecated and will be removed. Warning: glTF animations currently do not always animate correctly."idleStand"
, "idleTalk"
, or
* "walkFwd"
. To get the full list of roles, use {@link MyAvatar.getAnimationRoles}. For each role,
- * the avatar-animation.json defines when the animation is used, the animation clip (FBX) used, and how animations are
- * blended together with procedural data (such as look-at vectors, hand sensors etc.). You can change the animation clip
- * (FBX) associated with a specified animation role using {@link MyAvatar.overrideRoleAnimation}.
+ * the avatar-animation.json defines when the animation is used, the animation clip (glTF or FBX) used, and how animations
+ * are blended together with procedural data (such as look-at vectors, hand sensors etc.). You can change the animation
+ * clip (glTF or FBX) associated with a specified animation role using {@link MyAvatar.overrideRoleAnimation}.
* restoreRoleAnimation()
is used to restore a specified animation role's default animation clip. If you have
* not specified an override animation for the specified role, this function has no effect.
* @function MyAvatar.restoreRoleAnimation
diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp
index be371c900b..100711d69b 100644
--- a/interface/src/ui/overlays/Overlays.cpp
+++ b/interface/src/ui/overlays/Overlays.cpp
@@ -1740,7 +1740,9 @@ QVectorparentID
is set. Use 65535 or -1 to parent to the parent's position and orientation rather
* than a joint.
*
- * @property {string} url - The URL of the FBX or OBJ model used for the overlay.
+ * @property {string} url - The URL of the glTF, FBX, or OBJ model used for the overlay. glTF models may be in JSON or binary
+ * format (".gltf" or ".glb" URLs respectively). Baked models' URLs have ".baked" before the file type. Model files may
+ * also be compressed in GZ format, in which case the URL ends in ".gz".
* @property {number} loadPriority=0.0 - The priority for loading and displaying the overlay. Overlays with higher values load
* first. Currently not used.
* @property {Object.true
to enable translations contained in the animation to be
+ * @property {string} url="" - The URL of the glTF or FBX file that has the animation. glTF files may be in JSON or binary
+ * format (".gltf" or ".glb" URLs respectively).
+ * true
to enable translations contained in the animation to be
* played, false
to disable translations.
* @property {number} fps=30 - The speed in frames/s that the animation is played at.
* @property {number} firstFrame=0 - The first frame to play in the animation.
diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp
index b89788040f..88ee3c6569 100644
--- a/libraries/entities/src/EntityItemProperties.cpp
+++ b/libraries/entities/src/EntityItemProperties.cpp
@@ -958,8 +958,8 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
* value is specified then the model is automatically sized to its
* {@link Entities.EntityProperties|naturalDimensions}
.
* @property {string} modelURL="" - The URL of the glTF, FBX, or OBJ model. glTF models may be in JSON or binary format
- * (".gltf" or ".glb" URLs respectively). Baked FBX models' URLs end in ".baked.fbx". Model files may also be compressed in GZ
- * format, in which case the URL ends in ".gz".
+ * (".gltf" or ".glb" URLs respectively). Baked models' URLs have ".baked" before the file type. Model files may also be
+ * compressed in GZ format, in which case the URL ends in ".gz".
* @property {Vec3} modelScale - The scale factor applied to the model's dimensions.
* "Sphere"
. If an entity of type Box
or Shape
has its shape
set
* to "Sphere"
then its type
will be reported as "Sphere"
.
* {@link Entities.EntityProperties-Sphere|EntityProperties-Sphere}
- * "Model"
A mesh model from a glTf, FBX, or OBJ file.
+ *
* "Model"
A mesh model from a glTF, FBX, or OBJ file.
* {@link Entities.EntityProperties-Model|EntityProperties-Model}
diff --git a/libraries/shared/src/RegisteredMetaTypes.cpp b/libraries/shared/src/RegisteredMetaTypes.cpp
index e23064c8a0..d6ce2f11b1 100644
--- a/libraries/shared/src/RegisteredMetaTypes.cpp
+++ b/libraries/shared/src/RegisteredMetaTypes.cpp
@@ -1229,8 +1229,10 @@ AnimationDetails::AnimationDetails(QString role, QUrl url, float fps, float prio
* The details of an animation that is playing.
* @typedef {object} Avatar.AnimationDetails
* @property {string} role - Not used.
- * @property {string} url - The URL to the animation file. Animation files need to be in .FBX format but only need to contain
-* the avatar skeleton and animation data.
+ * @property {string} url - The URL to the animation file. Animation files need to be in glTF or FBX format but only need to
+ * contain the avatar skeleton and animation data. glTF models may be in JSON or binary format (".gltf" or ".glb" URLs
+ * respectively).
+ * "Text"
A pane of text oriented in space.
* {@link Entities.EntityProperties-Text|EntityProperties-Text} true
if the animation should loop, false
if it shouldn't.