Search the Community
Showing results for tags 'ACM file'.
-
Carnegie Mellon has a whole library of motion capture files for their 31 bone skeleton http://mocap.cs.cmu.edu. The acm zip file is over 1gb. It is output in a number of formats. acm is the only non-binary format, so it should be easiest to work with. I am thinking about a class which will process one of these files into the animation for each bone, after removing as many frames as possible. What I have so far: module MORPH{ export class Mocap{ private _boneNames = {}; // format is "rclavicle": 1 private _animation : Array<BABYLON.Animation>; constructor(acmFile : string, frameRate = 120, toleranceToStripFrame = 0){ // Todo: read the acm file and parse to members // remove as many frames as possible, working backwards; final frame must be provided } /** Memory efficient reference copying of a Mocap animation to a skeleton. */ public transferAnimations(destSkeleton: BABYLON.Skeleton, animationIdx = 0){ var destBones = destSkeleton.bones; var nBones = destBones.length; for (var i = 0; i < nBones; i++){ var boneIdx = this._boneNames[destBones[i].name]; if (typeof boneIdx === "undefined"){ BABYLON.Tools.Error("Mocap: not same rig"); return; } destBones[i].animations.splice(animationIdx, 0, this._animation[boneIdx]); } } }}Make Human can rig using this, so seems to be worth looking into. One problem is a small # of vertices need more than 4 influencers. This is not a problem as long as I use software skinning (probably going to have to for mobile anyway), and do not compress my mesh weights. Tower of Babel does not do this, so still good. Would have to put in a subclass, so applySkeleton could be over ridden (thinking about variable length influencers). Still Good. Not sure how to take the root element & combine with each bone to make a frame. Any ideas? Here is the first frame of a file: #!OML:ASF H:\Terrain\Patient Classification 1\Walking\liu\liu.ASF:FULLY-SPECIFIED:DEGREES1root 8.87208 15.7511 -31.7081 5.5217 4.9122 3.70117lowerback -6.36782 -4.70696 -6.683upperback -0.643012 -5.87124 2.06862thorax 3.78681 -3.04691 5.29674lowerneck -24.0759 -2.27082 -11.0665upperneck 24.0856 -2.48175 11.8592head 12.2401 -0.563692 6.00894rclavicle -2.43511e-015 -1.90833e-014rhumerus -44.9636 -1.75199 -74.7834rradius 18.5852rwrist -1.70884rhand -28.8562 -18.8005rfingers 7.12502rthumb -2.21279 -48.7688lclavicle -2.43511e-015 -1.90833e-014lhumerus -1.92727 -17.3217 82.8203lradius 47.7499lwrist 17.0419lhand -19.6688 -28.7993lfingers 7.12502lthumb 6.65951 1.07601rfemur -38.858 0.527314 17.3997rtibia 30.0014rfoot -4.01149 0.174858rtoes -20.7668lfemur 24.5842 9.53209 -22.1071ltibia -1.90833e-014lfoot -3.73452 -5.77693ltoes -22.05172...