Animation in Blender: Difference between revisions
| m (→Weight mapping) | No edit summary | ||
| (15 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
| {{toc-right}} | {{toc-right}} | ||
| This article covers '''rigging and animating a model in {{Blender|4|}} for export with the {{Blendersrctools|4|}}'''. Also, make sure to try [https://github.com/bonjorno7/SourceOps Source Ops] addon for exporting from blender to source. It assumes you are familiar with [[Blender Modelling Walkthrough|using Blender to create meshes]]. See [[Exporting a model/Blender]] for general exporting help. | |||
| {{todo | Update information for blender 3.4}} | |||
| {{todo | Add blender 2.8x information along 2.7x due to the fact that not everyone uses blender 2.8}} | |||
| == Creating an armature == | == Creating an armature == | ||
| Line 17: | Line 22: | ||
| == Skinning == | == Skinning == | ||
| In Blender, the link between mesh and bones is called a "skin". The Blender  | In Blender, the link between mesh and bones is called a "skin". The Blender Source Tools support three methods of creating one: | ||
| === Bone parent === | === Bone parent === | ||
| {{Warning | This does not work with SourceOps 0.7.0 (November 2022). This section was added in July 2011 for Blender 2.5 and has not been updated since. If you know which versions of which addon this works for, please add that information here.}} | |||
| If your model is made up of rigid components, you can create it as a collection of separate objects and then parent each one to a bone. | If your model is made up of rigid components, you can create it as a collection of separate objects and then parent each one to a bone. | ||
| Line 45: | Line 52: | ||
| [[File:Blender weight painting.png|thumb|Weight painting the upper arm of the Heavy.]] | [[File:Blender weight painting.png|thumb|Weight painting the upper arm of the Heavy.]] | ||
| A "weight map" defines how much influence each bone has over  | A "weight map" defines how much influence each bone has over each vertex's position (an envelope or bone parent simply generates one for you). If a vertex is weighted 50% to two bones, then the associated bones each have 50% control over it during animation. | ||
| In Blender, a Mesh's weightmap is defined by {{IconLabel|File:BlenderVertexGroup.png|Vertex Groups}} with names matching bones on an associated Armature. The weightmaps of other object types cannot be directly edited. | In Blender, a Mesh's weightmap is defined by {{IconLabel|File:BlenderVertexGroup.png|Vertex Groups}} with names matching bones on an associated Armature. The weightmaps of other object types cannot be directly edited. | ||
| '''Managing Vertex Groups:''' | '''Managing Vertex Groups:''' | ||
| Line 60: | Line 71: | ||
| # Paint! You can control the brush settings from the Tool Shelf on the left side of the 3D View. If it isn't visible, press {{key|T}}. | # Paint! You can control the brush settings from the Tool Shelf on the left side of the 3D View. If it isn't visible, press {{key|T}}. | ||
| #* You can also manually assign weights from the Vertex Groups panel while in {{IconLabel|File:BlenderEditMode.png|Edit Mode}}. | #* You can also manually assign weights from the Vertex Groups panel while in {{IconLabel|File:BlenderEditMode.png|Edit Mode}}. | ||
| '''Solution to an unconfirmed error:''' | |||
| Encountered inside {{css}} [[Counter-Strike:_Source|Counter-Strike: Source]] and its VHE. Bones refuses to affect the mesh. Maybe because of a recent update? (as of 01.2018) | |||
| To fix this: try assigning vertex groups '''and''' weight map on the same area. | |||
| {{todo|Does it happen in CS:S only?}} | |||
| == Animating == | == Animating == | ||
| Line 67: | Line 89: | ||
| In Blender, animations are stored in {{IconLabel|File:BlenderAction.png|Actions}}. You can store any number in the same file but the UI for managing them is poor.   | In Blender, animations are stored in {{IconLabel|File:BlenderAction.png|Actions}}. You can store any number in the same file but the UI for managing them is poor.   | ||
| * To manage Actions, install the [[Blender  | * To manage Actions, install the [[Blender Source Tools]] and use the new "SMD Export" panel in {{IconLabel|File:BlenderProperties.png|plus=File:BlenderArmature.png|Armature Properties}}. | ||
| * To edit an Action, enter {{IconLabel|File:BlenderPoseMode.png|Pose Mode}}, select the bones you want to animate and use {{key|I}} to create a keyframe for the first frame of your animation. Then change to another frame with the arrow keys or {{IconLabel|File:BlenderTimeline.png|Timeline}} and create more keyframes. | * To edit an Action, enter {{IconLabel|File:BlenderPoseMode.png|Pose Mode}}, select the bones you want to animate and use {{key|I}} to create a keyframe for the first frame of your animation. Then change to another frame with the arrow keys or {{IconLabel|File:BlenderTimeline.png|Timeline}} and create more keyframes. | ||
| Line 80: | Line 102: | ||
| Blender cannot currently associate more than one Action with an Armature, making batch exporting from busy .blend files tricky. | Blender cannot currently associate more than one Action with an Armature, making batch exporting from busy .blend files tricky. | ||
| The  | The Source Tools overcome this as best they can by supporting the export of a filtered list of all Actions in the .blend, as well as of the active Action. You can configure this from the SMD Export panel of {{IconLabel|File:BlenderProperties.png|plus=File:BlenderArmature.png|Armature Properties}} (which starts off as the last panel in the list but can be dragged higher). | ||
| }} | }} | ||
Latest revision as of 07:00, 23 December 2023
This article covers rigging and animating a model in  Blender for export with the
 Blender for export with the  Blender Source Tools. Also, make sure to try Source Ops addon for exporting from blender to source. It assumes you are familiar with using Blender to create meshes. See Exporting a model/Blender for general exporting help.
 Blender Source Tools. Also, make sure to try Source Ops addon for exporting from blender to source. It assumes you are familiar with using Blender to create meshes. See Exporting a model/Blender for general exporting help.
