Hoofdstuk 93Armatures en bones
Het skelet, de botten, en het verschil tussen Edit, Pose en Object Mode
Een Armature is Blender's skelet-datablock: een verzameling Bones (botten) die samen een hiërarchie vormen en, via de Armature-modifier op een mesh, die mesh kunnen vervormen. Drie standen bepalen wat je met een armature kan doen: Edit Mode om de botstructuur zelf te bouwen, Pose Mode om die botten te animeren, en Object Mode om het geheel te verplaatsen als elk ander object. Wie deze drie door elkaar haalt, botst al snel op een rig die er kapot uitziet zonder dat er iets stuk is.
RECCONCEPT00:00:00:00schooliumDrie standen, drie totaal verschillende bewerkingen
Edit Mode op een armature toont de botten als hun Rest Pose: de neutrale, ongebogen uitgangsstand waarin je botten toevoegt, knipt, herbenoemt en herschikt in de hiërarchie — exact zoals Edit Mode op een mesh vertices bewerkt. Pose Mode toont diezelfde botten, maar nu poseer je ze: elke rotatie, verplaatsing of schaal hier is een tijdelijke afwijking bovenop de Rest Pose, en is wat je keyframet. Object Mode behandelt de hele armature als één object — je verplaatst het skelet als geheel, zonder de botten onderling te beïnvloeden.
De klassieke misser: in Edit Mode een bot verplaatsen omdat je dacht in Pose Mode te zitten. Dat wijzigt de Rest Pose zelf, met als gevolg dat elke bestaande pose-animatie er plots vervormd uitziet, omdat de rest waarop ze gebaseerd was, veranderd is.
RECBLENDER 5.1 · DATA-ARMATURE00:00:00:001920×1080Eén bot in onderdelen

