collada-dae-parser
Advanced tools
Comparing version 0.9.0 to 0.10.0
@@ -46,5 +46,8 @@ var matrixMultiply = require('../render/matrix-math/multiply.js') | ||
gl.uniformMatrix4fv(modelData.shaderObj['boneMatrix' + jointNum], false, opts.interpolatedJoints[jointNum]) | ||
gl.uniform4fv(modelData.shaderObj['boneRotQuaternion' + jointNum], opts.rotationQuats[jointNum]) | ||
gl.uniform4fv(modelData.shaderObj['boneTransQuaternion' + jointNum], opts.translationQuats[jointNum]) | ||
} | ||
// Normal Matrices | ||
// TODO: Don't calculate normals using matrices, use dual quats | ||
for (var q = 0; q < opts.numJoints; q++) { | ||
@@ -51,0 +54,0 @@ // TODO: better name |
@@ -22,3 +22,3 @@ var makePerspective = require('./matrix-math/make-perspective.js') | ||
var interpolatedJoints = interpolateJoints(selectedKeyframes, dt, animatedModel.numJoints) | ||
var interpolatedJointData = interpolateJoints(selectedKeyframes, dt, animatedModel.numJoints) | ||
@@ -36,3 +36,5 @@ gl.viewport(0, 0, state.viewport.width, state.viewport.height) | ||
animatedModel.draw({ | ||
interpolatedJoints: interpolatedJoints, | ||
interpolatedJoints: interpolatedJointData.interpolatedJoints, | ||
rotationQuats: interpolatedJointData.interpolatedRotQuaternions, | ||
translationQuats: interpolatedJointData.interpolatedTransQuaternions, | ||
position: modelPosition, | ||
@@ -39,0 +41,0 @@ perspectiveMatrix: pMatrix, |
var createMatrix = require('gl-mat4/create') | ||
var interpolate = require('mat4-interpolate') | ||
var mat3FromMat4 = require('gl-mat3/from-mat4') | ||
var quatMultiply = require('gl-quat/multiply') | ||
var quatFromMat3 = require('gl-quat/fromMat3') | ||
var quatScale = require('gl-quat/scale') | ||
var quatAdd = require('gl-quat/add') | ||
// TODO: This should not be responsible for maintaining a clock | ||
@@ -11,2 +17,3 @@ var animationClock = 0 | ||
// based on the current clock time | ||
// TODO: Rename this function. It no longer just returns elapsed time | ||
function percentBetweenKeyframes (keyframes, dt, numJoints) { | ||
@@ -55,3 +62,37 @@ var min | ||
return interpolatedJoints | ||
// We store our dual quaternion vectors and later push them to the GPU for duql quaternion blending | ||
var interpolatedRotQuaternions = [] | ||
var interpolatedTransQuaternions = [] | ||
// TODO: Just got dual quaternion skinning working! Code is a mess need to clean. Was throwing everything at the wall on this one.. | ||
// TODO: Don't convert keyframe matrices into dual quaternions every single frame. Only need to do it once | ||
// TODO: Rename the variables | ||
interpolatedJoints.forEach(function (joint, index) { | ||
// Create our lower keyframe dual quaternion | ||
joint = minJoints[index] | ||
var rotationMatrix = mat3FromMat4([], joint) | ||
var rotationQuat = quatFromMat3([], rotationMatrix) | ||
var transVec = [joint[12], joint[13], joint[14], 0] | ||
var transQuat = quatScale([], quatMultiply([], transVec, rotationQuat), 0.5) | ||
// Create our upper keyframe dual quaternion | ||
var joint2 = maxJoints[index] | ||
var rotationMatrix2 = mat3FromMat4([], joint2) | ||
var rotationQuat2 = quatFromMat3([], rotationMatrix2) | ||
var transVec2 = [joint2[12], joint2[13], joint2[14], 0] | ||
var transQuat2 = quatScale([], quatMultiply([], transVec2, rotationQuat2), 0.5) | ||
// Interpolate our upper and lower keyframe dual quaternions using dual quaternion linear blending | ||
rotationQuat = quatAdd([], quatScale([], rotationQuat, 1 - percentBetweenKeyframes), quatScale([], rotationQuat2, percentBetweenKeyframes)) | ||
transQuat = quatAdd([], quatScale([], transQuat, 1 - percentBetweenKeyframes), quatScale([], transQuat2, percentBetweenKeyframes)) | ||
interpolatedRotQuaternions.push(rotationQuat) | ||
interpolatedTransQuaternions.push(transQuat) | ||
}) | ||
return { | ||
interpolatedJoints: interpolatedJoints, | ||
interpolatedRotQuaternions: interpolatedRotQuaternions, | ||
interpolatedTransQuaternions: interpolatedTransQuaternions | ||
} | ||
} |
@@ -57,2 +57,5 @@ var fs = require('fs') | ||
shaderObj['normalMatrix' + jointNum] = gl.getUniformLocation(shaderProgram, 'boneNormals[' + jointNum + ']') | ||
// Split our dual quaternion into two vec4's since we can't use mat2x4 in WebGL | ||
shaderObj['boneRotQuaternion' + jointNum] = gl.getUniformLocation(shaderProgram, 'boneRotQuaternions[' + jointNum + ']') | ||
shaderObj['boneTransQuaternion' + jointNum] = gl.getUniformLocation(shaderProgram, 'boneTransQuaternions[' + jointNum + ']') | ||
} | ||
@@ -59,0 +62,0 @@ |
@@ -11,11 +11,20 @@ var mount = document.createElement('div') | ||
var sourceLink = document.createElement('a') | ||
sourceLink.href = 'https://github.com/chinedufn/collada-dae-parser' | ||
sourceLink.innerHTML = 'View source on GitHub' | ||
// Add fork me on GitHub ribbon | ||
var forkMeOnGitHub = document.createElement('a') | ||
forkMeOnGitHub.href = 'https://github.com/chinedufn/collada-dae-parser' | ||
var ribbonImage = document.createElement('img') | ||
ribbonImage.style.position = 'absolute' | ||
ribbonImage.style.top = 0 | ||
ribbonImage.style.right = 0 | ||
ribbonImage.style.border = 0 | ||
ribbonImage.src = 'https://camo.githubusercontent.com/652c5b9acfaddf3a9c326fa6bde407b87f7be0f4/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6f72616e67655f6666373630302e706e67' | ||
ribbonImage.alt = 'Fork me on GitHub' | ||
// <a href="https://github.com/you"><img style="position: absolute; top: 0; right: 0; border: 0;" src="" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a> | ||
forkMeOnGitHub.appendChild(ribbonImage) | ||
incompleteWarning.innerHTML = 'Work in progress. - Parse collada .dae files for viewing 3d model animations in the browser. - Rotate camera using arrow keys. - ' | ||
incompleteWarning.appendChild(sourceLink) | ||
document.body.appendChild(incompleteWarning) | ||
document.body.appendChild(mount) | ||
document.body.appendChild(forkMeOnGitHub) | ||
@@ -22,0 +31,0 @@ document.querySelector('html').style.height = '100%' |
@@ -21,2 +21,14 @@ ## How to Export | ||
## Multiple Meshes | ||
`collada-dae-parser` does not support files with multiple meshes. You should join your geometries in `Object mode` before exporting. | ||
*First select all of your meshes while in Object mode* | ||
![image](https://cloud.githubusercontent.com/assets/2099811/19275194/ee841a00-8fa0-11e6-89a3-5f5edf67763b.png) | ||
*Then join them using `Ctrl` + `J`* | ||
![image](https://cloud.githubusercontent.com/assets/2099811/19274869/b3d4ca04-8f9f-11e6-9148-6cabd81a9ed6.png) | ||
## Skeletons with only Rigid Motions | ||
@@ -23,0 +35,0 @@ |
{ | ||
"name": "collada-dae-parser", | ||
"version": "0.9.0", | ||
"version": "0.10.0", | ||
"description": "Parse collada .dae 3d animation files into json", | ||
@@ -5,0 +5,0 @@ "main": "src/parse-collada.js", |
@@ -45,3 +45,3 @@ collada-dae-parser [![npm version](https://badge.fury.io/js/collada-dae-parser.svg)](http://badge.fury.io/js/collada-dae-parser) [![Build Status](https://travis-ci.org/chinedufn/collada-dae-parser.svg?branch=master)](https://travis-ci.org/chinedufn/collada-dae-parser) | ||
![image](https://cloud.githubusercontent.com/assets/2099811/19274200/62e11032-8f9d-11e6-8f99-d0528d2d5d77.png) | ||
![image](https://cloud.githubusercontent.com/assets/2099811/19274522/621af72a-8f9e-11e6-969f-6f51b2f45a4c.png) | ||
@@ -129,3 +129,3 @@ ## CLI | ||
- [wavefront-obj-parser](https://github.com/chinedufn/wavefront-obj-parser) | ||
- [skeletal-animation-system](https://github.com/chinedufn/skeleta-animation-system) | ||
- [skeletal-animation-system](https://github.com/chinedufn/skeletal-animation-system) | ||
@@ -132,0 +132,0 @@ ## Credits |
@@ -44,2 +44,8 @@ var mat4Multiply = require('gl-mat4/multiply') | ||
var bindPoses = controller[0].skin[0].source[1].float_array[0]._.split(' ').map(Number) | ||
// A way to look up each joint's index using it's name | ||
// This is useful for creating bone groups using names | ||
// but then easily converting them to their index within | ||
// the collada-dae-parser data structure. | ||
// (collada-dae-parser uses index's and not names to store bone data) | ||
var jointNamePositionIndex = {} | ||
orderedJointNames.forEach(function (jointName, index) { | ||
@@ -49,2 +55,3 @@ var bindPose = bindPoses.slice(16 * index, 16 * index + 16) | ||
jointBindPoses[jointName] = bindPose | ||
jointNamePositionIndex[jointName] = index | ||
}) | ||
@@ -57,4 +64,5 @@ } | ||
jointBindPoses: jointBindPoses, | ||
jointNamePositionIndex: jointNamePositionIndex, | ||
vertexJointWeights: parsedVertexJointWeights | ||
} | ||
} |
@@ -27,2 +27,3 @@ var xmlparser = require('xml-parser') | ||
parsedObject.vertexJointWeights = controllerData.vertexJointWeights | ||
parsedObject.jointNamePositionIndex = controllerData.jointNamePositionIndex | ||
jointBindPoses = controllerData.jointBindPoses | ||
@@ -29,0 +30,0 @@ } |
@@ -6,2 +6,3 @@ // A 3d letter f | ||
module.exports = { | ||
jointNamePositionIndex: { Bone: 0, Bone_001: 1 }, | ||
keyframes: { | ||
@@ -8,0 +9,0 @@ '0': [ |
@@ -7,3 +7,9 @@ // Letter F animated with a parent -> child -> child | ||
module.exports = { | ||
keyframes: { 0: [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ], '1.666667': [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ] ], '3.333333': [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ], [ -0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, -0.707107, 0, 6.21493, 0, 2.827879, 1 ] ], 5: [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ] }, vertexJointWeights: [ { 0: 0.8415314, 1: 0.1584686 }, { 0: 0.8437713, 1: 0.1562287 }, { 0: 0.9476546, 1: 0.05234539 }, { 0: 0.946487, 1: 0.05351299 }, { 0: 0.1121221, 1: 0.8878778 }, { 0: 0.1128941, 1: 0.8433575, 2: 0.04374837 }, { 0: 0.8497215, 1: 0.1502784 }, { 0: 0.8475226, 1: 0.1524773 }, { 0: 0.4134382, 1: 0.5865618 }, { 0: 0.3438115, 1: 0.6561885 }, { 0: 0.4709932, 1: 0.5290068 }, { 0: 0.4592075, 1: 0.5407926 }, { 0: 0.4794089, 1: 0.5205911 }, { 0: 0.4869785, 1: 0.5130215 }, { 0: 0.433289, 1: 0.566711 }, { 0: 0.3834543, 1: 0.6165456 }, { 0: 0.5163786, 1: 0.4836215 }, { 0: 0.08351624, 1: 0.9164837 }, { 0: 0.5159874, 1: 0.4840126 }, { 0: 0.08578228, 1: 0.9142178 }, { 0: 0.4012839, 1: 0.5987161 }, { 0: 0.3799905, 1: 0.6200094 }, { 0: 0.3870865, 1: 0.6129134 }, { 0: 0.4056271, 1: 0.5943729 }, { 1: 0.7715917, 2: 0.2284083 }, { 1: 0.1755544, 2: 0.8244456 }, { 1: 0.891659, 2: 0.108341 }, { 1: 0.8336093, 2: 0.1663907 }, { 1: 0.1755515, 2: 0.8244485 }, { 1: 0.0901066, 2: 0.9098934 }, { 1: 0.5328469, 2: 0.4671531 }, { 1: 0.5148224, 2: 0.4851776 }, { 1: 0.200401, 2: 0.7995991 }, { 1: 0.06429231, 2: 0.9357076 }, { 1: 0.08411085, 2: 0.9158891 }, { 1: 0.03239625, 2: 0.9676038 } ], vertexNormalIndices: [ 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 8, 8, 8, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 16, 16, 16, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 9, 9, 9, 20, 20, 20, 21, 21, 21, 16, 16, 16, 18, 18, 18, 9, 9, 9, 18, 18, 18, 19, 19, 19, 22, 22, 22, 9, 9, 9, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 7, 7, 7, 29, 29, 29, 9, 9, 9, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 14, 14, 14, 15, 15, 15, 16, 16, 16, 35, 35, 35, 18, 18, 18, 16, 16, 16, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 9, 9, 9, 36, 36, 36, 37, 37, 37, 16, 16, 16, 18, 18, 18, 9, 9, 9, 18, 18, 18, 19, 19, 19, 38, 38, 38 ], vertexNormals: [ 0, 0, -1, -1, 2.99957e-7, 0, 1, -5.96046e-7, 3.27825e-7, -4.76837e-7, -1, 0, -1, 2.38419e-7, -1.19209e-7, 2.08616e-7, 1, 0, 4.76837e-7, 0, 1, 2.68221e-7, 1, 0, -4.76837e-7, -1, 0, 0, 0, -1, 1, -5.94404e-7, 0, 2.68221e-7, 1, 0, -1, 2.54745e-7, 0, -1, 2.54745e-7, 0, 2.68221e-7, 1, 0, -4.76837e-7, -1, 0, 0, 0, 1, 1, -3.99942e-7, 0, 0, 1, 0, 0, -1, 0, 1, -3.3966e-7, 0, -1, 4.76837e-7, 0, 1, -7.15256e-7, 0, -1, 1.99971e-7, 0, 1, 0, -2.38419e-7, 0, -1, -4.76837e-7, -1, 2.38419e-7, -1.49012e-7, 2.68221e-7, 1, 2.38419e-7, -4.76837e-7, 0, 1, -4.76837e-7, -1, 0, 1, -5.94404e-7, 0, -4.76837e-7, -1, 0, 2.68221e-7, 1, 0, -1, 1.6983e-7, 0, -1, 1.6983e-7, 0, 1, -7.99885e-7, 0, 1, -6.79319e-7, 0, -1, 7.15256e-7, 0, 1, -4.76837e-7, 0 ], vertexPositionIndices: [ 0, 1, 2, 12, 11, 10, 4, 5, 1, 5, 6, 2, 2, 6, 7, 0, 3, 7, 10, 11, 9, 13, 10, 8, 15, 9, 11, 14, 23, 22, 17, 14, 15, 19, 15, 12, 16, 13, 14, 18, 12, 13, 6, 18, 16, 7, 16, 17, 5, 19, 18, 17, 19, 27, 23, 20, 21, 8, 20, 23, 8, 9, 21, 15, 22, 21, 25, 29, 31, 5, 25, 27, 17, 26, 24, 4, 24, 25, 28, 30, 31, 24, 32, 33, 26, 27, 31, 26, 30, 28, 32, 34, 35, 28, 34, 32, 25, 33, 35, 29, 35, 34, 3, 0, 2, 13, 12, 10, 0, 4, 1, 1, 5, 2, 3, 2, 7, 4, 0, 7, 8, 10, 9, 14, 13, 8, 12, 15, 11, 15, 14, 22, 19, 17, 15, 18, 19, 12, 17, 16, 14, 16, 18, 13, 7, 6, 16, 4, 7, 17, 6, 5, 18, 26, 17, 27, 22, 23, 21, 14, 8, 23, 20, 8, 21, 9, 15, 21, 27, 25, 31, 19, 5, 27, 4, 17, 24, 5, 4, 25, 29, 28, 31, 25, 24, 33, 30, 26, 31, 24, 26, 28, 33, 32, 35, 24, 28, 32, 29, 25, 35, 28, 29, 34 ], vertexPositions: [ 1, 1, -1, 1, -1, -1, -1, -0.9999998, -1, -0.9999997, 1, -1, 1, 0.9999995, 1, 0.9999994, -1.000001, 1, -1, -0.9999997, 1, -1, 1, 1, 1, 0.9999995, 5, 0.9999994, -1.000001, 5, -1, 1, 5, -1, -0.9999997, 5, -1, -0.9999997, 3.807736, -1, 1, 3.807736, 1, 0.9999995, 3.807736, 0.9999994, -1.000001, 3.807736, -1, 1, 2.403868, 1, 0.9999995, 2.403868, -1, -0.9999997, 2.403868, 0.9999994, -1.000001, 2.403868, 3, 0.9999995, 5, 2.999999, -1.000001, 5, 2.999999, -1.000001, 3.807736, 3, 0.9999995, 3.807736, 3, 0.9999995, 1, 2.999999, -1.000001, 1, 3, 0.9999995, 2.403868, 2.999999, -1.000001, 2.403868, 4, 0.9999995, 1, 3.999999, -1.000001, 1, 4, 0.9999995, 2.403868, 3.999999, -1.000001, 2.403868, 3, 0.9999995, 0, 2.999999, -1.000001, 0, 4, 0.9999995, 0, 3.999999, -1.000001, 0 ] | ||
keyframes: { 0: [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ], '1.666667': [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ] ], '3.333333': [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, 0.707107, 0, 1.171346, 0, 0.485187, 1 ], [ -0.707107, 0, 0.707107, 0, 0, 1, 0, 0, -0.707107, 0, -0.707107, 0, 6.21493, 0, 2.827879, 1 ] ], 5: [ [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] ] }, | ||
vertexJointWeights: [ { 0: 0.8415314, 1: 0.1584686 }, { 0: 0.8437713, 1: 0.1562287 }, { 0: 0.9476546, 1: 0.05234539 }, { 0: 0.946487, 1: 0.05351299 }, { 0: 0.1121221, 1: 0.8878778 }, { 0: 0.1128941, 1: 0.8433575, 2: 0.04374837 }, { 0: 0.8497215, 1: 0.1502784 }, { 0: 0.8475226, 1: 0.1524773 }, { 0: 0.4134382, 1: 0.5865618 }, { 0: 0.3438115, 1: 0.6561885 }, { 0: 0.4709932, 1: 0.5290068 }, { 0: 0.4592075, 1: 0.5407926 }, { 0: 0.4794089, 1: 0.5205911 }, { 0: 0.4869785, 1: 0.5130215 }, { 0: 0.433289, 1: 0.566711 }, { 0: 0.3834543, 1: 0.6165456 }, { 0: 0.5163786, 1: 0.4836215 }, { 0: 0.08351624, 1: 0.9164837 }, { 0: 0.5159874, 1: 0.4840126 }, { 0: 0.08578228, 1: 0.9142178 }, { 0: 0.4012839, 1: 0.5987161 }, { 0: 0.3799905, 1: 0.6200094 }, { 0: 0.3870865, 1: 0.6129134 }, { 0: 0.4056271, 1: 0.5943729 }, { 1: 0.7715917, 2: 0.2284083 }, { 1: 0.1755544, 2: 0.8244456 }, { 1: 0.891659, 2: 0.108341 }, { 1: 0.8336093, 2: 0.1663907 }, { 1: 0.1755515, 2: 0.8244485 }, { 1: 0.0901066, 2: 0.9098934 }, { 1: 0.5328469, 2: 0.4671531 }, { 1: 0.5148224, 2: 0.4851776 }, { 1: 0.200401, 2: 0.7995991 }, { 1: 0.06429231, 2: 0.9357076 }, { 1: 0.08411085, 2: 0.9158891 }, { 1: 0.03239625, 2: 0.9676038 } ], | ||
vertexNormalIndices: [ 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 8, 8, 8, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 16, 16, 16, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 9, 9, 9, 20, 20, 20, 21, 21, 21, 16, 16, 16, 18, 18, 18, 9, 9, 9, 18, 18, 18, 19, 19, 19, 22, 22, 22, 9, 9, 9, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 7, 7, 7, 29, 29, 29, 9, 9, 9, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 14, 14, 14, 15, 15, 15, 16, 16, 16, 35, 35, 35, 18, 18, 18, 16, 16, 16, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 9, 9, 9, 36, 36, 36, 37, 37, 37, 16, 16, 16, 18, 18, 18, 9, 9, 9, 18, 18, 18, 19, 19, 19, 38, 38, 38 ], | ||
vertexNormals: [ 0, 0, -1, -1, 2.99957e-7, 0, 1, -5.96046e-7, 3.27825e-7, -4.76837e-7, -1, 0, -1, 2.38419e-7, -1.19209e-7, 2.08616e-7, 1, 0, 4.76837e-7, 0, 1, 2.68221e-7, 1, 0, -4.76837e-7, -1, 0, 0, 0, -1, 1, -5.94404e-7, 0, 2.68221e-7, 1, 0, -1, 2.54745e-7, 0, -1, 2.54745e-7, 0, 2.68221e-7, 1, 0, -4.76837e-7, -1, 0, 0, 0, 1, 1, -3.99942e-7, 0, 0, 1, 0, 0, -1, 0, 1, -3.3966e-7, 0, -1, 4.76837e-7, 0, 1, -7.15256e-7, 0, -1, 1.99971e-7, 0, 1, 0, -2.38419e-7, 0, -1, -4.76837e-7, -1, 2.38419e-7, -1.49012e-7, 2.68221e-7, 1, 2.38419e-7, -4.76837e-7, 0, 1, -4.76837e-7, -1, 0, 1, -5.94404e-7, 0, -4.76837e-7, -1, 0, 2.68221e-7, 1, 0, -1, 1.6983e-7, 0, -1, 1.6983e-7, 0, 1, -7.99885e-7, 0, 1, -6.79319e-7, 0, -1, 7.15256e-7, 0, 1, -4.76837e-7, 0 ], | ||
vertexPositionIndices: [ 0, 1, 2, 12, 11, 10, 4, 5, 1, 5, 6, 2, 2, 6, 7, 0, 3, 7, 10, 11, 9, 13, 10, 8, 15, 9, 11, 14, 23, 22, 17, 14, 15, 19, 15, 12, 16, 13, 14, 18, 12, 13, 6, 18, 16, 7, 16, 17, 5, 19, 18, 17, 19, 27, 23, 20, 21, 8, 20, 23, 8, 9, 21, 15, 22, 21, 25, 29, 31, 5, 25, 27, 17, 26, 24, 4, 24, 25, 28, 30, 31, 24, 32, 33, 26, 27, 31, 26, 30, 28, 32, 34, 35, 28, 34, 32, 25, 33, 35, 29, 35, 34, 3, 0, 2, 13, 12, 10, 0, 4, 1, 1, 5, 2, 3, 2, 7, 4, 0, 7, 8, 10, 9, 14, 13, 8, 12, 15, 11, 15, 14, 22, 19, 17, 15, 18, 19, 12, 17, 16, 14, 16, 18, 13, 7, 6, 16, 4, 7, 17, 6, 5, 18, 26, 17, 27, 22, 23, 21, 14, 8, 23, 20, 8, 21, 9, 15, 21, 27, 25, 31, 19, 5, 27, 4, 17, 24, 5, 4, 25, 29, 28, 31, 25, 24, 33, 30, 26, 31, 24, 26, 28, 33, 32, 35, 24, 28, 32, 29, 25, 35, 28, 29, 34 ], | ||
vertexPositions: [ 1, 1, -1, 1, -1, -1, -1, -0.9999998, -1, -0.9999997, 1, -1, 1, 0.9999995, 1, 0.9999994, -1.000001, 1, -1, -0.9999997, 1, -1, 1, 1, 1, 0.9999995, 5, 0.9999994, -1.000001, 5, -1, 1, 5, -1, -0.9999997, 5, -1, -0.9999997, 3.807736, -1, 1, 3.807736, 1, 0.9999995, 3.807736, 0.9999994, -1.000001, 3.807736, -1, 1, 2.403868, 1, 0.9999995, 2.403868, -1, -0.9999997, 2.403868, 0.9999994, -1.000001, 2.403868, 3, 0.9999995, 5, 2.999999, -1.000001, 5, 2.999999, -1.000001, 3.807736, 3, 0.9999995, 3.807736, 3, 0.9999995, 1, 2.999999, -1.000001, 1, 3, 0.9999995, 2.403868, 2.999999, -1.000001, 2.403868, 4, 0.9999995, 1, 3.999999, -1.000001, 1, 4, 0.9999995, 2.403868, 3.999999, -1.000001, 2.403868, 3, 0.9999995, 0, 2.999999, -1.000001, 0, 4, 0.9999995, 0, 3.999999, -1.000001, 0 ], | ||
jointNamePositionIndex: { Bone: 0, Bone_001: 1, Bone_002: 2 } | ||
} |
@@ -8,2 +8,3 @@ // Two cubes, each with their own joint (no parent child relationship) | ||
module.exports = { | ||
jointNamePositionIndex: { Bone: 0, Bone_001: 1 }, | ||
keyframes: { | ||
@@ -10,0 +11,0 @@ '0.04166662': [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3202630
61
1423