Creating an armature
"Armature" is Blender's term for a skeleton.
- If you aren't in  Object Mode, select it from the bar at the bottom of the 3D View. Object Mode, select it from the bar at the bottom of the 3D View.
- Add a new armature with ⇧ Shift+A >  Armature. Armature.
- To prevent the mesh hiding your bones, go to  + + Object Properties, find the Display panel, and enable the "X-Ray" option. Object Properties, find the Display panel, and enable the "X-Ray" option.
- Enter  Edit Mode with Tab ⇆. This is where you will edit the bones in the armature. Edit Mode with Tab ⇆. This is where you will edit the bones in the armature.- To add bones, use ⇧ Shift+A (add a new root), E (extrude from the selected bone/bones), or Ctrl+ (create a new bone where you click). (create a new bone where you click).
- To move one end of a bone while leaving the other in place, select one of its connector spheres.
- To rename a bone, go to  + + Bone Properties. To have Blender label bones in the 3D view, go to Bone Properties. To have Blender label bones in the 3D view, go to + + Armature Properties, find the Display panel and enable "Names". Armature Properties, find the Display panel and enable "Names".
 
- To add bones, use ⇧ Shift+A (add a new root), E (extrude from the selected bone/bones), or Ctrl+
Skinning
In Blender, the link between mesh and bones is called a "skin". The Blender Source Tools support three methods of creating one:
Bone parent
 Warning: This does not work with SourceOps 0.7.0 (November 2022). This section was added in July 2011 for Blender 2.5 and has not been updated since. If you know which versions of which addon this works for, please add that information here.
Warning: This does not work with SourceOps 0.7.0 (November 2022). This section was added in July 2011 for Blender 2.5 and has not been updated since. If you know which versions of which addon this works for, please add that information here.If your model is made up of rigid components, you can create it as a collection of separate objects and then parent each one to a bone.
- Enter  Pose Mode and select the bone you want. Pose Mode and select the bone you want.
- Select your mesh, then use ⇧ Shift to multi-select the armature.
- Press Ctrl+P and choose "Bone".
You can also set a bone parent via the Relations panel of  +
+ Object Properties.
 Object Properties.
Armature modifier
Modifiers affect objects without altering their underlying data, and the  Armature Modifier causes a mesh to be deformed by the pose of an armature. To add an one, select your mesh and go to
 Armature Modifier causes a mesh to be deformed by the pose of an armature. To add an one, select your mesh and go to  +