- 1Head (kop)
Het brede, ronde uiteinde — het draaipunt van het bot, meestal het gewricht.
- 2Tail (staart)
Het smalle uiteinde — waar het volgende bot in de keten meestal aan vastzit.
- 3Octaëdrische vorm
De standaard weergavevorm; alternatieven zijn Stick, B-Bone, Envelope en Wire, per armature instelbaar.
- 4Bone Roll
De rotatie van het bot om zijn eigen kop-staart-as — bepaalt welke kant 'boven' is voor IK-polen en custom shapes.
Parenting binnen een armature: Connected tegenover Disconnected
Een kind-bot dat Connected staat, deelt zijn kop-positie fysiek met de staart van zijn ouder — beweegt de ouder, dan beweegt de aansluiting altijd mee, zoals een echt gewricht. Disconnected (het slotje-icoon uit) laat het kind los van de ouder positioneren, terwijl het wel in rotatie en locatie blijft volgen — nodig voor bv. een vinger die niet exact op de handpalm hoort te beginnen, of een controllerbot die je bewust los van de rest wil positioneren. Ctrl+P in Edit Mode parent een selectie botten aan de actieve, met de keuze tussen Connected en Keep Offset (disconnected).
RECBLENDER 5.1 · ARMATURE-BOT-DETAIL00:00:00:001920×1080Instellingen — Armature (Object Data), 36 properties
Rechtstreeks uit Blender 5.1 uitgelezen — de eigenschappen van het Armature-datablock zelf, niet van een los bot.
| Instelling | Type | Standaard | Bereik | Wat hij doet (tooltip uit Blender) |
|---|---|---|---|---|
| Name | STRING | – | – | Unique data-block ID name (within a same type and library) |
| Full Name | STRING | – | – | Unique data-block ID name, including library one if any |
| Type | ENUM | ACTION | Action, Armature, Brush, Cache File, Camera, Collection, Curve, Curves, Font, Grease Pencil, Grease Pencil v3, Image, Key, Lattice, Library, Light, Light Probe, Line Style, Mask, Material, Mesh, Metaball, Movie Clip, Node Tree, Object, Paint Curve, Palette, Particle, Point Cloud, Scene, Screen, Sound, Speaker, Text, Texture, Volume, Window Manager, Workspace, World | Type identifier of this data-block |
| Session UID | INT | 0 | -10000 – 10000 | A session-wide unique identifier for the data block that remains the same across renames and internal reallocations, unchanged when reloading the file |
| Is Evaluated | BOOLEAN | uit | – | Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file |
| Users | INT | 0 | 0 – 10000 | Number of times this data-block is referenced |
| Fake User | BOOLEAN | uit | – | Save this data-block even if it has no users |
| Extra User | BOOLEAN | uit | – | Indicates whether an extra user is set or not (mainly for internal/debug usages) |
| Embedded Data | BOOLEAN | uit | – | This data-block is not an independent one, but is actually a sub-data of another ID (typical example: root node trees or master collections) |
| Linked Packed | BOOLEAN | uit | – | This data-block is linked and packed into the .blend file |
| Missing Data | BOOLEAN | uit | – | This data-block is a place-holder for missing linked data (i.e. it is [an override of] a linked data that could not be found anymore) |
| Runtime Data | BOOLEAN | uit | – | This data-block is runtime data, i.e. it won't be saved in .blend file. Note that e.g. evaluated IDs are always runtime, so this value is only editable for data-blocks in Main data-base. |
| Editable | BOOLEAN | uit | – | This data-block is editable in the user interface. Linked data-blocks are not editable, except if they were loaded as editable assets. |
| Tag | BOOLEAN | uit | – | Tools can use this to tag data for their own purposes (initial state is undefined) |
| Is Indirect | BOOLEAN | uit | – | Is this ID block linked indirectly |
| Bones | COLLECTION | – | – | |
| Edit Bones | COLLECTION | – | – | |
| Bone Collections (Roots) | COLLECTION | – | – | |
| Bone Collections (All) | COLLECTION | – | – | List of all bone collections of the armature |
| Pose Position | ENUM | POSE | Pose Position, Rest Position | Show armature in binding pose or final posed state |
| Display Type | ENUM | OCTAHEDRAL | Octahedral, Stick, B-Bone, Envelope, Wire | |
| Display Axes | BOOLEAN | uit | – | Display bone axes |
| Axes Position | FLOAT | 0 | 0 – 1 | The position for the axes on the bone. Increasing the value moves it closer to the tip; decreasing moves it closer to the root. |
| Relation Line Position | ENUM | TAIL | Tail, Head | The start position of the relation lines from parent to child bones |
| Display Names | BOOLEAN | uit | – | Display bone names |
| X-Axis Mirror | BOOLEAN | uit | – | Apply changes to matching bone on opposite side of X-Axis |
| Display Custom Bone Shapes | BOOLEAN | aan | – | Display bones with their custom shapes |
| Display Bone Colors | BOOLEAN | aan | – | Display bone colors |
| Is Editmode | BOOLEAN | uit | – | True when used in editmode |
Object Data Properties — armature (panelen)
| Paneel |
|---|
| Animation |
| Bone Collections |
| – Custom Properties |
| Custom Properties |
| DATA_PT_context_arm |
| Inverse Kinematics |
| Pose |
| Selection Sets |
Bone Collections: botten groeperen en tonen/verbergen
Bone Collections (de opvolger van de oudere Bone Layers) groepeert botten in genoemde sets — bv. "Controllers", "Deform", "IK" — die je apart kan tonen of verbergen in Pose Mode zonder botten te verwijderen. Bij een complexe rig met honderden botten is dit het verschil tussen een bruikbare en een onwerkbare viewport: een animator toont doorgaans alleen de controller-collectie en houdt de onderliggende deform-botten (die de mesh echt vervormen, maar zelf nooit rechtstreeks bewogen worden) verborgen.
RECBLENDER 5.1 · ARMATURE-BONE-COLLECTIONS00:00:00:001920×1080Bone Properties (context bone) — 10 panelen
| Paneel |
|---|
| BONE_PT_context_bone |
| Bendy Bones |
| Custom Properties |
| Deform |
| Inverse Kinematics |
| Relations |
| – Bone Collections |
| Transform |
| Viewport Display |
| – Custom Shape |
Deform tegenover niet-Deform botten
Het Deform-vinkje op de Bone Properties-tab bepaalt of een bot meetelt in de Armature-modifier — staat het uit, dan bestaat het bot wel in de hiërarchie en kan het geanimeerd of als IK-doel gebruikt worden, maar het vervormt de mesh zelf niet. Controller-botten (die alleen sturen, niet vervormen) staan hier meestal uit; de onderliggende deform-botten die de vertex groups aansturen, staan aan. Deze scheiding is wat een rig leesbaar houdt: een animator poseert de controllers, de deform-botten volgen via constraints automatisch mee.
RECBLENDER 5.1 · ARMATURE-BONE-COLLECTIONS00:00:00:001920×1080Bone Constraint Properties (context bone_constraint) — 40 panelen
Dezelfde 29 constraints als hoofdstuk 92, nu per bot in plaats van per object — de tabellen uit dat hoofdstuk gelden hier ongewijzigd.
| Paneel |
|---|
| BONE_PT_bActionConstraint |
| – Action |
| – Target |
| BONE_PT_bArmatureConstraint |
| – Bones |
| BONE_PT_bCameraSolverConstraint |
| BONE_PT_bChildOfConstraint |
| BONE_PT_bClampToConstraint |
| BONE_PT_bDampTrackConstraint |
| BONE_PT_bDistLimitConstraint |
| BONE_PT_bFollowPathConstraint |
| BONE_PT_bFollowTrackConstraint |
| BONE_PT_bGeometryAttributeConstraint |
| BONE_PT_bKinematicConstraint |
| BONE_PT_bLocLimitConstraint |
| BONE_PT_bLocateLikeConstraint |
| BONE_PT_bLockTrackConstraint |
| BONE_PT_bMinMaxConstraint |
| BONE_PT_bObjectSolverConstraint |
| BONE_PT_bPivotConstraint |
| BONE_PT_bRotLimitConstraint |
| BONE_PT_bRotateLikeConstraint |
| BONE_PT_bSameVolumeConstraint |
| BONE_PT_bShrinkwrapConstraint |
| BONE_PT_bSizeLikeConstraint |
| BONE_PT_bSizeLimitConstraint |
| BONE_PT_bSplineIKConstraint |
| – Chain Scaling |
| – Fitting |
| BONE_PT_bStretchToConstraint |
| BONE_PT_bTrackToConstraint |
| BONE_PT_bTransLikeConstraint |
| BONE_PT_bTransformCacheConstraint |
| – Override Layers |
| – Time |
| – Velocity |
| BONE_PT_bTransformConstraint |
| – Map From |
| – Map To |
| Bone Constraints |
Inverse Kinematics: het been dat naar de hak beweegt in plaats van de heup
Bij Forward Kinematics (FK) roteer je elk bot in de keten apart — natuurlijk voor een arm die zwaait, omslachtig voor een voet die op de grond moet blijven terwijl het lichaam beweegt. Inverse Kinematics (IK) draait dit om: je zet een IK-constraint (hoofdstuk 92) op het onderste bot van een keten, met een apart IK Target-object aan het uiteinde, en een optionele Pole Target die bepaalt welke kant de knie of elleboog op wijst. Sleep je het IK Target, dan berekent Blender de tussenliggende hoeken van de hele keten automatisch. De meeste bewegingsrigs combineren beide: FK voor bv. de wervelkolom, IK voor armen en benen, met een schakelaar (via een Custom Property en drivers, hoofdstuk 91) om tussen beide te wisselen.
RECBLENDER 5.1 · ARMATURE-IK-FK00:00:00:001920×1080Sneltoetsen — Armature (Edit Mode) en Pose
| Toets | Actie | Operator |
|---|---|---|
| G | Move | transform.translate |
| R | Rotate | transform.rotate |
| S | Resize | transform.resize |
| LEFTMOUSE | Move | transform.translate |
| Ctrl+M | Mirror | transform.mirror |
| Alt+H | Reveal Hidden | armature.reveal |
| H | Hide Selected | armature.hide |
| Shift+H | Hide Selected | armature.hide |
| Ctrl+Alt+A | Align Bones | armature.align |
| Shift+N | Recalculate Roll | armature.calculate_roll |
| Alt+R | Clear Roll | armature.roll_clear |
| Alt+F | Switch Direction | armature.switch_direction |
| Shift+A | Add Bone | armature.bone_primitive_add |
| Ctrl+P | Make Parent | armature.parent_set |
| Alt+P | Clear Parent | armature.parent_clear |
| A | (De)select All | armature.select_all |
| Alt+A | (De)select All | armature.select_all |
| Ctrl+I | (De)select All | armature.select_all |
| A | (De)select All | armature.select_all |
| Ctrl+Shift+M | Select Mirror | armature.select_mirror |
| LEFT_BRACKET | Select Hierarchy | armature.select_hierarchy |
| Shift+LEFT_BRACKET | Select Hierarchy | armature.select_hierarchy |
| RIGHT_BRACKET | Select Hierarchy | armature.select_hierarchy |
| Shift+RIGHT_BRACKET | Select Hierarchy | armature.select_hierarchy |
| Ctrl+NUMPAD_PLUS | Select More | armature.select_more |
| Ctrl+NUMPAD_MINUS | Select Less | armature.select_less |
| Shift+G | Select Similar | armature.select_similar |
| L | Select Linked | armature.select_linked_pick |
| Shift+L | Select Linked | armature.select_linked_pick |
| Ctrl+L | Select Linked All | armature.select_linked |
| Ctrl+LEFTMOUSE | Pick Shortest Path | armature.shortest_path_pick |
| X | Delete | wm.call_menu |
| DEL | Delete | wm.call_menu |
| Shift+D | Duplicate | armature.duplicate_move |
| Ctrl+X | Dissolve Selected Bone(s) | armature.dissolve |
| Ctrl+DEL | Dissolve Selected Bone(s) | armature.dissolve |
| E | Extrude | armature.extrude_move |
| Shift+E | Extrude Forked | armature.extrude_forked |
| Ctrl+RIGHTMOUSE | Extrude to Cursor | armature.click_extrude |
| F | Fill Between Joints | armature.fill |
| Y | Split | armature.split |
| P | Separate Bones | armature.separate |
| Shift+W | Toggle Bone Options | wm.call_menu |
| Ctrl+Shift+W | Enable Bone Options | wm.call_menu |
| Alt+W | Disable Bone Options | wm.call_menu |
| Shift+M | Assign to Collection | armature.assign_to_collection |
| M | Move to Collection | armature.move_to_collection |
| Ctrl+Alt+Shift+S | Scale B-Bone | transform.bbone_resize |
| Alt+S | Transform | transform.transform |
| Ctrl+R | Transform | transform.transform |
| RIGHTMOUSE | Armature | wm.call_menu |
| APP | Armature | wm.call_menu |
| Toets | Actie | Operator |
|---|---|---|
| G | Move | transform.translate |
| R | Rotate | transform.rotate |
| S | Resize | transform.resize |
| LEFTMOUSE | Move | transform.translate |
| Ctrl+M | Mirror | transform.mirror |
| Ctrl+P | Make Parent | object.parent_set |
| Alt+H | Reveal Selected | pose.reveal |
| H | Hide Selected | pose.hide |
| Shift+H | Hide Selected | pose.hide |
| Ctrl+A | Apply | wm.call_menu |
| Alt+R | Clear Pose Rotation | pose.rot_clear |
| Alt+G | Clear Pose Location | pose.loc_clear |
| Alt+S | Clear Pose Scale | pose.scale_clear |
| Alt+F | Flip Quaternions | pose.quaternions_flip |
| Ctrl+R | Set Rotation Mode | pose.rotation_mode_set |
| Ctrl+C | Copy Pose | pose.copy |
| Ctrl+V | Paste Pose | pose.paste |
| Ctrl+Shift+V | Paste Pose | pose.paste |
| A | (De)select All | pose.select_all |
| Alt+A | (De)select All | pose.select_all |
| Ctrl+I | (De)select All | pose.select_all |
| A | (De)select All | pose.select_all |
| Shift+P | Select Parent Bone | pose.select_parent |
| LEFT_BRACKET | Select Hierarchy | pose.select_hierarchy |
| Shift+LEFT_BRACKET | Select Hierarchy | pose.select_hierarchy |
| RIGHT_BRACKET | Select Hierarchy | pose.select_hierarchy |
| Shift+RIGHT_BRACKET | Select Hierarchy | pose.select_hierarchy |
| Ctrl+L | Select Connected | pose.select_linked |
| L | Select Connected | pose.select_linked_pick |
| Shift+G | Select Grouped | pose.select_grouped |
| Ctrl+Shift+M | Select Mirror | pose.select_mirror |
| Ctrl+Shift+C | Add Constraint (with Targets) | pose.constraint_add_with_targets |
| Ctrl+Alt+C | Clear Pose Constraints | pose.constraints_clear |
| Shift+I | Add IK to Bone | pose.ik_add |
| Ctrl+Alt+I | Remove IK | pose.ik_clear |
| Shift+W | Toggle Bone Options | wm.call_menu |
| Ctrl+Shift+W | Enable Bone Options | wm.call_menu |
| Alt+W | Disable Bone Options | wm.call_menu |
| Shift+M | Assign to Collection | armature.assign_to_collection |
| M | Move to Collection | armature.move_to_collection |
| Ctrl+Alt+Shift+S | Scale B-Bone | transform.bbone_resize |
| K | Insert Keyframe Menu | anim.keyframe_insert_menu |
| Alt+I | Delete Keyframe | anim.keyframe_delete_v3d |
| Shift+K | Set Active Keying Set | anim.keying_set_active_set |
| Ctrl+E | Push Pose from Breakdown | pose.push |
| Alt+E | Relax Pose to Breakdown | pose.relax |
| Shift+E | Pose Breakdowner | pose.breakdown |
| Alt+Shift+E | Blend to Neighbor | pose.blend_to_neighbor |
| Alt+P | Propagate | wm.call_menu |
| RIGHTMOUSE | Pose | wm.call_menu |
| APP | Pose | wm.call_menu |
| Alt+Shift+W | Select Selection Set | wm.call_menu |
| I | Insert Keyframe | anim.keyframe_insert |
De klassieke rig-missers
Drie fouten die telkens terugkomen. Eén: een bot verplaatsen in Edit Mode nadat er al een pose-animatie op staat — dat verschuift de Rest Pose en vervormt alle bestaande keyframes. Twee: de armature schalen in Object Mode in plaats van de botten zelf in Edit Mode te herschalen — dat werkt technisch, maar geeft problemen met bone envelopes en custom shapes die niet meeschalen. Drie: vergeten dat een niet-toegepaste rotatie of schaal op het armature-object zelf (Object Mode, Ctrl+A) een rig soms subtiel scheeftrekt zodra IK of Stretch-constraints in het spel komen — Apply Transform vooraf is bij een rig-opbouw geen overbodige stap.
RECBLENDER 5.1 · ARMATURE-IK-FK00:00:00:001920×1080Zelf proberen: een eenvoudige arm met IK
Bouw een tweebotige arm in Edit Mode en zet er een IK-constraint op zodat je de hand kan verslepen.
- 1Open
blends/start_arm_ik.blend— een armature met twee losse botten (bovenarm, onderarm) in Rest Pose. - 2Ga naar Edit Mode en parent de onderarm aan de bovenarm met Connected (Ctrl+P).
- 3Voeg een derde, los Empty-object toe ter hoogte van de hand — dit wordt het IK Target.
- 4Ga naar Pose Mode, selecteer de onderarm en voeg een IK-constraint toe met de Empty als Target en Chain Length 2.
- 5Versleep de Empty en controleer of beide botten meebuigen alsof het een echte arm is.