JQC Blender addon
Automated quick panel
Constrain a bone or a set of bones in one click from the automatically generated quick buttons
Extremely powerful
The addon reads user created constraints in a Json file and adds quick constraint buttons in the animation panel. In one click you can constrain a bone or a set of bones
The addon is extremely powerful and allows you to create all the different constraint types. You are not limited to your character. You can constrain to other objects or even other armatures
Save your time
The addon supports hotloading. The presets are read everytime the buttons are pressed. You just need to save your JSON file, no extra step is required
Extremely convenient
The JSON files are tied to the armature names and can be shared between multiple duplicate linked armatures
You can save your presets in a property of your object. That property can be modified within Blender. This allows sharing the .blend file and its preset without sending the JSON file.
The support for aliases allows you to share the presets between multiple common rigs without having to make another JSON file. You can just change the bone aliases and the constraints will work for your new rig
-
1.3.4 Better support for other constraining to other objects
Fixed wrong packaging
the addon can now be enabled
Added case sensitivity for aliases
Documentation
Setup
The JSON file needs to be in the same folder as your BLEND file and have the same name as your armature. The JSON file is tied to the Armature name and not the Object name
In that case the JSON needs to be called Character_Armature.json and not Character.json
{ "Alias": optional { "calf_l": "Leg.L", calf_l will be replaced by Leg.L "calf_r": "Leg.R" calf_r will be replaced by Leg.R }, "Left leg IK": preset/button name { clears all constrains for these bones "Remove": ["Arm.L","ikArm.L","Arm.R","ikArm.R"], "Constraints": documentation [ { "constraint", "IK", constraint type "bone": "Arm.L", "subtarget" : "ikArm.L", specific to IK constraint "chain_count" : 1, specific to IK constraint } ] } }
Different blocks
{ "Alias": optional { "calf_l": "Leg.L", calf_l will be replaced by Leg.L "calf_r": "Leg.R" calf_r will be replaced by Leg.R } }
Alias
The addon allows you to use aliases
If you have multiple characters with a similar rig, you could use the same preset or a similar preset without remaking the entire JSON
"Left leg IK": preset/button name
Preset name
The name of the button that will be automatically created
Constraints
The list of all your constraints. You can add multiple constraints and bones to constrain in a single preset
{ clears all constrains for these bones "Remove": ["Arm.L","ikArm.L","Arm.R","ikArm.R"], }
Remove
In a preset you can clear all the constrains in a list of bones
Mandatory attributes
The attributes “constraint” and “bone” are mandatory. “constraint” determines the constraint type, and “bone” determines which bone will be constrained
Specific attributes
Most of the attributes will be specific to the type of constraint you are adding. In that case the “subtarget” and “chain_count” attributes are specific to IK constraints
Finding the attributes in Blender
In the properties tab where the constrains are displayed, right clicking on the name bone🟥 with the value ikArm.L🟥 shows a menu highlighting the name of the type Sub-Target🟥
The Copy Data Path🟨 button returns pose.bones["Arm.L"].constraints["IK"].subtarget
"subtarget" : "ikArm.L", specific to IK constraint
“Arm.L" : the name of the bone
“IK” : the constraint type
“subtarget” : the attribute we’re looking for
Finding the attributes with the documentation
You can find on the Blender website the appropriate documentation
Links to the specific constraints
Informations on how to fill certain attributes
Floats need to be written in float format and not integer
“pole_angle” : 180 ❌
“pole_angle” : 180.0 ✅
"constraint": "IK", constraint type
This link can be found by scrolling on the General documentation page
This is the value you should fill the “constraint” attribute
“target” attribute
"constraint": "IK", "bone": "Arm.L", "subtarget": "ikArm.L", "chain_count": 1
In the Blender documentation for IK constraints there is an attribute called “target” that is not filled in, for the example
We want to constrain the character’s bone “Arm.L” to another one of his bone, the “ikArm.L”
For this purpose the “target” is the character, and the subtarget is “ikArm.L”
"target" : "Character", will search for an object matching the name "target" : "self", currently selected object "target" : , not adding the line will be equivalent to having "target" :"self"
Saving to character
You can save the preset in a custom property of your character. This avoids having to have a JSON file everytime you add your character to your BLEND file
If your character has a JSON file and a custom property, the JSON file takes priority