+ Object Modifiers.
 Object Modifiers.
The armature modifier can work in one or both of the following ways:
Envelopes
This is the easiest way to skin an organic mesh. Each bone automatically projects an "envelope" of influence, and by repositioning them and changing their Radius a fairly good skin can be created.
- To change a bone's Radius, enable Envelope display from  + + Armature Properties then select its connector and scale it (S) as you would an object. Armature Properties then select its connector and scale it (S) as you would an object.
Weight mapping
A "weight map" defines how much influence each bone has over each vertex's position (an envelope or bone parent simply generates one for you). If a vertex is weighted 50% to two bones, then the associated bones each have 50% control over it during animation.
In Blender, a Mesh's weightmap is defined by  Vertex Groups with names matching bones on an associated Armature. The weightmaps of other object types cannot be directly edited.
 Vertex Groups with names matching bones on an associated Armature. The weightmaps of other object types cannot be directly edited.
Managing Vertex Groups:
- Blender can generate and populate vertex groups automatically: select your Mesh, then your Armature, then hit Ctrl+P and choose the appropriate option from underneath "Armature Deform". You can do this at any time, but if an Armature Modifier already existed remember to remove the new one from  + + Object Modifiers! Object Modifiers!
- To create or destroy groups manually, enter  Edit Mode and go to the Vertex Groups panel in Edit Mode and go to the Vertex Groups panel in + + Mesh Properties. Mesh Properties.
Assigning to Vertex Groups:
- Select your object and enter  Weight Paint mode. Weight Paint mode.
- Choose a Vertex Group either with ⇧ Shift+ , which will offer a list of nearby bones, or from the Vertex Groups panel of , which will offer a list of nearby bones, or from the Vertex Groups panel of + + Mesh Properties. Mesh Properties.
- Paint! You can control the brush settings from the Tool Shelf on the left side of the 3D View. If it isn't visible, press T.
- You can also manually assign weights from the Vertex Groups panel while in  Edit Mode. Edit Mode.
 
- You can also manually assign weights from the Vertex Groups panel while in 
Solution to an unconfirmed error:
Encountered inside  Counter-Strike: Source and its VHE. Bones refuses to affect the mesh. Maybe because of a recent update? (as of 01.2018)
 Counter-Strike: Source and its VHE. Bones refuses to affect the mesh. Maybe because of a recent update? (as of 01.2018)
To fix this: try assigning vertex groups and weight map on the same area.
Animating
 Note:Only the animation of bones created in
Note:Only the animation of bones created in  Pose Mode will be exported. Whole-object animation will not make it out.
 Pose Mode will be exported. Whole-object animation will not make it out.In Blender, animations are stored in  Actions. You can store any number in the same file but the UI for managing them is poor.
 Actions. You can store any number in the same file but the UI for managing them is poor. 
- To manage Actions, install the Blender Source Tools and use the new "SMD Export" panel in  + + Armature Properties. Armature Properties.
- To edit an Action, enter  Pose Mode, select the bones you want to animate and use I to create a keyframe for the first frame of your animation. Then change to another frame with the arrow keys or Pose Mode, select the bones you want to animate and use I to create a keyframe for the first frame of your animation. Then change to another frame with the arrow keys or Timeline and create more keyframes. Timeline and create more keyframes.
For general help with the process of animating, see:
- The official Blender docs
- Noesis' Animation with the Softimage/XSI 6 MOD Tool video tutorial (which mostly discusses the universal principles of keyframe animation)
Exporting
 Note:
Note:
Blender cannot currently associate more than one Action with an Armature, making batch exporting from busy .blend files tricky.
The Source Tools overcome this as best they can by supporting the export of a filtered list of all Actions in the .blend, as well as of the active Action. You can configure this from the SMD Export panel of  +
+ Armature Properties (which starts off as the last panel in the list but can be dragged higher).
 Armature Properties (which starts off as the last panel in the list but can be dragged higher).
To export Actions from an Armature, select it and run the "SMD Export" operator from either:
- The search box (Space)
- The SMD Export panel of  + + Scene Properties or Scene Properties or + + Armature Properties Armature Properties
- The  File > Export menu File > Export menu
