CreateFromMorphTargetSequence static method
dynamic
CreateFromMorphTargetSequence(
- dynamic name,
- dynamic morphTargetSequence,
- dynamic fps,
- dynamic noLoop,
Implementation
static CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {
var numMorphTargets = morphTargetSequence.length;
var tracks = [];
for (var i = 0; i < numMorphTargets; i++) {
List<num> times = [];
List<num> values = [];
times.addAll([
(i + numMorphTargets - 1) % numMorphTargets,
i,
(i + 1) % numMorphTargets
]);
values.addAll([0, 1, 0]);
var order = AnimationUtils.getKeyframeOrder(times);
times = AnimationUtils.sortedArray(times, 1, order);
values = AnimationUtils.sortedArray(values, 1, order);
// if there is a key at the first frame, duplicate it as the
// last frame as well for perfect loop.
if (!noLoop && times[0] == 0) {
times.add(numMorphTargets);
values.add(values[0]);
}
tracks.add(NumberKeyframeTrack(
'.morphTargetInfluences[${morphTargetSequence[i].name}]',
times,
values,
null)
.scale(1.0 / fps));
}
return AnimationClip(name, -1, tracks);
}