Error when tried to record avatar on marketplace chair with sit script


I tried recording an avatar sitting on the “Chair with intelligent sit script” from the marketplace but the logs say:

[08/25 12:50:56] [DEBUG] script:print()<< I’m the master. I want to start recording
[08/25 12:51:01] [WARNING] animation contains joint = “Armature” which is not in the skeleton, url = “
[08/25 12:51:04] [DEBUG] script:print()<< I want to stop recording
[08/25 12:51:04] [DEBUG] script:print()<< PERFORMANCE FILE EMPTY

I can’t find where joint = “Armature” is set.


I used FBXconverter to explore the file sit_idle_talk_inplace.fbx and compare it with the idle.fbx animation file that comes with hifi. These are the differences I’ve observed with respect to “Armature”.

creator is Blender (Stable FBX IO) 2.77 (Sub 0)-3.7-1

Model 0
string Model;;Armature
string Null

NodeAttribute 0
string NodeAttribute:: Armature
string: Null
typeflag: Null

Model 1 and NodeAtribute 1 is hips

idle.fbx from hifi
creator FBX SDK/FBX Plugin version 2016.0

Model 0
string Model;;Hips
string LimbNode

NodeAttribute 0
string NodeAttribute;;
string LimbNode
typeflags string Skeleton

For the animation fbx from hifi model 0 is hips.

I tried to import and export idle.fbx with Blender 2.77a and it turned Model 0 to Armature.

The warning about an “Armature” joint appears to come from the ff. function from AnimClip.cpp

void AnimClip::copyFromNetworkAnim() {
assert(_networkAnim && _networkAnim->isLoaded() && _skeleton);

// build a mapping from animation joint indices to skeleton joint indices.
// by matching joints with the same name.
const FBXGeometry& geom = _networkAnim->getGeometry();
AnimSkeleton animSkeleton(geom);
const auto animJointCount = animSkeleton.getNumJoints();
const auto skeletonJointCount = _skeleton->getNumJoints();
std::vector<int> jointMap;
for (int i = 0; i < animJointCount; i++) {
    int skeletonJoint = _skeleton->nameToJointIndex(animSkeleton.getJointName(i));
    if (skeletonJoint == -1) {
        qCWarning(animation) << "animation contains joint =" << animSkeleton.getJointName(i) << " which is not in the skeleton, url =" << _url;

That’s all I got so far as I don’t know how the function reads joint indices from blender fbx.


Really sorry, I’ve only just noticed this post after being bumped.
You are correct, there is an extra joint by mistake, I was unaware this might cause any issue beyond issuing warnings.
Are you sure the recording is halted due to the extra bone? If so I will fix the files.


Thanks for the reply. I can only rely on the logs. I repeated the recording over again with other seat anim e.g. idle without talking etc. and the logs would throw up the warning about extra bone. I’m sorry I have no other way to test and the logs doesn’t say anything else.

Btw. Recording is successfull if I’m not seated, which I assume uses the default animations that come with hifi installer.

In addition I tried importing and exporting the default anims (the animations that come with the hifi installer) in blender and they ended up the same with Model 0 “Armature”. I followed the export settings from other posts and don’t know if there other settings that would result in a similar fbx file as the default animations. I’m hoping this is not a problem with blender exported fbx animations in general.


@Triplelexx, please ignore my report. I’ve tried it again today and now its recording. It does not seem to be related to extra joint warning. I’ve also tested a clap animation with blender fbx and original fbx and they recorded as well.

I am unable to playback the recorded file yet but that’s another issue. I’m basically trying to record an avatar with its animation overriden by custom fbx anim. I guess I bit off more than I can chew. Sorry for the bother.


No problem, glad to know the extra joint is not the issue.