scene_3ds: Changed shader nodes image #104579

Merged
Sebastian Sille merged 5 commits from NRGSille/blender-manual:main into main 2023-10-06 15:38:26 +02:00
286 changed files with 2615 additions and 1061 deletions
Showing only changes of commit d0c424306f - Show all commits

View File

@ -49,7 +49,7 @@ Align View from
Lock View to Object Lock View to Object
Select an object to align view, from the list. Select an object to align view, from the list.
View to Select View to Selected
Align view on selected object. Align view on selected object.
Cursor Cursor

View File

@ -32,7 +32,7 @@ A bone can belong to more than one selection set.
.. seealso:: .. seealso::
:doc:`/animation/armatures/properties/bone_groups` for a way to visually distinguish groups of bones. :doc:`/animation/armatures/properties/bone_collections` for a way to organise groups of bones.
.. reference:: .. reference::

View File

@ -6,6 +6,7 @@ VDM Brush Baker
This is a small add-on that makes it easy to create vector displacement map (aka VDM) brushes in Blender. This is a small add-on that makes it easy to create vector displacement map (aka VDM) brushes in Blender.
Sculpting setups and the brushes can be created with one click. Sculpting setups and the brushes can be created with one click.
Activation Activation
========== ==========
@ -13,22 +14,25 @@ Activation
- Switch the category to "Baking" - Switch the category to "Baking"
- Enable the "VDM Brush Baker" addon. - Enable the "VDM Brush Baker" addon.
Interface Interface
========= =========
Located in the :menuselection:`3D Viewport --> Sidebar --> Tools`. Located in the :menuselection:`3D Viewport --> Sidebar --> Tools`.
Usage Usage
===== =====
Use the "Create Sculpting Plane" button for an optimal startign setup for sculpting your own VDM brush. Use the "Create Sculpting Plane" button for an optimal starting setup for sculpting your own VDM brush.
Use the "Render and Create VDM Brush" button to covnert bake the plane into a new brush. Use the "Render and Create VDM Brush" button to convert bake the plane into a new brush.
The brush will be added with all relevant options and a vector displacement map The brush will be added with all relevant options and a vector displacement map
is saved near the blender file as an Open EXR file (or a 'tmp' folder if the blender file wasn't saved). is saved near the blender file as an Open EXR file (or a 'tmp' folder if the blender file wasn't saved).
New brushes can be found as Draw brushes in sculpt mode. New brushes can be found as Draw brushes in sculpt mode.
The add-on won't create any preview images for these brushes. The add-on won't create any preview images for these brushes.
Tips Tips
---- ----

View File

@ -32,7 +32,7 @@ Transform
Scale Scale
Factor to increase the physical size of the BVH. Factor to increase the physical size of the BVH.
Rotation Rotation
.. todo:: |TODO| Rotation order of the BVH.
Forward / Up Forward / Up
Since many applications use a different axis for pointing upwards, these are axis conversion for these settings, Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
Forward and up axes -- By mapping these to different axes you can convert rotations Forward and up axes -- By mapping these to different axes you can convert rotations
@ -67,7 +67,7 @@ Transform
Scale Scale
Factor to increase the physical size of the BVH. Factor to increase the physical size of the BVH.
Rotation Rotation
TODO. Rotation order of the BVH.
Root Translation Only Root Translation Only
Only write the translation animation channels for the root bone. Only write the translation animation channels for the root bone.

View File

@ -8,4 +8,54 @@ Camera Animation
:Category: Import-Export :Category: Import-Export
:Menu: :menuselection:`File --> Export --> Cameras & Markers (.py)` :Menu: :menuselection:`File --> Export --> Cameras & Markers (.py)`
Todo. Exports a .py file containing information about the animation of cameras in the scene.
This file can be used to 'import' these cameras and their animation to another .blend file.
Exported Data
=============
This is the type of data associated with the camera that get included in the .py file.
Static Data
-----------
- Shift X
- Shift Y
- Depth of Field Focus Distance
- Clip Start
- Clip End
- Viewport Display Size
- Render Visibility
Animated Data
-------------
- Focal Length
- Location
- Rotation
- Scale
Properties
==========
Export
------
Transform
^^^^^^^^^
Start / End
Sets the range of animation frames to export to the .py file.
Only Selected
Toggle between exporting only selected cameras or all cameras in the scene.
Import
------
To import the .py file, go to Blender's Text Editor.
:menuselection:`Text --> Open --> YourExportedFile (.py)`

View File

@ -52,7 +52,7 @@ Compositing Nodes
----------------- -----------------
Setup Corner Pin Setup Corner Pin
Add a compositing setup of the Image Texture, Scale, and :doc:`Corner Pin </compositing/types/distort/corner_pin>` Add a compositing setup of the Image Texture, Scale, and :doc:`Corner Pin </compositing/types/transform/corner_pin>`
nodes to inject a warped view of the image into the compositor output. The add-on adds drivers to nodes to inject a warped view of the image into the compositor output. The add-on adds drivers to
the corner values of the Corner Pin node so that transforms of the plane and camera drive them. the corner values of the Corner Pin node so that transforms of the plane and camera drive them.
Make sure to have an active camera in the scene before the import. Make sure to have an active camera in the scene before the import.

View File

@ -12,7 +12,8 @@ Especially for exporting from Blender materials, the node system must follow som
.. note:: .. note::
Currently, only the :doc:`FBX </addons/import_export/scene_fbx>` IO add-on uses this method. Currently, only the :doc:`FBX </addons/import_export/scene_fbx>`
and the :doc:`3DS </addons/import_export/scene_3ds>` IO add-on uses this method.
.. tip:: .. tip::
@ -51,6 +52,8 @@ Principled BSDF
- Metallic - Metallic
- IOR - IOR
- Transmission - Transmission
- Emission
- Emission Strength
- Alpha - Alpha
Normal Map Normal Map

View File

@ -7,8 +7,8 @@ Autodesk 3DS
:Category: Import-Export :Category: Import-Export
:Menu: :menuselection:`File --> Import/Export --> 3D Studio (.3ds)` :Menu: :menuselection:`File --> Import/Export --> 3D Studio (.3ds)`
:Version: 2.4.6 :Version: 2.4.8
:Blender: 3.6 :Blender: 4.0
:Authors: Bob Holcomb, Campbell Barton, Sebastian Schrand :Authors: Bob Holcomb, Campbell Barton, Sebastian Schrand
:Maintainer: Sebastian Sille (NRGSille) :Maintainer: Sebastian Sille (NRGSille)
:Support Level: Community :Support Level: Community
@ -56,12 +56,18 @@ Constrain Size
To disable set the *Size Constraint* to zero. To disable set the *Size Constraint* to zero.
Scene Units Scene Units
Converts the scale of all objects to the scene unit length settings. Blender uses meter scale, Converts the scale of all objects to the scene unit length settings. Blender uses meter scale,
but many 3ds files have millimeter unit scale, especially the ones exported from CAD applications. but many 3ds files have millimeter unit scale, especially the ones exported from CAD applications.
If millimeters are expected to import, set the scene unit length settings to *Millimeters*. If millimeters are expected to import, set the scene unit length settings to *Millimeters*.
The meshes can also be converted to imperial unit measures if this is enabled in the scene units.
Pivot Origin
Moves all geometry to the pivot origin. Enable this option for transformed pivot centers to move
the geometry back to its origin.
Apply Transform Apply Transform
Applies object transformations after importing. If unchecked, all objects will stay at its origins. Applies object transformations after importing. If unchecked, all transformations will be cleared
and the objects will stay at its origins.
World Space World Space
Use world matrix instead of local matrix to transform the objects. Use world matrix instead of local matrix to transform the objects.
@ -106,7 +112,7 @@ Transform
^^^^^^^^^ ^^^^^^^^^
Scale Factor Scale Factor
The global scale factor for export. There are no unit scale definitions in a 3ds file, The global scale factor for export. There are no unit scale definitions in a 3ds file,
only the float values are stored. Blender will use meters for export but many applications, only the float values are stored. Blender will use meters for export but many applications,
like 3ds MAX\ :sup:`®`, are using millimeters. This option defines the scale factor to use for export. like 3ds MAX\ :sup:`®`, are using millimeters. This option defines the scale factor to use for export.
If millimeters are desired, the scale factor has to be setted to 1000. If millimeters are desired, the scale factor has to be setted to 1000.
@ -114,6 +120,7 @@ Scale Factor
Scene Units Scene Units
Takes the scene unit length settings into account to export the real size of the objects. Takes the scene unit length settings into account to export the real size of the objects.
If the settings are millimeters, the exported scene will be scaled up since Blender uses meters for unit scale. If the settings are millimeters, the exported scene will be scaled up since Blender uses meters for unit scale.
Also imperial unit measures are supported, the exporter will convert the mesh to the selected scene unit.
Forward / Up Axis Forward / Up Axis
Since many applications use a different axis for pointing upwards, Since many applications use a different axis for pointing upwards,
@ -156,7 +163,7 @@ they must be color inverted afterwards to match with Blender definition.
The material mappings are defined as following: The material mappings are defined as following:
- 3ds Diffuse Map <-> blender Base Color Texture - 3ds Diffuse Map <-> blender Base Color Texture
- 3ds Specular Map <-> blender Specular Texture - 3ds Specular Map <-> blender Specular Tint Texture
- 3ds Shininess Map <-> blender Roughness Texture - 3ds Shininess Map <-> blender Roughness Texture
- 3ds Reflection Map <-> blender Metallic Texture - 3ds Reflection Map <-> blender Metallic Texture
- 3ds Opacity Map <-> blender Alpha Texture - 3ds Opacity Map <-> blender Alpha Texture
@ -189,16 +196,17 @@ the exporter creates a smooth chunk if the mesh contains any smooth faces.
Ambient Ambient
======= =======
If ambient chunks are found by the importer, a new world with the ambient color will be created. If ambient chunks are found by the importer, a new world with the ambient color will be created. Ambient keyframes
Ambient keyframes will be imported to the timeline and background color to the world background node. will be imported to the timeline and background color to the world background node. If a background image is found, it
If a background image is found, it will be connected to the background node and if fog chunks are found, will be connected to the background node and if fog chunks are found, volume shaders with the fog settings will be
volume shaders with the fog settings will be connected to the world output. If ambient is animated, an ambient node connected to the world output. If ambient is animated, an ambient node will be created and connected to a mixshader.
will be created and connected to a mixshader. Gradient chunks will be imported to a color ramp node. Gradient chunks will be imported to a color ramp node. The exporter can export these settings and will also accept an
The exporter can export these settings and will also accept an add-shader instead of a mixshader, images are taken from the background input. add-shader instead of a mixshader, images are taken from the background input. The exporter creates an ambient chunk
The exporter creates an ambient chunk with the color of the active world and creates background chunks with color or image if with the color of the active world and creates background chunks with color or image if the nodes are connected to
the nodes are connected to world output or mix and add shader. Ambient color animations can primary be exported from the world color. world output or mix and add shader. Ambient color animations can primary be exported from the world color. If nodes
If nodes are used, the exporter checks the RGB input node and the emission shader for color animations and writes an ambient track node chunk. are used, the exporter checks the RGB input node and the emission shader for color animations and writes an ambient
If a color ramp node is connected to background or colormix node and includes at least three colors, the exporter will create a gradient chunk. track node chunk. If a color ramp node is connected to background or colormix node and includes at least three colors,
the exporter will create a gradient chunk.
.. figure:: /images/addons_io_3ds_world-nodes.jpg .. figure:: /images/addons_io_3ds_world-nodes.jpg
@ -208,9 +216,13 @@ If a color ramp node is connected to background or colormix node and includes at
Lights Lights
====== ======
Lights in 3DS Studio can be a point source or a spotlight, they can be animated, Lights in 3DS Studio can be a point source or a spotlight,
using color and energy data and a target for the spotlight. The lights can be imported and exported, they use color and energy data and a target for the spotlight.
target data is calculated to Z and X axis angle for pan and tilt, Y is used for the roll angle. The color and position of a light can be animated, the spotlight additionally has a target, beam angle and hotspot,
wich can be animated. The lights and animation can be imported and exported, the spotlight can contain a projection
bitmap, if an image is connected to a emission or colormixer, it will be exported. The x/y scale of a spotlight will
be exported in an aspect ratio chunk, the importer can calculate it back to x/y scale. The target data is calculated
to Z and X axis angle for pan and tilt, Y is used for the roll angle.
Cameras Cameras

View File

@ -42,6 +42,16 @@ compared to Blender, as such vertices are separated for export.
Likewise, curves and other non-mesh data are not preserved, Likewise, curves and other non-mesh data are not preserved,
and must be converted to meshes prior to export. and must be converted to meshes prior to export.
GPU Instances
-------------
When the option is enable in Exporter, instances are exported using the ``EXT_mesh_gpu_instancing`` extension.
There are some limitations, at export:
- Instances must be meshes, and don't have any children themselves
- Instances must all be children of the same object.
- This extension doesn't manage material variation. That means that the generated file may include all instances with same materials.
- Instances detected are objects sharing the same mesh data.
At import, instances are created by creating objects sharing the same mesh data.
Materials Materials
========= =========
@ -257,9 +267,9 @@ All Image Texture nodes used for clearcoat shading should have their *Color Spac
Sheen Sheen
^^^^^ ^^^^^
When the *Velvet BSDF* node is used in addition to Principled BSDF node, the ``KHR_materials_sheen`` glTF When the *Sheen BSDF* node is used in addition to Principled BSDF node, the ``KHR_materials_sheen`` glTF
extension will be included in the export. The Sheen Color will be exported from Color socket of Velvet node. extension will be included in the export. The Sheen Color will be exported from Color socket of Sheen node.
Sheen Roughness will be exported from Sigma socket. Sheen Roughness will be exported from Roughness socket.
If a Sheen Roughness Texture is used, glTF requires the values be written to the alpha (``A``) channel. If a Sheen Roughness Texture is used, glTF requires the values be written to the alpha (``A``) channel.
@ -267,7 +277,7 @@ If a Sheen Roughness Texture is used, glTF requires the values be written to the
.. tip:: .. tip::
Velvet BSDF node is only available on Cycles render engine. Sheen BSDF node is only available on Cycles render engine.
You may have to temporary switch to Cycles to add this node, and get back to Eevee. You may have to temporary switch to Cycles to add this node, and get back to Eevee.
.. note:: .. note::
@ -276,7 +286,7 @@ If a Sheen Roughness Texture is used, glTF requires the values be written to the
the resulting shader is not fully energy conservative. the resulting shader is not fully energy conservative.
You may find some difference between Blender render, and glTF render. You may find some difference between Blender render, and glTF render.
Sheen models are not fully compatible between Blender and glTF. Sheen models are not fully compatible between Blender and glTF.
This trick about adding Velvet Shader is the most accurate This trick about adding Sheen Shader is the most accurate
approximation (better that using Sheen Principled sockets). approximation (better that using Sheen Principled sockets).
@ -569,6 +579,7 @@ are supported directly by this add-on:
- ``KHR_lights_punctual`` - ``KHR_lights_punctual``
- ``KHR_texture_transform`` - ``KHR_texture_transform``
- ``KHR_mesh_quantization`` - ``KHR_mesh_quantization``
- ``EXT_mesh_gpu_instancing``
.. rubric:: Export .. rubric:: Export
@ -585,6 +596,7 @@ are supported directly by this add-on:
- ``KHR_materials_ior`` - ``KHR_materials_ior``
- ``KHR_materials_variants`` - ``KHR_materials_variants``
- ``KHR_texture_transform`` - ``KHR_texture_transform``
- ``EXT_mesh_gpu_instancing``
Third-party glTF Extensions Third-party glTF Extensions
@ -795,11 +807,16 @@ Bone Direction
Changes the heuristic the importer uses to decide where to place bone tips. Changes the heuristic the importer uses to decide where to place bone tips.
Note that the Fortune setting may cause inaccuracies in models that use non-uniform scaling. Note that the Fortune setting may cause inaccuracies in models that use non-uniform scaling.
Otherwise this is purely aesthetic. Otherwise this is purely aesthetic.
The default value will not change axis, and is best for re-exporting from Blender.
This default option will change display mode (adding shape and changing relationship line) to have a better view,
even if original bones axis are not the most accurate (estheticaly speaking)
Lighting Mode Lighting Mode
Optional backwards compatibility for non-standard render engines. Applies to lights. Optional backwards compatibility for non-standard render engines. Applies to lights.
Standard: Physically-based glTF lighting units (cd, lx, nt). Standard: Physically-based glTF lighting units (cd, lx, nt).
Unitless: Non-physical, unitless lighting. Useful when exposure controls are not available Unitless: Non-physical, unitless lighting. Useful when exposure controls are not available
Raw (Deprecated): Blender lighting strengths with no conversion Raw (Deprecated): Blender lighting strengths with no conversion
Import Webp textures
If a texture exists in webp format, loads the webp texture instead of the fallback png/jpg one.
Export Export
@ -850,6 +867,11 @@ Transform
Y Up Y Up
Export using glTF convention, +Y up. Export using glTF convention, +Y up.
Data - Scene Graph
^^^^^^^^^^^^^^^^^^
GPU Instances
Export using ``EXT_mesh_gpu_instancing`` extensions.
Data - Mesh Data - Mesh
^^^^^^^^^^^ ^^^^^^^^^^^
@ -881,9 +903,15 @@ Materials
Images Images
Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for
web applications due to the smaller file size. web applications due to the smaller file size.
If webp is chosen, all textures will be saved as Webp, without any png/jpg fallback.
If None is chosen, materials are exported without textures. If None is chosen, materials are exported without textures.
JPEG Quality Image Quality
When exporting jpeg files, the quality of the exported file. When exporting jpeg or Webp files, the quality of the exported file.
Create Webp
Creates webp textures for every textures, in addition to the existing texture.
For already webp textures, nothing happen.
Webp fallback
For all webp textures, create a png fallback texture.
Export Original PBR Specular Export Original PBR Specular
When On, specular data are exported from glTF Material Output node, When On, specular data are exported from glTF Material Output node,
Instead of using sockets from Principled BSDF Node. Instead of using sockets from Principled BSDF Node.
@ -898,6 +926,14 @@ Shape Key Normals
Shape Key Tangents Shape Key Tangents
Export vertex tangents with shape keys (morph targets). Export vertex tangents with shape keys (morph targets).
Data - Shape Keys - Optimize
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Use Sparse Accessor if better
Sparse Accessor will be used if it save space (if the exported file is smaller)
Omitting Sparse Accessor if data is empty
If data is empty, omit to export SParce Accessor. Not all viewer managed it correctly, so this option is Off by default
Data - Armature Data - Armature
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
@ -914,8 +950,11 @@ Data - Skinning
Export skinning data Export skinning data
Bone influences
How many joint verex influences will be exported. Models may appear incorrectly in many viewers with value different to 4 or 8.
Include All Bone Influences Include All Bone Influences
Allow more than 4 joint vertex influences. Models may appear incorrectly in many viewers. Export all joint vertex influences. Models may appear incorrectly in many viewers.
Data - Lighting Data - Lighting
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^

View File

@ -31,12 +31,6 @@ Render Settings
note its Python name (e.g. ``resolution_x`` for the X resolution, etc.), note its Python name (e.g. ``resolution_x`` for the X resolution, etc.),
and enable the corresponding item in this list. and enable the corresponding item in this list.
.. important::
This will only work if you have a Blender patched with ``ui_template_list diff``,
see `UI Template List Enhancement
<https://archive.blender.org/wiki/index.php/User:Mont29/UI_Template_List_Enhancement/>`__.
Presets Presets
The column of buttons to the right of the list are a set of presets The column of buttons to the right of the list are a set of presets
which set or clear one or more settings at once. which set or clear one or more settings at once.
@ -50,19 +44,11 @@ Presets
Copy the render resolution and aspect ratio settings. Copy the render resolution and aspect ratio settings.
Beware of side effects if you modify the aspect of your render (e.g. switching from: 4/3 to 16/9...). Beware of side effects if you modify the aspect of your render (e.g. switching from: 4/3 to 16/9...).
Set OSA/Clear OSA
Copy the global :abbr:`OSA (Oversampling)` usage, and OSA level settings.
Together with *Render Scale*, this is most useful for preview renders.
Set Threads/Clear Threads Set Threads/Clear Threads
Copy the settings (auto/fixed, and number) of threads used during rendering. Copy the settings (auto/fixed, and number) of threads used during rendering.
Might be useful when e.g. you render your blend-files on various computers Might be useful when e.g. you render your blend-files on various computers
(even though the *Auto* option should work good in general...). (even though the *Auto* option should work good in general...).
Set Fields/Clear Fields
Copy all fields settings.
Allows you to easily switch from progressive to interlaced...
Set Stamp/Clear Stamp Set Stamp/Clear Stamp
Copy whether to render stamps or not (i.e. the global stamp switch setting). Copy whether to render stamps or not (i.e. the global stamp switch setting).

View File

@ -64,14 +64,14 @@ Rigify Human Alignment Tips
they are almost useless if you plan to make facial animation through shape keys. they are almost useless if you plan to make facial animation through shape keys.
Consider removing face features from your character if they aren't really needed. Consider removing face features from your character if they aren't really needed.
If you don't need the face all the face bones can be deleted. If you don't need the face all the face bones can be deleted.
All the face bones are on the first armature layer by default. All the face bones are in the *Face* armature bone collection by default.
You can select them by displaying only bone layer 1, selecting all of its content and You can select them by displaying only that collection, selecting all of its content and
then deleting the bones in Edit Mode to correctly remove the face. then deleting the bones in Edit Mode to correctly remove the face.
If you want to scale all the face bones at once, consider scaling the face master bone If you want to scale all the face bones at once, consider scaling the face master bone
in Pose Mode (see Pose Mode matching method). in Pose Mode (see Pose Mode matching method).
The face master bone is placed in the same position of the head bone. The face master bone is placed in the same position of the head bone.
To select it easily, hide all other bone layers. To select it easily, hide all other bone collections.
For more tips, see the :doc:`Positioning Guide </addons/rigging/rigify/bone_positioning>`. For more tips, see the :doc:`Positioning Guide </addons/rigging/rigify/bone_positioning>`.
@ -147,13 +147,13 @@ Binding the Geometry to the Rig
To bind the geometry to the rig you can use your preferred tools. Just few things you have to know: To bind the geometry to the rig you can use your preferred tools. Just few things you have to know:
- All the deforming bones are on the armature layer 30. - All the deforming bones are in the *DEF* bone collection.
- Eyes and Teeth bones of the legacy face are not deforming. You are supposed to bind the eyes and - Eyes and Teeth bones of the legacy face are not deforming. You are supposed to bind the eyes and
teeth geometry through Child Of constraints. teeth geometry through Child Of constraints.
- Usually armature deform with automatic weights do a really good job out of the box - Usually armature deform with automatic weights do a really good job out of the box
if you correctly place your bones (and there is enough topology to work with!). if you correctly place your bones (and there is enough topology to work with!).
For more detailed information on armature layers, Armature modifier and weight painting refer to the Blender manual. For more detailed information on bone collections, Armature modifier and weight painting refer to the Blender manual.
.. _bpy.types.Armature.rigify: .. _bpy.types.Armature.rigify:
@ -172,27 +172,36 @@ By using options in the Advanced sub-panel, it is possible to:
- Choose whether to use linked duplicates for left and right side widgets. - Choose whether to use linked duplicates for left and right side widgets.
- Execute a script data-block after generation. - Execute a script data-block after generation.
Advanced Options Sub-Panel Advanced Options Sub-Panel
-------------------------- --------------------------
.. figure:: /images/addons_rigging_rigify_basics_advanced-panel.png
:align: right
:width: 300px
Advanced rig generation options are by default hidden in a sub-panel. Click on the *Advanced* line to open it. Advanced rig generation options are by default hidden in a sub-panel. Click on the *Advanced* line to open it.
Some of the options will be automatically set by Rigify if they have no value when a rig is generated, Some of the options will be automatically set by Rigify if they have no value when a rig is generated,
while others are fully controlled by the user. while others are fully controlled by the user.
Target Rig :guilabel:`auto` Rig Name
This option specifies the generated rig to overwrite when re-generating from this metarig. When a brand new rig is generated, as opposed to overwriting an existing one, the value of this option
is used to name it.
If the option is not set, Rigify will generate a new rig object and store it in this option. If this field is empty, the new object will be named based on the name of the metarig according
The new object will be named based on the name of the metarig according to the following rules: to the following rules:
* If the name contains ``META``, it is replaced with ``RIG``. * If the name contains ``META``, it is replaced with ``RIG``.
* If the name contains ``metarig``, it is replaced with ``rig``. * If the name contains ``metarig``, it is replaced with ``rig``.
* Otherwise, ``RIG-`` is prepended to the name. * Otherwise, ``RIG-`` is prepended to the name.
When overwriting an existing rig object specified by the option, its name is not changed, When overwriting an existing rig object specified by the *Target Rig* option, its name is not changed,
allowing it to be freely renamed if the default naming scheme doesn't fit. allowing it to be freely renamed without having to keep the value of this option in sync.
Target Rig :guilabel:`auto`
This option specifies the generated rig to overwrite when re-generating from this metarig.
If the option is not set, Rigify will generate a new rig object and store it in this option.
.. note:: .. note::
@ -204,13 +213,13 @@ Rig UI Script :guilabel:`auto`
works in the same manner as *Target Rig*. works in the same manner as *Target Rig*.
The script controls the UI in the 3D Viewport that allows conveniently switching visible The script controls the UI in the 3D Viewport that allows conveniently switching visible
bone layers, changing custom properties, converting between IK and FK and so on. bone collections, changing custom properties, converting between IK and FK and so on.
Widgets Collection :guilabel:`auto` Widgets Collection :guilabel:`auto`
This reference specifies the collection containing generated widgets, and This reference specifies the collection containing generated widgets, and
works in the same manner as *Target Rig*. works in the same manner as *Target Rig*.
Force Widget Update Overwrite Widget Meshes
If enabled, Rigify will generate new widgets every time the rig is re-generated. By default, If enabled, Rigify will generate new widgets every time the rig is re-generated. By default,
it tries to reuse the already generated widget objects that exist in the widget collection, it tries to reuse the already generated widget objects that exist in the widget collection,
allowing them to be manually edited to fit the character better. allowing them to be manually edited to fit the character better.

View File

@ -5,7 +5,8 @@ Creating Meta-rigs
#. Add a single bone from the :menuselection:`Add --> Armature` menu. #. Add a single bone from the :menuselection:`Add --> Armature` menu.
#. Go in armature Edit Mode and build the meta rig by samples or Rigify-types. #. Go in armature Edit Mode and build the meta rig by samples or Rigify-types.
#. Define Rigify layers, bone grouping and selection sets. #. Define the :ref:`Rigify bone collection UI <bpy.types.BoneCollection.rigify_ui_row>`,
:ref:`color sets <bpy.types.Armature.rigify_colors>`, and selection sets.
#. In the armature properties click on the *Generate* button to generate the rig. #. In the armature properties click on the *Generate* button to generate the rig.
@ -59,7 +60,7 @@ Just add a single bone from the *Add* menu.
.. tip:: .. tip::
At this stage naming the newly added armature "meta-rig" is a good idea. At this stage naming the newly added armature ``metarig`` is a good idea.
You can do it at any time (or not at all) but it's suggested to do it before going on You can do it at any time (or not at all) but it's suggested to do it before going on
so it will always be clear on which armature you have to work when editing the meta-rig structure. so it will always be clear on which armature you have to work when editing the meta-rig structure.
@ -77,7 +78,7 @@ Building a meta-rig from scratch in Edit Mode can be done in two ways:
Adding Samples (Basic) Adding Samples (Basic)
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
Adding samples in Edit Mode is a good way to start building a meta-rig. Adding pre-defined samples in Edit Mode is a good way to start building a meta-rig.
This way you can become familiar with the available building blocks and how they are meant to be used. This way you can become familiar with the available building blocks and how they are meant to be used.
To add a rig sample: To add a rig sample:
@ -90,11 +91,38 @@ To add a rig sample:
For the list of available samples, see the :doc:`Rig Types </addons/rigging/rigify/rig_types/index>` page. For the list of available samples, see the :doc:`Rig Types </addons/rigging/rigify/rig_types/index>` page.
.. _bpy.types.PoseBone.rigify_type:
.. _bpy.types.RigifyParameters:
Using Rig Types (Advanced) Using Rig Types (Advanced)
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
#. Create your bone chains in Edit Mode. .. figure:: /images/addons_rigging_rigify_metarigs_rigify-type-panel.png
#. Assign the correct rig type to the first bone of each chain in Pose Mode. :align: right
:width: 300px
For full control, you can use the Rigify Type panel of bone properties in Pose Mode to assign
any Rigify sub-rig type to any bone, as well as change its options.
For the list of available sub-rig types and their options, see the :doc:`Rig Types </addons/rigging/rigify/rig_types/index>` page.
At the top of the panel you can find a field specifying the rig type for the active bone. The drop-down list
can be optionally filtered by the :doc:`Feature Set </addons/rigging/rigify/feature_sets>` it belongs to.
Below that you can change options relevant to the selected rig type, if it has any.
Bone Collection References
""""""""""""""""""""""""""
Some rig types that generate many control bones have options that reference
:ref:`Bone Collections <bpy.types.BoneCollection.rigify_ui_row>`. These reference lists have a standard UI with
the following features:
* A checkbox controlling whether the reference should be used.
* A button to copy the reference list contents from the active to all selected bones.
* A plus button to add a new reference to the list.
* A list of references, each entry with a field to specify the target collection,
and a button to remove the entry from the list.
.. note:: .. note::
@ -113,7 +141,7 @@ Using Rig Types (Advanced)
Custom Root Bone Custom Root Bone
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
If the meta-rig contains a bone called "root", it is used as the root control bone instead of creating a new one. If the meta-rig contains a bone called ``root``, it is used as the root control bone instead of creating a new one.
This allows changing the rest position of the root bone, assigning a custom widget, This allows changing the rest position of the root bone, assigning a custom widget,
or adding custom properties to the bone. or adding custom properties to the bone.
@ -121,71 +149,130 @@ The custom root bone must have no parent, and use the :ref:`basic.raw_copy <rigi
type or none. type or none.
Layers, Bone Groups & Selection Sets .. _bpy.types.Armature.rigify_colors:
====================================
:ref:`Armature Layers <bpy.types.Armature.layers>` are usually used to isolate bones. Color Sets
Rigify can take advantage of armature layer to generate extra features and the user interface for the final rig. ==========
Rigify layers are displayed in a vertical layout inside their own separate panel named Rigify Layer Names.
- The first column shows the layer number. .. figure:: /images/addons_rigging_rigify_metarigs_color-sets-panel.png
- The second column is a display toggle. :align: right
:width: 300px
This toggle controls the armature layer visibility. The Color Sets panel is used to define the bone color scheme for the final rig. The colors from the list
It has the same effect of enabling/disabling the layer visibility from the top armature layers menu. can be associated with bone collections from the relevant panel.
It is just redrawn here for a simplicity.
- The third column sets a specific layer name to be used to build the rig UI of the final rig. The top two rows of the Color Sets panel are used to define the general behavior of the bone colors.
If set, a button with the specified name will be created in the ``rig_ui_template`` to control the visibility of
this specific armature layer. If layer contains at least one bone but its name field is empty,
a button with no name will be created in the rig UI.
- The fourth column defines in which UI row the layer button will be created.
This numbers define the layer ordering in the UI and will ignore the effective layer number.
If two layer have the same row number their UI buttons will be created in the same row.
- The fifth column is a toggle for the selection set.
If checked a selection set with that name will be created and associated to the final rig.
- The sixth column defines the Rigify Bone Grouping.
If Rigify Bone Groups are set, the user can make the association between
the bones on the layer and the specified bone group from the list.
The controls on the final rig will inherit the bone grouping through this value.
- The seventh column displays -- if set -- the associated bone group name.
In order to use the Bone Groups in the *Rigify Layer Names* fields,
*Rigify Bone Groups* must be set through the specific panel.
Usually this panel is displayed just above Rigify Layer Names panel.
Rigify Bone Groups are used to define bone colors on the final rig.
The top two rows of the Rigify Bone Groups panel are used to define the bone colors general behavior.
Usually color themes use a gradient of colors to define the different bone states: default, selected and active. Usually color themes use a gradient of colors to define the different bone states: default, selected and active.
When multiple color themes are used in the same rig, identifying which bone is selected or When multiple color themes are used in the same rig, identifying which bone is selected or
active can be tricky since each color will have its corresponding state. active can be tricky since each color will have its corresponding state.
To override this behavior Rigify Bone Groups unifies the active and selected states with the same color. To override this behavior Rigify unifies the active and selected states using the same color.
This is defined by two values: This is defined by two values:
Unified Selected/Active Colors Unified Selected/Active Colors
When this option is active adding a bone group in the list will always keep the colors consistent. When this option is active adding a bone group in the list will always keep the colors consistent.
When a color scheme is added as from a theme, the color scheme is loaded as is. When a color scheme is added from a theme, the color scheme is loaded as is.
Click on the *Apply* button to force the system to unify selected and active colors. Click on the *Apply* button to force the system to unify selected and active colors.
Selected/Active Colors Selected/Active Colors
This two color fields define respectively *Selected* and *Active* colors. This two color fields define respectively the *Selected* and *Active* colors.
By default Rigify reads this colors from the theme defined by the user in the Blender preferences. By default Rigify reads these colors from the theme defined by the user in the Blender preferences.
This way the *Selected*/*Active* colors can always have a predictable and consistent behavior in the UI. This way the *Selected*/*Active* colors can always have a predictable and consistent behavior in the UI.
The colors can be customized by clicking on the relative color field. The colors can be customized by clicking on the relevant color field.
To reset them to the Blender current theme value just click on the button with the update icon. To reset them to the Blender current theme value just click on the button with the update icon.
Bone Groups can be added and deleted as done in the general Bone Group panel Color Sets can be added and deleted by clicking on the ``+`` or ``-`` buttons.
by clicking on the ``+`` or ``-`` buttons. All color sets can be deleted at once by clicking on the Specials menu.
All Bone Groups can be deleted at once by clicking on the Specials menu.
To add the predefined Rigify Default Bone Groups list click on *Add Standard* button. To add the colors from the predefined Rigify default color scheme (as shown in the image) to the list click
the *Add Standard* button.
To add a specific theme with its own color scheme, select it from the list and click on the *Add From Theme* button. To add a specific theme with its own color scheme, select it from the list and click on the *Add From Theme* button.
.. _bpy.types.BoneCollection.rigify_ui_row:
Bone Collections UI
===================
.. figure:: /images/addons_rigging_rigify_metarigs_bone-collections-panel.png
:align: right
:width: 300px
:doc:`Bone Collections </animation/armatures/bones/bone_collections>` are used to group related bones together
so that they can be hidden or revealed together.
Rigify can take advantage of collections to generate extra features and the user interface for the final rig.
A panel named :ref:`Rig Layers <rigify.rig_ui_template.RigLayers>` is generated with buttons for hiding the
collections, arranged in an intuitive layout.
The Bone Collections UI panel allows configuring the layout of that generated panel, as well as specifying some
other settings for bone collections, such as the color set to use.
The top of the panel is occupied by a list that duplicates the main bone collection list, but displays additional
properties, such as the color set, whether the collection has a button, or whether it generates a selection set.
Validate Collection References
Some sub-rig types have :ref:`references <bpy.types.RigifyParameters>` to bone collections in their properties.
Rigify uses a referencing scheme that is robust to collection renames, but deleting collections or joining armatures
can still lead to broken references.
This button runs a scan that validates and normalizes all collection references, reporting any errors, and
reducing the chance of breakage being caused by subsequent user actions.
This scan is also performed automatically every time the rig is generated.
.. warning::
To avoid breakage this operation should be used both immediately before and after joining two metarig armatures.
More specifically, it must be always done between the actions of renaming any collections and joining.
Color Set
Specifies the :ref:`color set <bpy.types.Armature.rigify_colors>` to use for bones in this collection. If a bone
belongs to multiple collections, in general the collection located earlier in the list has priority.
Add Selection Set
Specifies whether a selection set should be generated for this collection.
UI Row
If nonzero, specifies which row of the :ref:`Rig Layers <rigify.rig_ui_template.RigLayers>` panel should contain the
button controlling the visibility of this collection. When zero, no button is generated, and the collection is hidden.
UI Title
This field can be used to override the title used on the UI button to be distinct from the true collection name.
Unlike collection names, titles are not required to be unique, so this can be used to reduce clutter by relying
on contextual cues within the panel.
UI Layout sub-panel
-------------------
.. figure:: /images/addons_rigging_rigify_metarigs_bone-collections-layout-panel.png
:align: right
:width: 300px
The UI Layout sub-panel provides a WYSIWYG editor for the layout of the generated UI panel
(as defined by the UI Row and UI Title settings above).
Each row contains three buttons at the end:
Arrow
Moves the active collection button to this row.
Plus
Inserts a new row before the current one.
Minus
Removes the current row and shifts all buttons up.
To the left of the editing control buttons, rows display buttons corresponding to the collections, same as the final
UI, except that rather than hiding or unhiding, clicking these buttons selects the collection.
For the active collection the selection button is replaced with an input field for editing the UI Title, and an **X**
button to unassign the collection from the UI.
For any collections not assigned to the UI, their select buttons are displayed in a separate section at the bottom
of the sub-panel.
The ``Root`` collection will be added and/or assigned a UI button automatically if necessary when the rig is generated.
If desired, it is possible to manually assign UI buttons to the internal ``ORG``, ``DEF`` and ``MCH`` collections.
.. tip::
Blank rows appear much thinner in the final interface, since they don't have to contain editing buttons, and can be
used as logical separators.

View File

@ -6,23 +6,165 @@ Generated Rig Features
After human rig generation a new armature named ``rig`` will be added to your scene. After human rig generation a new armature named ``rig`` will be added to your scene.
This is the character rig you have generated from the human meta-rig and will contain all the features. This is the character rig you have generated from the human meta-rig and will contain all the features.
Common Features
===============
.. _rigify.rig_ui_template.RigBakeSettings:
.. _rigify.rig_ui_template.RigUI:
.. _rigify.rig_ui_template.RigLayers:
Rig UI Panels
-------------
.. figure:: /images/addons_rigging_rigify_rig-features_rig-ui-panels.png
:align: right
:width: 200px
The generated rig is accompanied by a script that implements a set of panels that appear in the Item
tab of the 3D view sidebar when a bone belonging to the generated rig is active.
Rig Bake Settings
^^^^^^^^^^^^^^^^^
This panel is displayed if the armature has an active :doc:`Action </animation/actions>`, and
is used by operators that apply an operation to multiple keyframes.
Bake All Keyed Frames
When enabled, the operator computes and keyframes its result on every frame that has a key for any of the
bones, as opposed to just relevant ones.
Limit Frame Range
When enabled, the operator is limited to a certain frame range.
Start, End
Specify the frame range to process.
Get Frame Range
Sets the baking frame range from the scene frame range.
Rig Main Properties
^^^^^^^^^^^^^^^^^^^
This panel shows properties and operators that are relevant to the selected bones.
Rig Layers
^^^^^^^^^^
This panel contains buttons for toggling visibility of bone collections.
The layout and labels of the buttons are defined in the metarig
:ref:`Bone Collection UI <bpy.types.BoneCollection.rigify_ui_row>` panel.
Common Controls
---------------
Rigify rigs are built from standardized components called sub-rigs, which are linked together in a parent-child
hierarchy. Although the precise behavior of each sub-rig is determined by its implementation, there are certain
conventions that are followed by many of them.
Root Bone
^^^^^^^^^
Every Rigify rig has a bone called `root`, which serves as a parent for all bones of the rig.
It is assigned to a bone collection called `Root`. Unless the metarig has a custom bone
of that name, it is positioned at the origin of the rig object. Its widget looks like
a circle with four arrow shaped protrusions.
.. figure:: /images/addons_rigging_rigify_rig-features_arm-controls.png
:align: right
:width: 200px
Limb Master
^^^^^^^^^^^
Many limb-like sub-rigs have a gear-shaped bone at their base.
This bone can in some cases be used to transform the whole sub-rig as a rigid unit, and is also used as a container
for its custom properties that are displayed in the *Rig Main Properties* panel. If you are looking in the Graph editor
for the animated values of the properties, this is most likely the bone to look at.
As an exception, if multiple controls of the sub-rig need their own copy of conceptually the same property,
it may be placed on those controls directly instead.
Tweak Controls
^^^^^^^^^^^^^^
These controls look like blue spheres in the default color scheme, and are the final control layer above the
deformation bones themselves.
Tweaks are subordinate to the general IK or FK limb position but can be moved apart, twisted and scaled freely,
even reaching virtually impossible limb shapes.
Rubber Tweak
.. figure:: /images/addons_rigging_rigify_rig-features_rubber-tweak.png
:align: right
:width: 200px
Some sub-rigs provide a slider in their *Rig Main Properties* when tweaks are selected, which controls
the smoothness of the Bendy Bone joint at that position. When zero, the joint deforms with a sharp bend,
while setting it to 1 makes the transition smooth for a more rubber hose cartoon like appearance.
Custom Pivots
^^^^^^^^^^^^^
Some bones that can be freely moved in space (like IK controls) can be optionally accompanied by a custom pivot
control. These controls usually look like a plain axes empty with the axis lines capped with squares or crosses,
like the one in the image above. The control can be freely moved to change the location of the pivot, and then
rotated or scaled to transform the target bone around the pivot.
IK and FK Switching
^^^^^^^^^^^^^^^^^^^
.. figure:: /images/addons_rigging_rigify_rig-features_ik-fk-switch.png
:align: right
:width: 200px
A number of rig types provides both IK and FK controls (red for IK and green for FK in the image above),
with an ability to switch and snap between them.
Switching is controlled by a slider in *Rig Main Properties*, usually blending between full IK at 0 and full FK at 1.
Snapping one type of controls to the shape of the other is done via buttons, which form a group of three
in their complete set:
* The main button will snap on the current frame, and auto-key the result if enabled.
* The *Action* button will bake the change on multiple keyframes, according to *Rig Bake Settings*.
* The *Clear* button will delete keyframes on the corresponding controls within the bake interval.
Parent Switching
^^^^^^^^^^^^^^^^
.. figure:: /images/addons_rigging_rigify_rig-features_parent-switch.png
:align: right
:width: 200px
Some freely movable controls, e.g. usually the IK controls, can have a mechanism to switch their parent bone
between a set of choices, including the root bone, or none at all.
This mechanism is exposed in the *Rig Main Properties* panel through a row with three controls:
* A button that presents a dropdown menu, which allows switching the parent on the current frame while
preserving the bone position and orientation in the world space.
* An input field that exposes the raw switch property for keyframing and direct manipulation. Values correspond to
positions in the dropdown list.
* A button to apply the position preserving parent switch over the bake range of keyframes.
.. note::
When manually placing a Child Of constraint on the control bone, the built-in parent should be switched to none.
Limbs Limbs
===== =====
Each limb will have a gear widget at its base. This is the utility bone that Limbs have a master bone and tweaks. Depending on the user defined meta-rig options,
contains all the sub-rig properties. The rig features will be displayed anyway multiple deform bone segments with tweaks will be created.
when the affected bone is selected but if you are looking in the Graph editor for
those properties' animated values, this is most likely the bone to look at.
Depending on the user defined meta-rig options, multiple deform bone segments will be created. The IK control may have an optional custom pivot, as well as additional predefined pivots.
Each bone can be controlled by tweak controls placed at the respective bone's head/tail.
Tweaks are subordinate to the general IK or FK limb position but can be moved apart,
twisted and scaled freely, even reaching virtually impossible limb shapes.
Rigify's limbs have the following controls in the Sidebar panel: Rigify's limbs have the following controls in the Sidebar panel:
.. figure:: /images/addons_rigging_rigify_rig-features_limb-properties.png .. figure:: /images/addons_rigging_rigify_rig-features_limb-properties.png
:align: right :align: right
:width: 200px
FK Limb Follow :guilabel:`Slider` FK Limb Follow :guilabel:`Slider`
When set to 1 the FK limb will not rotate with the torso and will retain is rotation When set to 1 the FK limb will not rotate with the torso and will retain is rotation
@ -32,11 +174,7 @@ IK-FK :guilabel:`Slider`
Controls whether the limb follows IK or FK controls, blending between full IK at 0 and full FK at 1. Controls whether the limb follows IK or FK controls, blending between full IK at 0 and full FK at 1.
IK<->FK Snapping :guilabel:`Buttons` IK<->FK Snapping :guilabel:`Buttons`
To snap one type of controls to another use the appropriate buttons. Snaps one type of controls to another.
Each snap direction has buttons to update just the current pose, bake the whole animation in the
current *Action*, or *Clear* keyframes instead of snapping. The buttons dealing with keyframes
use options from an additional panel to control the range of frames to bake.
IK Stretch :guilabel:`Slider` IK Stretch :guilabel:`Slider`
Blends between the limb stretching freely at 1, or having its maximum length constrained at 0. Blends between the limb stretching freely at 1, or having its maximum length constrained at 0.
@ -47,19 +185,205 @@ Toggle Pole :guilabel:`Switch`
When set to 1 the classic pole vector will be displayed and used to orient the IK limb. When set to 1 the classic pole vector will be displayed and used to orient the IK limb.
The arrow will continue to handle the scale and the location of the IK limb base. The arrow will continue to handle the scale and the location of the IK limb base.
Similar to IK-FK Snapping, the row includes buttons to convert the current pose between types, Similar to *Parent Switching*, the row includes buttons to convert the current pose between types,
or bake the whole action. or bake the whole action.
IK Parent :guilabel:`Switch` IK Parent :guilabel:`Switch`
Switches the effective parent of the main IK control, with different integer values corresponding Switches the effective parent of the main IK control.
to choices from a list.
The row includes buttons that allow converting the current pose via choosing from a menu,
or baking the whole action.
Pole Parent :guilabel:`Switch` Pole Parent :guilabel:`Switch`
Switches the effective parent of the classic IK Pole control. Switches the effective parent of the classic IK Pole control.
Arms
----
.. figure:: /images/addons_rigging_rigify_rig-features_hand-controls.png
:align: right
:width: 200px
:ref:`Arms <rigify.rigs.limbs.arm>` have the simplest control structure: the IK controls consist of the main IK
control, the optional custom pivot control, and the optional wrist control (the bent circle), which pivots around
the tail rather than the head of the hand bone.
There are no additional controls in the *Rig Main Properties* panel.
Legs
----
:ref:`Legs <rigify.rigs.limbs.leg>` have a more complicated setup, which has:
.. figure:: /images/addons_rigging_rigify_rig-features_foot-controls.png
:align: right
:width: 200px
IK & FK Toe :guilabel:`Optional`
Two separate IK and FK controls for the toe (this is on by default and recommended for stable IK<->FK snapping).
IK Heel
A heel control which can be rotated to command forward or backward roll, sideways rock, or yaw of the heel.
Toe Pivot :guilabel:`Optional`
An extra pivot control rotating around the base of the toe.
Custom Pivot :guilabel:`Optional`
A custom pivot control.
The properties panel has two additional features:
.. figure:: /images/addons_rigging_rigify_rig-features_foot-properties.png
:align: right
:width: 200px
IK->FK Snap With Roll :guilabel:`Buttons`
Standard IK to FK snapping resets the transformations of all IK controls other than the main one. This is
not convenient to use in an animation that involves the use of the heel control, because roll and rock would
be folded into the transformation of the main control.
This alternative snapping operator tries to deduce the rotation of the heel control so as to keep the main
IK control parallel to the ground plane inferred from the *current* orientation of the IK control. The operator
has options to specify which rotational axes to use for the heel control rotation.
Roll On Toe :guilabel:`Slider` :guilabel:`Optional`
If enabled in the sub-rig settings, this slider can be used to control whether the heel rotation (excluding
backward roll) is applied at the base or the tip of the toe.
Fingers & Tentacles
===================
Simple Tentacle
---------------
.. figure:: /images/addons_rigging_rigify_rig-features_simple-controls.png
The simplest type of rig for a finger or appendage in general is the
:ref:`simple tentacle <rigify.rigs.limbs.simple_tentacle>` sub-rig. It has only basic FK controls and tweaks,
with the only automation being the ability to copy the local rotation of a FK joint to the next one.
Advanced Finger
---------------
.. figure:: /images/addons_rigging_rigify_rig-features_finger-controls.png
For the case of fingers, there is a dedicated :ref:`finger <rigify.rigs.limbs.super_finger>` sub-rig type,
which provides:
Master
A master control, which can be used to rotate the finger as a whole, as well as to bend it via Y scaling.
FK Chain
FK control chain (green) that can operate as semi-tweaks through allowing translation.
IK Control :guilabel:`Optional`
IK control for the tip.
.. note::
IK in this sub-rig is rudimentary and operates as an adjustment for FK. The intended way of use is to pose
the finger in FK, and then use FK->IK snap and enable IK if it is necessary to pin the tip of the finger
in place.
The properties panel has the following features:
.. figure:: /images/addons_rigging_rigify_rig-features_finger-properties.png
:align: right
:width: 200px
Finger IK :guilabel:`Slider` :guilabel:`Optional`
Slider controlling the influence of the IK.
FK<->IK Snapping :guilabel:`Buttons` :guilabel:`Optional`
Snaps the IK control to the end of the finger, or adjusts the FK controls to the result of the IK correction.
Curvature :guilabel:`Slider`
Has the same effect as *Rubber Tweak* on limbs, controlling the rubber hose cartoon effect.
Spline Tentacle
---------------
.. figure:: /images/addons_rigging_rigify_rig-features_spline-controls.png
Spline Tentacle (Stretch To Fit, Manual Squash & Stretch)
.. figure:: /images/addons_rigging_rigify_rig-features_spline-controls-tip.png
Spline Tentacle (Direct Tip Control)
The :ref:`spline tentacle <rigify.rigs.limbs.spline_tentacle>` is an advanced rig for a flexible appendage (tentacle)
based on the :doc:`Spline IK </animation/constraints/tracking/spline_ik>` constraint. The IK control bones manage
control points of a Bezier spline curve, which in turn is followed by the IK chain.
The tentacle can be generated in three major modes:
Stretch To Fit
In this simplest mode all bones of the sub-rig deform chain follow the curve and squash & stretch to match
its length.
Manual Squash & Stretch
This mode is almost the same, but the chain does not automatically scale to match the curve length.
Instead, it tries to cover as much as possible of the curve given its manually scaled length.
If the curve is too short, the chain will overhang it and straighten out, but this is not fully stable.
Direct Tip Control
This mode is more similar to the behavior of IK limbs: the final bone of the chain is directly controlled by
the tip IK control, while the other bones of the chain stretch and follow the curve to bridge the gap.
The tentacle sub-rig has the following control bones:
Master
The tentacle has the same gear master control as other limbs (seen as a line in the images).
IK Start
The IK control at the base of the tentacle, which can be used to control the base twist and sideways scale, and
is one of the potential switchable parents for other IK controls.
In the *Manual Squash & Stretch* mode it controls uniform scale of the tentacle.
IK Start (Extra) :guilabel:`Optional`
Extra start controls, optional and hidden by default. Switchable parents default to the *IK Start* control.
The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.
IK Middle
Controls for the middle of the curve. The switchable parents default to *Master*, but may be set to
*IK Start* or *IK End* controls.
The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.
IK End (Extra) :guilabel:`Optional`
Extra end controls, optional and hidden by default. Switchable parents default to the *IK End* control.
The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.
The *Direct Tip Control* mode adds one more extra end control next to the middle ones that cannot be hidden.
IK End
Controls the last control point of the curve, and is one of the potential parents for the other chain controls.
In the *Direct Tip Control* mode also directly controls the last bone of the chain.
IK End Twist :guilabel:`Optional`
* *Stretch To Fit*: controls the twist of the tip of the tentacle, interpolated to nothing at the base.
* *Manual Squash & Stretch*: also controls the scaling of the tip of the tentacle.
* *Direct Tip Control*: does not exist.
FK Chain :guilabel:`Optional`
If enabled, the rig has an alternative fully FK control chain.
The properties panel has the following features:
.. figure:: /images/addons_rigging_rigify_rig-features_spline-properties.png
:align: right
:width: 200px
Start/End Controls :guilabel:`Optional`
If extra controls exist, this property controls how many of them are visible and active.
When a control is disabled, it is snapped to a position extremely close to the corresponding end control point,
thus effectively neutralizing its effect. Thus, changing the setting during an animation can cause jumps.
The plus and minus buttons can help with maintaining a continuous transition in an animation by keyframing the
change in the property value with Constant interpolation, and also snapping and keyframing the control itself
to its 'hidden' position.
End Twist Estimate :guilabel:`Optional`
In the *Direct Tip Control* mode the twist at the end of the tentacle is deduced from the orientation of the
tip control. However, for technical reasons, that is only possible within the 180 degrees range of neutral.
A long tentacle can accept more twist than 180 degrees, so a workaround is necessary. This property allows
specifying an approximate estimate of the twist value, and the rig then applies the automatic correction within
180 degrees of this value.
IK-FK, IK<->FK Snapping :guilabel:`Optional`
If the FK controls are enabled, these provide standard IK-FK switching and snapping.
However, unlike other limbs, for this rig automatic IK to FK snapping can only be approximate and requires
manual tuning. For this reason, buttons for baking the snapping over a range of keyframes are not provided.
Parent Switch
Switches the parent of the active IK control.
Head Head
==== ====

View File

@ -13,8 +13,8 @@ This is unlike chain-based rig types that usually consume the whole connected ch
.. _rigify.rigs.basic.copy_chain: .. _rigify.rigs.basic.copy_chain:
``basic.copy_chain`` basic.copy_chain
==================== ================
Copies the bone chain keeping all the parent relations within the chain untouched. Copies the bone chain keeping all the parent relations within the chain untouched.
Useful as a utility rig type for custom rigs. Useful as a utility rig type for custom rigs.
@ -29,8 +29,8 @@ Deform (Boolean)
.. _rigify.rigs.basic.pivot: .. _rigify.rigs.basic.pivot:
``basic.pivot`` basic.pivot
=============== ===========
Single-bone rig type that creates a 'custom pivot' control for rotating and scaling its child sub-rigs. Single-bone rig type that creates a 'custom pivot' control for rotating and scaling its child sub-rigs.
@ -74,8 +74,8 @@ Deform Bone
.. _rigify.rigs.basic.raw_copy: .. _rigify.rigs.basic.raw_copy:
``basic.raw_copy`` basic.raw_copy
================== ==============
Single-bone rig type that copies the bone without the ``ORG-`` name prefix. Single-bone rig type that copies the bone without the ``ORG-`` name prefix.
@ -106,8 +106,8 @@ Relink Constraints
.. _rigify.rigs.basic.super_copy: .. _rigify.rigs.basic.super_copy:
``basic.super_copy`` basic.super_copy
==================== ================
Single-bone rig type that simply copies the bone. Useful as utility rig type for Single-bone rig type that simply copies the bone. Useful as utility rig type for
adding custom features or specific deform bones to your rigs. adding custom features or specific deform bones to your rigs.

View File

@ -8,21 +8,21 @@ These rig types implement components of a modular face.
.. _rigify.rigs.face.basic_tongue: .. _rigify.rigs.face.basic_tongue:
``face.basic_tongue`` face.basic_tongue
===================== =================
Generates a simple tongue, extracted from the original PitchiPoy ``super_face`` rig. Generates a simple tongue, extracted from the original PitchiPoy :ref:`super_face <rigify.rigs.faces.super_face>` rig.
B-Bone Segments (integer) B-Bone Segments (integer)
Defines the number of b-bone segments each tweak control will be split into. Defines the number of b-bone segments each tweak control will be split into.
Primary Control Layers Primary Control Layers
Optionally specifies layers for the main control. Optionally specifies bone collections for the main control.
.. _rigify.rigs.face.skin_eye: .. _rigify.rigs.face.skin_eye:
``face.skin_eye`` face.skin_eye
================= =============
Implements a skin system :ref:`parent controller <rigify.rigs.skin.skin_parents>` that manages Implements a skin system :ref:`parent controller <rigify.rigs.skin.skin_parents>` that manages
two skin chains for the top and bottom eyelids in addition to generating the eye rotation mechanism. two skin chains for the top and bottom eyelids in addition to generating the eye rotation mechanism.
@ -49,8 +49,8 @@ Eyelids Follow Default
.. _rigify.rigs.face.skin_jaw: .. _rigify.rigs.face.skin_jaw:
``face.skin_jaw`` face.skin_jaw
================= =============
Implements a skin system :ref:`parent controller <rigify.rigs.skin.skin_parents>` that manages Implements a skin system :ref:`parent controller <rigify.rigs.skin.skin_parents>` that manages
one or more loops of mouth skin chains in response to the movement of jaw and mouth controls. one or more loops of mouth skin chains in response to the movement of jaw and mouth controls.

View File

@ -3,8 +3,10 @@
Faces Faces
***** *****
``faces.super_face`` .. _rigify.rigs.faces.super_face:
====================
faces.super_face
================
Will create a face system based on the bones child to the parent that has the property set on it. Will create a face system based on the bones child to the parent that has the property set on it.

View File

@ -1,6 +1,3 @@
.. _bpy.types.PoseBone.rigify_type:
.. _bpy.types.RigifyParameters:
############# #############
Rig Types Rig Types
############# #############

View File

@ -6,26 +6,32 @@ Limbs
These rig types handle generation of different kind of limbs and their features, like fingers. These rig types handle generation of different kind of limbs and their features, like fingers.
``limbs.simple_tentacle`` .. _rigify.rigs.limbs.simple_tentacle:
=========================
Will create a bendy and stretchy b-bones tentacle chain or automatic bendy and stretchy finger controls. limbs.simple_tentacle
=====================
Will create a simple bendy and stretchy b-bones tentacle chain, which can optionally replicate local rotation
from preceeding bones to the subsequent ones for use in cases like fingers.
Requirement: A chain of at least two connected bones. Requirement: A chain of at least two connected bones.
Automation Axis (X, Y, Z, None) Automation Axis (X, Y, Z, None)
Enables the automation on the selected axis. Multiple axis or none can be selected holding :kbd:`Shift-LMB`. Enables the automation on the selected axis. Multiple axis or none can be selected holding :kbd:`Shift-LMB`.
When enabled the controls of the last bones will copy the rotations from the previous ones. When enabled the subsequent control bones will copy the local rotations from the previous ones.
The option is accessible in the controls of the final rig as a Copy Rotation constraint and The option is accessible in the controls of the final rig as a Copy Rotation constraint and
can be disabled even after rig is generated, or at animation time. can be disabled even after rig is generated, or at animation time.
Assign Tweak Layers Assign Tweak Layers
If enabled, allows placing the Tweak controls on different layers from the main controls. If enabled, allows placing the Tweak controls in different bone collections from the main controls.
``limbs.super_finger`` .. _rigify.rigs.limbs.super_finger:
======================
Will create a bendy and stretchy chain or automatic bendy and stretchy finger depending on a master control bone. limbs.super_finger
==================
Will create a bendy and stretchy finger chain with a master control bone that controls the rotation of
all joints through its scale.
Requirement: A chain of at least two connected bones. Requirement: A chain of at least two connected bones.
@ -39,27 +45,40 @@ IK Control
IK starts its work with the shape of the finger defined by FK controls and adjusts it IK starts its work with the shape of the finger defined by FK controls and adjusts it
to make the fingertip touch the IK control. It is designed as a tool to temporarily keep to make the fingertip touch the IK control. It is designed as a tool to temporarily keep
the fingertip locked to a surface it touches, rather than a fully featured posing system. the fingertip locked to a surface it touches, rather than a fully featured posing system.
To improve performance, the switchable parent for the IK control contains only one option beside None.
Thus it is advised to add a 'held object' control using the :ref:`basic.raw_copy <rigify.rigs.basic.pivot>`
rig to act as the common parent for the fingers with a fully functional parent switch.
IK Local Location
Specifies the value of the Local Location option for IK controls, which decides if the location
channels are aligned to the local control orientation or world.
Assign Tweak Layers Assign Tweak Layers
If enabled, allows placing the Tweak controls on different layers from the main controls. If enabled, allows placing the Tweak controls in different bone collections from the main controls.
Assign Extra IK Layers
If enabled, allows placing the extra IK control in different bone collections from the main controls.
.. note:: .. note::
Rotation Axis (Bend Rotation Axis in the case of ``limbs.super_finger``) Rotation Axis (Bend Rotation Axis in the case of `limbs.super_finger`_)
affects the :doc:`roll </animation/armatures/bones/editing/bone_roll>` of the generated bones. affects the :doc:`roll </animation/armatures/bones/editing/bone_roll>` of the generated bones.
Automatic mode recalculates the generated bones roll while Automatic mode recalculates the generated bones roll while
any of the Manual modes copy the roll of the meta-rig bones. any of the Manual modes copy the roll of the meta-rig bones.
``limbs.super_limb`` .. _rigify.rigs.limbs.super_limb:
====================
A backwards compatibility wrapper around ``limbs.arm``, ``limbs.leg`` and ``limbs.paw``. limbs.super_limb
================
A backwards compatibility wrapper around `limbs.arm`_, `limbs.leg`_ and `limbs.paw`_.
``limbs.arm`` .. _rigify.rigs.limbs.arm:
=============
Will create a full featured bendy and stretchy arm depending on the user-defined options. limbs.arm
=========
Will create a fully featured bendy and stretchy arm depending on the user-defined options.
Requirement: A chain of three connected bones (upper_arm, forearm, hand). Requirement: A chain of three connected bones (upper_arm, forearm, hand).
@ -79,15 +98,17 @@ B-Bone Segments (integer)
Custom IK Pivot Custom IK Pivot
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot. Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
Assign FK Layers Assign FK Layers
If enabled, allows placing the FK chain on different layers from the IK bones. If enabled, allows placing the FK chain in different bone collections from the IK bones.
Assign Tweak Layers Assign Tweak Layers
If enabled, allows placing the Tweak controls on different layers from the IK bones. If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
``limbs.leg`` .. _rigify.rigs.limbs.leg:
=============
Will create a full featured bendy and stretchy leg depending on the user-defined options. limbs.leg
=========
Will create a fully featured bendy and stretchy leg depending on the user-defined options.
Requirement: A chain of four connected bones (thigh, shin, foot, toe) with one unconnected Requirement: A chain of four connected bones (thigh, shin, foot, toe) with one unconnected
child of the foot to be used as the heel pivot. child of the foot to be used as the heel pivot.
@ -104,6 +125,10 @@ Separate IK Toe
Specifies that two separate toe controls should be generated for IK and FK instead of sharing one bone. Specifies that two separate toe controls should be generated for IK and FK instead of sharing one bone.
This is necessary to get fully correct IK-FK snapping in all possible poses. This is necessary to get fully correct IK-FK snapping in all possible poses.
Toe Tip Roll
Generates a slider to switch the heel control to pivot on the tip rather than the base of the toe
(for roll this obviously only applies on forward roll).
Rotation Axis (Automatic, X, Z) Rotation Axis (Automatic, X, Z)
Defines the bend axis for the IK chain. FK chains will have a totally free degree of rotation on all axes. Defines the bend axis for the IK chain. FK chains will have a totally free degree of rotation on all axes.
Limb Segments (integer) Limb Segments (integer)
@ -113,15 +138,17 @@ B-Bone Segments (integer)
Custom IK Pivot Custom IK Pivot
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot. Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
Assign FK Layers Assign FK Layers
If enabled, allows placing the FK chain on different layers from the IK bones. If enabled, allows placing the FK chain in different bone collections from the IK bones.
Assign Tweak Layers Assign Tweak Layers
If enabled, allows placing the Tweak controls on different layers from the IK bones. If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
``limbs.paw`` .. _rigify.rigs.limbs.paw:
=============
Will create a full featured bendy and stretchy paw depending on the user-defined options. limbs.paw
=========
Will create a fully featured bendy and stretchy paw depending on the user-defined options.
Requirement: A chain of four or five connected bones (thigh, shin, paw, *optional* digit, toe). Requirement: A chain of four or five connected bones (thigh, shin, paw, *optional* digit, toe).
@ -138,15 +165,17 @@ B-Bone Segments (integer)
Custom IK Pivot Custom IK Pivot
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot. Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
Assign FK Layers Assign FK Layers
If enabled, allows placing the FK chain on different layers from the IK bones. If enabled, allows placing the FK chain in different bone collections from the IK bones.
Assign Tweak Layers Assign Tweak Layers
If enabled, allows placing the Tweak controls on different layers from the IK bones. If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
``limbs.front_paw`` .. _rigify.rigs.limbs.front_paw:
===================
Derivative of ``limbs.paw`` with extended IK suitable for use in front paws. limbs.front_paw
===============
Derivative of `limbs.paw`_ with extended IK suitable for use in front paws.
The additional IK limits the degree of change in the angle between shin and The additional IK limits the degree of change in the angle between shin and
paw bones (2nd and 3rd) as the main IK control moves and rotates. paw bones (2nd and 3rd) as the main IK control moves and rotates.
@ -158,18 +187,22 @@ Heel IK Influence
not affect the rotation of the paw bone, while lower values provide some blending. not affect the rotation of the paw bone, while lower values provide some blending.
``limbs.rear_paw`` .. _rigify.rigs.limbs.rear_paw:
==================
Derivative of ``limbs.paw`` with extended IK suitable for use in rear paws. limbs.rear_paw
==============
Derivative of `limbs.paw`_ with extended IK suitable for use in rear paws.
The additional IK tries to maintain thigh and paw bones (1st and 3rd) in a nearly parallel orientation The additional IK tries to maintain thigh and paw bones (1st and 3rd) in a nearly parallel orientation
as the main IK control moves and rotates. as the main IK control moves and rotates.
For best results, thigh and paw bones should start nearly parallel in the rest pose. For best results, thigh and paw bones should start nearly parallel in the rest pose.
``limbs.super_palm`` .. _rigify.rigs.limbs.super_palm:
====================
limbs.super_palm
================
Will create a palm system based on the distance between palm bones. Will create a palm system based on the distance between palm bones.
@ -182,3 +215,51 @@ Both Sides
Primary Rotation Axis (X, Z) Primary Rotation Axis (X, Z)
Defines the automatic rotation axis to be used on the palm bones. Defines the automatic rotation axis to be used on the palm bones.
.. _rigify.rigs.limbs.spline_tentacle:
limbs.spline_tentacle
=====================
This rig type implements a flexible tentacle with an IK system using the Spline IK constraint. The control bones
define control points of a Bezier curve, and the bone chain follows the curve.
The curve control points are sorted into three groups: start, middle and end. The middle controls are always
visible and active, while the other two types can be shown and hidden dynamically using properties; when enabled
they appear next to the corresponding permanent start/end control and can be moved from there.
Extra Start Controls
Specifies the number of optional start controls to generate.
Middle Controls
Specifies the number of middle controls to generate.
Extra End Controls
Specifies the number of optional end controls to generate.
Tip Control:
Specifies how the curve stretching and the final control bone work:
Stretch To Fit
Stretches the whole bone chain to fit the length of the curve defined by the controls.
An end twist control is generated to control the twist along the chain.
Direct Tip Control
Generates an IK end control, which directly controls the final bone of the chain similar to how
regular IK works for limbs, as well as controlling the end of the bezier curve. The middle bones of
the chain stretch to follow the curve and cover the gap.
The rig automatically deduces twist of up to 180 degrees based on the orientation of the end control.
Higher amounts of twist have to be dialled in through an End Twist Estimate slider to avoid flipping.
Manual Squash & Stretch
This mode allows full manual control over the chain scaling, while the chain covers as much of the curve
as it can given its current length.
The start control of the chain manages its uniform squash & stretch scale, while the end twist control
manages both the twist of the chain, as well as its scale at the tip (blended gradually along the length).
Radius Scaling
Allows scaling the controls to control the thickness of the chain through the curve.
Maximum Radius
Specifies the maximum scale allowed by the Radius Scaling feature.
FK Controls
Generates an FK control chain and IK-FK snapping.
Assign FK Layers
If enabled, allows placing the FK chain in different bone collections from the IK bones.

View File

@ -65,8 +65,8 @@ Custom Rigging
.. _rigify.rigs.skin.basic_chain: .. _rigify.rigs.skin.basic_chain:
``skin.basic_chain`` skin.basic_chain
==================== ================
This is the basic chain rig, which bridges controls with B-Bones but does not add This is the basic chain rig, which bridges controls with B-Bones but does not add
any automation to the controls themselves. any automation to the controls themselves.
@ -107,8 +107,8 @@ Chain Priority
.. _rigify.rigs.skin.stretchy_chain: .. _rigify.rigs.skin.stretchy_chain:
``skin.stretchy_chain`` skin.stretchy_chain
======================= ===================
This rig extends the basic chain with automation that propagates movement of the start and end, This rig extends the basic chain with automation that propagates movement of the start and end,
and an optional middle control, to other controls. This results in stretching the whole chain and an optional middle control, to other controls. This results in stretching the whole chain
@ -134,9 +134,9 @@ Propagate to Controls
Allows other chains to see propagated twist and scale via *Merge Parent Rotation and Scale* when their Allows other chains to see propagated twist and scale via *Merge Parent Rotation and Scale* when their
controls are merged into this chain, instead of it being completely local to this chain. controls are merged into this chain, instead of it being completely local to this chain.
Primary Control Layers Primary Control Layers
Optionally specifies layers for the end controls. Optionally specifies bone collections for the end controls.
Secondary Control Layers Secondary Control Layers
Optionally specifies layers for the middle control, falling back to *Primary Control Layers* if not set. Optionally specifies bone collections for the middle control, falling back to *Primary Control Layers* if not set.
The main controls with active falloff have the effect of *Merge Parent Rotation and Scale* The main controls with active falloff have the effect of *Merge Parent Rotation and Scale*
automatically enabled just for them. automatically enabled just for them.
@ -144,8 +144,8 @@ automatically enabled just for them.
.. _rigify.rigs.skin.anchor: .. _rigify.rigs.skin.anchor:
``skin.anchor`` skin.anchor
=============== ===========
This rig effectively acts as a zero-length chain with highest priority, This rig effectively acts as a zero-length chain with highest priority,
ensuring that it becomes the owner when merging controls with other chains. ensuring that it becomes the owner when merging controls with other chains.
@ -168,10 +168,10 @@ Orientation
.. _rigify.rigs.skin.glue: .. _rigify.rigs.skin.glue:
``skin.glue`` skin.glue
============= =========
This rig is in concept similar to ``skin.anchor``, but instead of overriding controls, This rig is in concept similar to `skin.anchor`_, but instead of overriding controls,
it is used to read or adjust the state of controls generated by other rigs. it is used to read or adjust the state of controls generated by other rigs.
The head of the bone must overlap a control of another skin rig. The head of the bone must overlap a control of another skin rig.
@ -210,8 +210,8 @@ Add Constraint
.. _rigify.rigs.skin.transform.basic: .. _rigify.rigs.skin.transform.basic:
``skin.transform.basic`` skin.transform.basic
======================== ====================
This rig provides a simplistic :ref:`parent controller <rigify.rigs.skin.skin_parents>`, which uses regular This rig provides a simplistic :ref:`parent controller <rigify.rigs.skin.skin_parents>`, which uses regular
translation, rotation, or scale to modify locations but not orientations or scale of its child chain controls. translation, rotation, or scale to modify locations but not orientations or scale of its child chain controls.

View File

@ -6,12 +6,17 @@ Spines
These rigs are used to generate spine structures, including the head and tail. These rigs are used to generate spine structures, including the head and tail.
``spines.super_spine`` .. _rigify.rigs.spines.super_spine:
======================
spines.super_spine
==================
Will create a complete bendy and stretchy b-bones spine system based on bone numbers of Will create a complete bendy and stretchy b-bones spine system based on bone numbers of
your bone chain and user defined options. your bone chain and user defined options.
This is a composite wrapper of `spines.basic_spine`_, `spines.super_head`_ and `spines.basic_tail`_.
Note that for the tail, the direction of the bones is reversed compared to the separate rig.
Requirement: A chain of at least three connected bones (base system). Requirement: A chain of at least three connected bones (base system).
.. figure:: /images/addons_rigging_rigify_rig-types_spines-required.png .. figure:: /images/addons_rigging_rigify_rig-types_spines-required.png
@ -31,7 +36,10 @@ Tail (Boolean)
Tail Position (integer) Tail Position (integer)
Defines the bone where the tail system starts. The next bone will always be the hips system. Defines the bone where the tail system starts. The next bone will always be the hips system.
X, Y, Z (Boolean)
When generating a tail, specifies which local axis rotations should be replicated along the chain.
Assign Tweak Layers
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
.. figure:: /images/addons_rigging_rigify_rig-types_spines-default.png .. figure:: /images/addons_rigging_rigify_rig-types_spines-default.png
@ -40,3 +48,45 @@ Tail (Boolean)
.. figure:: /images/addons_rigging_rigify_rig-types_spines-example.png .. figure:: /images/addons_rigging_rigify_rig-types_spines-example.png
Spine with tail bones. Spine with tail bones.
.. _rigify.rigs.spines.basic_spine:
spines.basic_spine
==================
Defines a bendy and stretchy b-bones spine.
Pivot Position (integer)
Defines the pivot position for torso and hips.
Assign Tweak Layers
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
FK Controls
Specifies whether to generate an FK control chain.
Assign FK Layers
If enabled, allows placing the FK chain in different bone collections from the IK bones.
.. _rigify.rigs.spines.basic_tail:
spines.basic_tail
=================
Defines a bendy and stretchy b-bones tail.
X, Y, Z (Boolean)
Specifies which local axis rotations should be replicated along the chain from each control
bone to the following one.
Assign Tweak Layers
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
.. _rigify.rigs.spines.super_head:
spines.super_head
=================
Defines a head rig with follow torso controls.
Assign Tweak Layers
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.

View File

@ -1,7 +1,7 @@
.. DO NOT EDIT THIS FILE, GENERATED BY 'blender_help_extract.py' .. DO NOT EDIT THIS FILE, GENERATED BY 'blender_help_extract.py'
CHANGES TO THIS FILE MUST BE MADE IN BLENDER'S SOURCE CODE, SEE: CHANGES TO THIS FILE MUST BE MADE IN BLENDER'S SOURCE CODE, SEE:
https://projects.blender.org/blender/blender/src/branch/main/source/creator/creator_args.c https://projects.blender.org/blender/blender/src/branch/main/source/creator/creator_args.cc
.. _command_line-args: .. _command_line-args:

View File

@ -0,0 +1,91 @@
.. _bone-collections:
****************
Bone Collections
****************
:term:`Bone Collections <Bone Collection>` group the bones of an
:term:`Armature` into named collections. The armature is the owner of these
collections, so they are available in all modes. Bone Collections are identified
by their name, which are unique within the Armature.
In the text below, "collection" is understood to refer to "bone collection";
:term:`Scene Collections <Collection>` are not described here.
Bone Collections can be managed via :ref:`the Armature and Bone property panels <bpy.types.BoneCollection>`.
Visibility
==========
Bone Collections can be shown & hidden via the list in the Armature properties,
as well as via the list in the Bone properties. Bone visibility is determined by
the visibility of its collections, and its own 'hidden' property:
- If the bone itself is marked as 'hidden', it is invisible regardless of the
bone collections.
- A bone is visible when it is contained in any visible collection.
- A bone that is not assigned to any bone collection is visible; otherwise it
would be impossible to select it & assign it to a collection.
.. _bone_collections_library_overrides:
Library Overrides
=================
Bone collections can be added using library overrides. For this to work, both
the armature Object and the Armature itself need to be overridden.
Limitations
-----------
There are a few limitations when it comes to bone collections & overrides:
- Only bone collections that are local to the current blend file can be edited.
- Bone collections that already existed on the linked-in Armature are read-only,
and only their visibility can be toggled. Those visibility changes won't be
saved, though.
- Custom properties of overridden bone collections cannot be edited in the
properties panel. Python access is fine; this is just a current limitation of
Blender's UI code.
How It Works
------------
Bone collections added via overrides are 'anchored' to the preceeding
collection, by name. Here is an example. The *italic* collections are defined on
the linked Armature in `armature.blend`. The **bold** ones are added by
overrides in `armature_shot_47.blend`.
- *FK Controls*
- *IK Controls*
- **Left Pinky** (anchored to "IK Controls")
- **Right Pinky** (anchored to "Left Pinky")
Now if the Armature in `armature.blend` gets updated with two more collections
it might look like this:
- *FK Controls*
- *IK Controls*
- *Face Controls*
- *Face Detail Controls*
After reloading `armature_shot_47.blend`, it will look like this:
- *FK Controls*
- *IK Controls*
- **Left Pinky** (still anchored to "IK Controls")
- **Right Pinky** (still anchored to "Left Pinky")
- *Face Controls*
- *Face Detail Controls*
.. _bpy.types.armature.layers:
Some history
============
Bone Collections were introduced in Blender 4.0, as a replacement for armature
layers and bone groups. Bone Collections are owned by the Armature, so they are
available in all modes. To contrast, bone groups were stored on the object's
pose, and thus were not available in armature edit mode.

View File

@ -9,6 +9,7 @@
:maxdepth: 2 :maxdepth: 2
introduction.rst introduction.rst
bone_collections.rst
structure.rst structure.rst
tools/index.rst tools/index.rst
selecting.rst selecting.rst

View File

@ -116,6 +116,22 @@ Segments
Display Size X, Z Display Size X, Z
Controls the visible thickness of the bone segments when the armature is rendered in the *B-Bones* mode. Controls the visible thickness of the bone segments when the armature is rendered in the *B-Bones* mode.
.. _bpy.types.EditBone.bbone_mapping_mode:
Vertex Mapping
Controls how vertices are weighted to the individual segments of a B-Bone for deformations:
:Straight:
A fast mapping that works well for B-Bones with a straight or gently curved rest pose.
:Curved:
A slower mapping that improves deformations for B-Bones with a strongly curved rest pose. This should
be used selectively when needed.
.. figure:: /images/animation_armatures_bones_properties_bendy-bones_vertex-mapping.png
:width: 300px
Straight vs Curved vertex mapping on a B-Bone with a strongly curved rest pose.
.. _bpy.types.EditBone.bbone_curveinx: .. _bpy.types.EditBone.bbone_curveinx:
.. _bpy.types.EditBone.bbone_curveinz: .. _bpy.types.EditBone.bbone_curveinz:

View File

@ -1,4 +1,7 @@
.. _bpy.types.Bone.hide: .. _bpy.types.Bone.hide:
.. _bpy.types.Bone.color:
.. _bpy.types.EditBone.color:
.. _bpy.types.PoseBone.color:
**************** ****************
Viewport Display Viewport Display
@ -6,17 +9,70 @@ Viewport Display
.. reference:: .. reference::
:Mode: Object and Pose Mode :Mode: Object, Pose, and Edit Mode
:Panel: :menuselection:`Bone --> Viewport Display` :Panel: :menuselection:`Bone --> Viewport Display`
.. figure:: /images/animation_armatures_bones_properties_display_custom-shape-field.png .. figure:: /images/animation_armatures_bones_properties_display.png
Viewport Display panel. Viewport Display panel in Object/Pose mode.
Display panel lets you customize the look of your bones taking the shape of another existing object. .. figure:: /images/animation_armatures_bones_properties_display_editmode.png
Viewport Display panel in Edit mode.
Display panel lets you customize the look of your bones.
Hide Hide
Hides the selected bone. Hides the bone in the 3D Viewport. When this is unchecked, the bone's
visibility is determined by the visibility of its :ref:`bone collections <bpy.types.Bone.collections>`.
Bone Color
Either a selection of the theme-dependent colors, or a custom color. This is
the primary way to color a bone.
This color is stored on the bone itself, and thus is visible in both Pose and
Edit modes. If there are multiple armature Objects that share the same
Armature data-block, all armatures will share this color.
Pose Bone Color (only in Pose mode)
Either a selection of the theme-dependent colors, or a custom color. This is
a way to *override* the bone color on a per-armature object basis.
When this is set to 'Default', the regular Bone Color is shown (see above).
This color is stored on the :term:`Pose Bone`, and thus is specific to this
particular armature object. It is only available in Pose mode. If there are
multiple armature Objects that share the same Armature data-block, they each
can have unique pose bone colors.
.. _bpy.types.BoneColor:
.. _bpy.types.ThemeBoneColorSet:
Bone Colors
=============
Bones can be individually colored. For these colors to be visible, enable the
:ref:`Bone Colors checkbox <bpy.types.Armature.show>` in the Armature display panel.
.. figure:: /images/animation_armatures_bones_properties_display_custom_colors.png
Viewport Display panel in Pose mode, showing the choices in color palettes as
well as options for custom colors.
The primary source of bone colors is the :ref:`Theme <bpy.types.Theme>`, which
defines 20 bone color palettes. Each entry consists of three colors:
Regular
The color of unselected bones.
Select
The second color field is the outline color of selected bones.
Active
The third color field is the outline color of the active bone.
As soon as you alter one of the colors, it is switched to the *Custom Set* option.
.. _bpy.types.PoseBone.custom_shape: .. _bpy.types.PoseBone.custom_shape:

View File

@ -1,4 +1,6 @@
.. _properties_data_bone_relations:
********* *********
Relations Relations
********* *********
@ -10,29 +12,27 @@ Relations
.. figure:: /images/animation_armatures_bones_properties_relations_panel.png .. figure:: /images/animation_armatures_bones_properties_relations_panel.png
Relations panel. Bone Relations panel.
In this panel you can arrange sets of bones in different layers for easier manipulation. In this panel you can manage the relationship of this bone with its parent bone.
It also shows the bone collections the bone is assigned to.
.. _bpy.types.Bone.collections:
.. _bpy.types.EditBone.collections:
.. _bpy.types.PoseBone.collections:
.. _bpy.types.EditBone.layers: Bone Collections
================
Bone Layers This list shows the :term:`bone collections <Bone Collection>` the bone is
=========== assigned to. Press the eye icon to show or hide the entire bone collection.
Press the X icon to remove the bone from that particular collection.
Moving Bones between Layers To assign the bone to other bone collections, either use the :kbd:`M` or
--------------------------- :kbd:`Shift+M` shortcuts (see :ref:`Moving Bones Between Collections
<moving_bones_between_collections>`) or go to the :ref:`Armature properties
panel <bpy.types.BoneCollection>`.
Obviously, you have to be in *Edit Mode* or *Pose Mode* to move bones between layers.
Note that as with objects, bones can lay in several layers at once,
just use the usual :kbd:`Shift-LMB` clicks...
First of all, you have to select the chosen bone(s)!
- In the Properties, use the "layer buttons" of each selected bone Relations panel (*Bones* tab)
to control in which layer(s) it lays.
- In the *3D Viewport*, use the menu :menuselection:`Armature --> Move Bone To Layer` or
:menuselection:`Pose --> Move Bone To Layer` or press :kbd:`M` to show the usual pop-up layers menu.
Note that this way, you assign the same layers to all selected bones.
Parenting Parenting

View File

@ -216,10 +216,10 @@ Prefix
Select bones with matching name prefix (separated by ``.``). Select bones with matching name prefix (separated by ``.``).
Suffix Suffix
Select bones with matching name suffix (separated by ``.``). Select bones with matching name suffix (separated by ``.``).
Layer Bone Collection
Select bones on the same layer. Select bones that share one or more bone collections with the active bone.
Group Color
Select bones in the same group. Select bones that have the same color as the active bone.
Shape Shape
Select bones using the same shape object (in Pose Mode). Select bones using the same shape object (in Pose Mode).

View File

@ -27,7 +27,7 @@ Open a default scene, then:
#. Make sure the cursor is in the world origin with :kbd:`Shift-C`. #. Make sure the cursor is in the world origin with :kbd:`Shift-C`.
#. Press :kbd:`Numpad1` to see the world in Front view. #. Press :kbd:`Numpad1` to see the world in Front view.
#. Add a *Single Bone* (:menuselection:`Add --> Armature`). #. Add a *Single Bone* (:menuselection:`Add --> Armature`).
#. Press :kbd:`NumpadDelete` to see the armature at maximum zoom. #. Press :kbd:`NumpadPeriod` to see the armature at maximum zoom.
.. figure:: /images/animation_armatures_introduction_default.png .. figure:: /images/animation_armatures_introduction_default.png

View File

@ -44,5 +44,5 @@ There are six different color codes, ordered here by precedence
.. note:: .. note::
When :doc:`/animation/armatures/properties/bone_groups` colors are enabled, When :ref:`bone colors <bpy.types.BoneColor>` are enabled,
the state colors will be overridden. the state colors will be overridden.

View File

@ -127,14 +127,12 @@ Grouped
:Menu: :menuselection:`Select --> Grouped` :Menu: :menuselection:`Select --> Grouped`
:Shortcut: :kbd:`Shift-G` :Shortcut: :kbd:`Shift-G`
You can select bones based on their group and/or layer, through the *Select Grouped* pop-up menu :kbd:`Shift-G`: You can select bones, based on various properties, through the *Select Grouped* pop-up menu :kbd:`Shift-G`:
Layer Collection
To select all bones belonging to the same layer(s) as the selected ones, Selects all bones that are share at least one bone collection with the active bone.
use the *In Same Layer* entry. Color
Group Selects all bones that have the same color as the active bone.
To select all bones belonging to the same group(s) as the selected ones,
use the *In Same Group* entry.
Keying Set Keying Set
ToDo. ToDo.

View File

@ -0,0 +1,99 @@
.. _bpy.types.BoneGroups:
.. _bpy.types.BoneCollection:
****************
Bone Collections
****************
.. note::
Bone Collections were introduced in Blender 4.0 as replacement of Armature
Layers and Bone Groups. :ref:`Bone colors <bpy.types.Bone.color>` are now
managed directly on the bone.
.. reference::
:Mode: Pose & Armature Edit Modes
:Panel: :menuselection:`Properties --> Armature --> Bone Collections`
:Menu: :menuselection:`Pose --> Bone Collections --> ...`
.. figure:: /images/animation_armatures_properties_bonecollections_panel.png
The Bone Collections panel in the Armature properties.
This panel contains the Bone Collection :ref:`List view <ui-list-view>`, which
allows the creation, deletion, and editing of Bone Collections.
.. tip::
The Bone Properties panel gives a slightly different view on the bone's collections. See
:doc:`Bone Relations </animation/armatures/bones/properties/relations>`.
Assign & Select
===============
.. _bpy.ops.armature.collection_assign:
Assign
Assigns the selected bones to the active bone collection.
.. _bpy.ops.armature.collection_unassign:
Remove
Removes the selected bones from the active bone collection.
.. _bpy.ops.armature.collection_select:
Select
Selects the bones in the active bone collection.
.. _bpy.ops.armature.collection_deselect:
Deselect
Deselects the bones in the active bone collection.
.. note::
Individual bones can als be unassigned from their collections via the
:ref:`Bone Relations panel <bpy.types.PoseBone.collections>`.
.. tip::
For setting up custom selection sets of bones, take a look at the *Selection
Sets* add-on. It is bundled with Blender.
.. _moving_bones_between_collections:
Moving Bones between Collections
================================
Blender should be in *Edit Mode* or *Pose Mode* to move bones between collections.
Note that as with objects, bones can be assigned to in several collections at once.
Move to Collection
Shows a list of the Armature's *editable* bone collections. Choosing a bone
collection unassign the selected bones from all other bone collections, then
assigns them to the chosen one.
Available as :menuselection:`Pose --> Move to Collection` (*Pose Mode*)
:menuselection:`Armature --> Move to Collection` (*Edit Mode*), and :kbd:`M` (either mode).
Bone Collections
Shows a list of the Armature's *editable* bone collections. The collections
that the active bone is assigned to are prefixed with a `-`, and choosing
those will unassign all selected bones from that collection. Similarly,
choosing a bone collection prefixed with a `+` will assign all selected bones
to that collection.
Available as :menuselection:`Pose --> Bone Collections` (*Pose Mode*)
:menuselection:`Armature --> Bone Collections` (*Edit Mode*), and :kbd:`Shift+M` (either mode).
.. note::
The above operators will only show the *editable* bone collections. When the
Armature is linked, its bone collections will be *read-only*. New bone
collections can still be added via library overrides; only those will be
editable.
See :ref:`Library Overrides of Bone Collections <bone_collections_library_overrides>`.

View File

@ -1,84 +0,0 @@
.. _bpy.types.BoneGroups:
***********
Bone Groups
***********
.. reference::
:Mode: Pose Mode
:Panel: :menuselection:`Properties --> Armature --> Bone Groups`
:Menu: :menuselection:`Pose --> Bone Groups --> ...`
.. TODO2.8
.. figure:: /images/animation_armatures_properties_bone-groups_panel.png
The Bone Groups panel.
This panel allows the creation, deletion and editing of Bone Groups.
Bone Groups can be used for selection or to assign a color theme to a set of bones.
In example to color the left parts of the rig as blue and right parts as red.
Active Bone Group
The Bone Group :ref:`List view <ui-list-view>`.
Color Set
A select menu.
:Default Colors: The default (gray) colors.
:*nn* - Theme Color Set: One of the twenty Blender presets by the theme.
:Custom Set: A custom set of colors, which is specific to each group.
Custom Colors
=============
You can assign a "color theme" to a group (each bone will have these colors).
Remember you have to enable the *Colors* checkbox (*Display* panel) to see these colors.
.. _bpy.types.ThemeBoneColorSet:
Regular
The first color field is the color of unselected bones.
Select
The second color field is the outline color of selected bones.
Active
The third color field is the outline color of the active bone.
As soon as you alter one of the colors, it is switched to the *Custom Set* option.
Assign & Select
===============
In the 3D Viewport, using the :menuselection:`Pose --> Bone Groups` menu entries,
and/or the *Bone Groups* pop-up menu :kbd:`Ctrl-G`, you can:
.. _bpy.ops.pose.group_assign:
Assign
Assigns the selected bones to the active bone group.
It is important to note that a bone can only belong to one group.
.. _bpy.ops.pose.group_unassign:
Remove
Removes the selected bones from the active bone group.
.. _bpy.ops.pose.group_select:
Select
Selects the bones in the active bone group.
.. _bpy.ops.pose.group_deselect:
Deselect
Deselects the bones in the active bone group.
.. note::
A single bone can be assigned to a group in the :ref:`Relations panel <bpy.types.PoseBone.bone_group>`.
.. tip::
Bones belonging to multiple groups is possible with the *Selection Sets* add-on.

View File

@ -109,9 +109,9 @@ Show
When enabled, the default standard bone shape is replaced, When enabled, the default standard bone shape is replaced,
in *Object Mode* and *Pose Mode*, by the shape of a chosen object in *Object Mode* and *Pose Mode*, by the shape of a chosen object
(see :doc:`Shaped Bones </animation/armatures/bones/properties/display>` for details). (see :doc:`Shaped Bones </animation/armatures/bones/properties/display>` for details).
Group Colors Bone Colors
Use the Bone Group colors to color the bone. Draws bones in their configured colors. Disable to always draw bones in the default color.
For more details see :doc:`Bone Groups </animation/armatures/properties/bone_groups>`. For more details see :ref:`Bone Colors <bpy.types.Bone.color>`.
In Front In Front
When enabled, the bones of the armature will always be shown on top of When enabled, the bones of the armature will always be shown on top of
the solid objects (meshes, surfaces, ...). I.e. they will always be visible and selectable the solid objects (meshes, surfaces, ...). I.e. they will always be visible and selectable

View File

@ -7,6 +7,5 @@
:maxdepth: 2 :maxdepth: 2
introduction.rst introduction.rst
skeleton.rst bone_collections.rst
display.rst display.rst
bone_groups.rst

View File

@ -5,10 +5,31 @@ Introduction
The *Armature* tab in Properties contains various panels gathering the armature settings. The *Armature* tab in Properties contains various panels gathering the armature settings.
.. TODO2.8 .. figure:: /images/animation_armatures_properties_introduction_properties-editor.png
.. figure:: /images/animation_armatures_properties_introduction_properties-editor.png
The Armature tab in the Properties. The Armature tab in the Properties.
Pose
====
.. reference::
:Mode: All Modes
:Panel: :menuselection:`Armature --> Pose`
Pose Position
A radio button to switch between Pose Position and Rest Position.
In *Edit Mode*, you always see armatures in their rest position,
in *Object Mode* and *Pose Mode*, by default, you see them in *Pose Position*
(i.e. as it was transformed in the *Pose Mode*).
If you want to see it in the rest position in all modes, select *Rest Position*.
Bone Collections
================
See :doc:`Bone Collections </animation/armatures/properties/bone_collections>`.
Motion Paths Motion Paths

View File

@ -1,45 +0,0 @@
********
Skeleton
********
.. reference::
:Mode: All Modes
:Panel: :menuselection:`Armature --> Skeleton`
.. figure:: /images/animation_armatures_properties_skeleton_panel.png
Skeleton panel.
In this panel you can arrange sets of bones into different layers for easier manipulation.
.. _bpy.types.Armature.pose_position:
Pose Position
A radio button to switch between Pose Position and Rest Position.
In *Edit Mode*, you always see armatures in their rest position,
in *Object Mode* and *Pose Mode*, by default, you see them in *Pose Position*
(i.e. as it was transformed in the *Pose Mode*).
If you want to see it in the rest position in all modes, select *Rest Position*.
.. _bpy.types.Armature.layers:
Armature Layers
Each armature has 32 layers to organize armatures by "regrouping" them into sets of bones.
Only bones in active layers will be visible/editable, but they will always be effective
(i.e. move objects or deform geometry), whether in an active layer or not.
This property changes which layers are visible in the 3D Viewport.
To show several layers at once, :kbd:`Shift-LMB` on the desired layers to view.
To move bones to a given layer, use :ref:`bpy.ops.armature.bone_layers`.
.. _bpy.types.Armature.layers_protected:
Protected Layers
You can lock a given bone layer for all :doc:`/files/linked_libraries/library_proxies`
of your armature, i.e. all bones in this layer will not be editable.
.. note::
*Protected Layers* in proxy are restored to proxy settings on file reload and undo.

View File

@ -8,12 +8,7 @@ Shrinkwrap Constraint
The *Shrinkwrap* constraint is the "object counterpart" of The *Shrinkwrap* constraint is the "object counterpart" of
the :doc:`Shrinkwrap Modifier </modeling/modifiers/deform/shrinkwrap>`. the :doc:`Shrinkwrap Modifier </modeling/modifiers/deform/shrinkwrap>`.
It moves the owner origin and therefore the owner object's location to the surface of its target. It moves the owner origin and therefore the owner object's location to the surface of its target.
This implies that the target *must* have a surface; thus, you can only use meshes as targets.
This implies that the target *must* have a surface. In fact,
the constraint is even more selective, as it can only use meshes as targets. Hence,
the *Shrinkwrap* option is only shown in the *Add Constraint to Active Object* menu,
:kbd:`Ctrl-Alt-C`, (or its bone's equivalent),
when the selected inactive object is a mesh.
Options Options

View File

@ -189,6 +189,7 @@ Variable Type
channel value (before parenting or constraints), or ``["prop_name"]`` for a custom property. channel value (before parenting or constraints), or ``["prop_name"]`` for a custom property.
.. tip:: .. tip::
Although the values of the x/y/z animation channels for the camera location can be accessed Although the values of the x/y/z animation channels for the camera location can be accessed
via ``camera.location[0/1/2]``, retrieving its world space location and orientation after parenting via ``camera.location[0/1/2]``, retrieving its world space location and orientation after parenting
and constraints currently requires using ``camera.matrix_world``. This property can be understood and constraints currently requires using ``camera.matrix_world``. This property can be understood

View File

@ -43,7 +43,7 @@ Each frame is displayed by a small white dot on the paths.
The paths are automatically updated when you edit your poses/keyframes, The paths are automatically updated when you edit your poses/keyframes,
and they are also active during animation playback. Playing the animation and they are also active during animation playback. Playing the animation
affects the paths only when the *Around Current Frame* option is enabled. affects the paths only when using the *Around Frame* type.
Options Options
@ -90,7 +90,7 @@ Calculation Range
Frame Range Start, End Frame Range Start, End
Starting and Ending frame of range of paths to display/calculate Starting and Ending frame of range of paths to display/calculate
(not for the *Around Current Frame* type). (not for the *Around Frame* type).
Although the start and end frame are always editable, updating the motion Although the start and end frame are always editable, updating the motion
path will change these according to the *Calculation Range* setting. To path will change these according to the *Calculation Range* setting. To
@ -101,7 +101,7 @@ Frame Range Start, End
Frame Range Before, After Frame Range Before, After
Number of frames to show before and after the current frame Number of frames to show before and after the current frame
(only for the *Around Current Frame* type). (only for the *Around Frame* type).
.. _bpy.types.AnimVizMotionPaths.frame_step: .. _bpy.types.AnimVizMotionPaths.frame_step:

View File

@ -24,11 +24,43 @@ Node Types
types/input/index.rst types/input/index.rst
types/output/index.rst types/output/index.rst
----------
.. toctree::
:maxdepth: 1
types/color/index.rst types/color/index.rst
types/converter/index.rst
types/filter/index.rst types/filter/index.rst
----------
.. toctree::
:maxdepth: 1
types/keying/index.rst
types/mask/index.rst
----------
.. toctree::
:maxdepth: 1
types/tracking/index.rst
----------
.. toctree::
:maxdepth: 1
types/transform/index.rst
types/utilities/index.rst
types/vector/index.rst types/vector/index.rst
types/matte/index.rst
types/distort/index.rst ----------
.. toctree::
:maxdepth: 1
types/groups.rst types/groups.rst
types/layout/index.rst types/layout/index.rst

View File

@ -0,0 +1,17 @@
##########
Adjust
##########
.. toctree::
:maxdepth: 1
bright_contrast.rst
color_balance.rst
color_correction.rst
exposure.rst
gamma.rst
hue_correct.rst
hue_saturation.rst
rgb_curves.rst
tone_map.rst

View File

@ -84,7 +84,7 @@ In this example, the image has too much red in it,
so we run it through an *RGB Curves* node and reduce the Red channel. so we run it through an *RGB Curves* node and reduce the Red channel.
Also, read on for examples of the Darken and Contrast Enhancement curves, Also, read on for examples of the Darken and Contrast Enhancement curves,
:doc:`here </compositing/types/color/mix>`. :doc:`here </compositing/types/color/mix/mix_color>`.
Color Correction using Black/White Levels Color Correction using Black/White Levels

View File

@ -10,17 +10,29 @@ overlaying another image, etc.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
alpha_over.rst adjust/index.rst
bright_contrast.rst
color_balance.rst ----------
color_correction.rst
exposure.rst .. toctree::
gamma.rst :maxdepth: 1
hue_correct.rst
hue_saturation.rst mix/index.rst
----------
.. toctree::
:maxdepth: 1
alpha_convert.rst
color_ramp.rst
convert_colorspace.rst
set_alpha.rst
----------
.. toctree::
:maxdepth: 1
invert_color.rst invert_color.rst
mix.rst rgb_to_bw.rst
posterize.rst
rgb_curves.rst
tone_map.rst
z_combine.rst

View File

@ -0,0 +1,25 @@
#######
Mix
#######
.. toctree::
:maxdepth: 1
alpha_over.rst
----------
.. toctree::
:maxdepth: 1
combine_color.rst
separate_color.rst
----------
.. toctree::
:maxdepth: 1
mix_color.rst
z_combine.rst

View File

@ -1,7 +1,7 @@
.. index:: Compositor Nodes; Mix .. index:: Compositor Nodes; Mix
.. _bpy.types.CompositorNodeMixRGB: .. _bpy.types.CompositorNodeMixRGB:
.. Editor's Note: This page gets copied into: .. Editor's Note: This page gets copied into:
.. - :doc:`</render/cycles/nodes/types/color/mix>` .. - :doc:`</render/shader_nodes/color/mix>`
.. - :doc:`</modeling/geometry_nodes/utilities/color/mix_rgb>` .. - :doc:`</modeling/geometry_nodes/utilities/color/mix_rgb>`
.. - :doc:`</render/shader_nodes/converter/mix>` .. - :doc:`</render/shader_nodes/converter/mix>`
.. - :doc:`</modeling/geometry_nodes/utilities/mix>` .. - :doc:`</modeling/geometry_nodes/utilities/mix>`

View File

@ -70,7 +70,7 @@ The node tree below shows how to do this using the Set Alpha node.
Fade to black. Fade to black.
In the example above, the alpha channel of the swirl image is ignored. In the example above, the alpha channel of the swirl image is ignored.
Instead, a :doc:`Time Curve node </compositing/types/input/time_curve>` Instead, a :doc:`Time Curve node </compositing/types/input/scene/time_curve>`
introduces a factor from 0.0 to 1.0 over 60 frames, or about 2 seconds, introduces a factor from 0.0 to 1.0 over 60 frames, or about 2 seconds,
to the Set Alpha node. Note that the time curve is exponentially-shaped, to the Set Alpha node. Note that the time curve is exponentially-shaped,
so that the overall blackness will fade in slowly and then accelerate toward the end. so that the overall blackness will fade in slowly and then accelerate toward the end.

View File

@ -1,28 +0,0 @@
###################
Converter Nodes
###################
As the name implies, these nodes convert the colors or other properties of various data
(e.g. transparency) in some way.
They also split out or re-combine the different color channels that make up an image,
allowing you to work on each channel independently.
Various color channel arrangements are supported, including traditional RGB, HSV
and :abbr:`HDMI (High Definition Media Interface)` formats.
.. toctree::
:maxdepth: 1
alpha_convert.rst
color_space.rst
color_ramp.rst
combine_color.rst
combine_xyz.rst
id_mask.rst
math.rst
rgb_to_bw.rst
separate_color.rst
separate_xyz.rst
set_alpha.rst
switch_view.rst

View File

@ -30,7 +30,7 @@ Size
controlled by an input image. In order to use the latter, the Variable Size option must be selected. controlled by an input image. In order to use the latter, the Variable Size option must be selected.
See the examples section below for more on how to use this. See the examples section below for more on how to use this.
Bounding Box Bounding Box
This can be used with a :doc:`Box Mask </compositing/types/matte/box_mask>` This can be used with a :doc:`Box Mask </compositing/types/mask/box_mask>`
matte node or with a :doc:`Mask </compositing/types/input/mask>` matte node or with a :doc:`Mask </compositing/types/input/mask>`
input node to restrict the area of the image the blur is applied to. This could be helpful, for example, input node to restrict the area of the image the blur is applied to. This could be helpful, for example,
when developing a node system by allowing only a small area of the image to be filtered when developing a node system by allowing only a small area of the image to be filtered
@ -59,14 +59,14 @@ Examples
Three examples of how the size input may be used follow. Three examples of how the size input may be used follow.
An :doc:`ID masked </compositing/types/converter/id_mask>` An :doc:`ID masked </compositing/types/mask/id_mask>`
alpha image can be used so that a background is blurred while foreground objects remain in focus. alpha image can be used so that a background is blurred while foreground objects remain in focus.
To prevent strange edges the :doc:`Dilate Node </compositing/types/filter/dilate_erode>` should be used. To prevent strange edges the :doc:`Dilate Node </compositing/types/filter/dilate_erode>` should be used.
The Z pass can be visualized using a :doc:`Map Value </compositing/types/vector/map_value>` node The Z pass can be visualized using a :doc:`Map Value </compositing/types/utilities/map_value>` node
and a :doc:`Color Ramp </compositing/types/converter/color_ramp>` node and a :doc:`Color Ramp </compositing/types/color/color_ramp>` node
as described in :doc:`Render Layers </compositing/types/input/render_layers>`. as described in :doc:`Render Layers </compositing/types/input/scene/render_layers>`.
A *multiply* :doc:`Math </compositing/types/converter/math>` node can be used following the color ramp A *multiply* :doc:`Math </compositing/types/utilities/math>` node can be used following the color ramp
so that a blur value greater than one is used for objects outside the focal range. so that a blur value greater than one is used for objects outside the focal range.
.. figure:: /images/compositing_types_filter_bokeh-blur_example-1.png .. figure:: /images/compositing_types_filter_bokeh-blur_example-1.png

View File

@ -0,0 +1,14 @@
#####################
Blur Filter Nodes
#####################
.. toctree::
:maxdepth: 1
bilateral_blur.rst
blur.rst
bokeh_blur.rst
defocus.rst
directional_blur.rst
vector_blur.rst

View File

@ -6,21 +6,35 @@
Filters process the pixels of an image to highlight additional details or perform some sort of Filters process the pixels of an image to highlight additional details or perform some sort of
post-processing effect on the image. post-processing effect on the image.
.. toctree::
:maxdepth: 1
blur/index.rst
----------
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
anti_aliasing.rst anti_aliasing.rst
bilateral_blur.rst
blur_node.rst
bokeh_blur.rst
defocus.rst
denoise.rst denoise.rst
despeckle.rst despeckle.rst
----------
.. toctree::
:maxdepth: 1
dilate_erode.rst dilate_erode.rst
directional_blur.rst
filter_node.rst
glare.rst
inpaint.rst inpaint.rst
----------
.. toctree::
:maxdepth: 1
filter.rst
glare.rst
pixelate.rst pixelate.rst
posterize.rst
sun_beams.rst sun_beams.rst
vector_blur.rst

View File

@ -9,7 +9,7 @@ Pixelate Node
:align: right :align: right
:alt: Pixelate Node. :alt: Pixelate Node.
Add this node in front of a :doc:`Scale node </compositing/types/distort/scale>` Add this node in front of a :doc:`Scale node </compositing/types/transform/scale>`
to get a pixelated (non-smoothed) image from the resultant upscaled image. to get a pixelated (non-smoothed) image from the resultant upscaled image.

View File

@ -14,18 +14,6 @@ that can be combined into a single node while selectively exposing inputs of the
Group nodes can simplify a node tree by allowing instancing and hiding parts of the tree. Group nodes can simplify a node tree by allowing instancing and hiding parts of the tree.
Make Group
==========
Creates a node group from the selected nodes, see :ref:`bpy.ops.node.group_make` for more information.
Ungroup
=======
Removes the selected nodes from a group, see :ref:`bpy.ops.node.group_ungroup` for more information.
Group Input Group Input
=========== ===========

View File

@ -10,7 +10,7 @@ Bokeh Image Node
:alt: Bokeh Image Node. :alt: Bokeh Image Node.
The *Bokeh Image* node generates a special input image for use with The *Bokeh Image* node generates a special input image for use with
the :doc:`Bokeh Blur </compositing/types/filter/bokeh_blur>` filter node. the :doc:`Bokeh Blur </compositing/types/filter/blur/bokeh_blur>` filter node.
The *Bokeh Image* node is designed to create a reference image which simulates optical parameters The *Bokeh Image* node is designed to create a reference image which simulates optical parameters
such as aperture shape and lens distortions which have important impacts on bokeh in real cameras. such as aperture shape and lens distortions which have important impacts on bokeh in real cameras.
@ -52,7 +52,7 @@ Example
======= =======
In the example below the *Bokeh Image* is used to define the shape of the bokeh for In the example below the *Bokeh Image* is used to define the shape of the bokeh for
the :doc:`Bokeh Blur </compositing/types/filter/bokeh_blur>` node. the :doc:`Bokeh Blur </compositing/types/filter/blur/bokeh_blur>` node.
.. figure:: /images/compositing_types_filter_bokeh-blur_example-1.png .. figure:: /images/compositing_types_filter_bokeh-blur_example-1.png
:width: 640px :width: 640px

View File

@ -0,0 +1,11 @@
############
Constant
############
.. toctree::
:maxdepth: 1
rgb.rst
value.rst

View File

@ -48,4 +48,4 @@ this makes the node a useful organizational tool.
.. tip:: .. tip::
From this you can also make different values proportional to each other by adding From this you can also make different values proportional to each other by adding
a :doc:`Math Node </compositing/types/converter/math>` in between the different links. a :doc:`Math Node </compositing/types/utilities/math>` in between the different links.

View File

@ -15,6 +15,13 @@ For instance, an input can be:
These nodes generate the information that is passed to other nodes. These nodes generate the information that is passed to other nodes.
As such, they have no input sockets; only outputs. As such, they have no input sockets; only outputs.
.. toctree::
:maxdepth: 1
constant/index.rst
----------
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
@ -22,10 +29,11 @@ As such, they have no input sockets; only outputs.
image.rst image.rst
mask.rst mask.rst
movie_clip.rst movie_clip.rst
render_layers.rst
rgb.rst
scene_time.rst
texture.rst texture.rst
time_curve.rst
track_position.rst ----------
value.rst
.. toctree::
:maxdepth: 1
scene/index.rst

View File

@ -0,0 +1,12 @@
#########
Scene
#########
.. toctree::
:maxdepth: 1
render_layers.rst
scene_time.rst
time_curve.rst

View File

@ -48,7 +48,7 @@ Factor
.. hint:: Output values .. hint:: Output values
The :doc:`Map Value </compositing/types/vector/map_value>` The :doc:`Map Value </compositing/types/utilities/map_value>`
node can be used to map the output to a more appropriate value. node can be used to map the output to a more appropriate value.
With sometimes curves, it is possible that the Time Curve node With sometimes curves, it is possible that the Time Curve node
may output a number larger than one or less than zero. may output a number larger than one or less than zero.

View File

@ -1,7 +1,7 @@
############### ################
Matte Nodes Keying Nodes
############### ################
These nodes give you the essential tools for creating a :term:`Matte` for images These nodes give you the essential tools for creating a :term:`Matte` for images
that do not already have their own :term:`Alpha Channel`. that do not already have their own :term:`Alpha Channel`.
@ -18,7 +18,7 @@ Taking out too much green can result in foreground actors looking flat or bluish
You can and should chain these nodes together, You can and should chain these nodes together,
improving your masking and color correction in successive refinements, improving your masking and color correction in successive refinements,
using each node's strengths to operate on the previous node's output. using each node's strengths to operate on the previous node's output.
:doc:`Keying Node </compositing/types/matte/keying>` is the closest to a "does-it-all" node :doc:`Keying Node </compositing/types/keying/keying>` is the closest to a "does-it-all" node
for green screens, but the best results stem from a combination of techniques. for green screens, but the best results stem from a combination of techniques.
.. note:: .. note::
@ -34,26 +34,21 @@ for green screens, but the best results stem from a combination of techniques.
by the node. by the node.
Simple garbage mattes can be created with Simple garbage mattes can be created with
the :doc:`Box Mask </compositing/types/matte/box_mask>` or the :doc:`Box Mask </compositing/types/mask/box_mask>` or
the :doc:`Ellipse Mask </compositing/types/matte/ellipse_mask>`. the :doc:`Ellipse Mask </compositing/types/mask/ellipse_mask>`.
More complicated matte shapes using More complicated matte shapes using
a :doc:`Double Edge Mask </compositing/types/matte/double_edge_mask>` or a :doc:`Double Edge Mask </compositing/types/mask/double_edge_mask>` or
using a :doc:`Mask </compositing/types/input/mask>`. using a :doc:`Mask </compositing/types/input/mask>`.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
box_mask.rst
channel_key.rst channel_key.rst
chroma_key.rst chroma_key.rst
color_key.rst color_key.rst
color_spill.rst color_spill.rst
cryptomatte.rst
cryptomatte_legacy.rst
difference_key.rst difference_key.rst
distance_key.rst distance_key.rst
double_edge_mask.rst
ellipse_mask.rst
keying.rst keying.rst
keying_screen.rst keying_screen.rst
luminance_key.rst luminance_key.rst

View File

@ -22,7 +22,7 @@ Image
Key Color Key Color
The color of content to be removed. This may be a single color, The color of content to be removed. This may be a single color,
or a reference image such as generated by or a reference image such as generated by
the :doc:`Keying Screen Node </compositing/types/matte/keying_screen>`. the :doc:`Keying Screen Node </compositing/types/keying/keying_screen>`.
Garbage Matte Garbage Matte
An optional mask of area(s) to always *exclude* from the output. An optional mask of area(s) to always *exclude* from the output.
This is removed from the chroma key generated matte. This is removed from the chroma key generated matte.
@ -48,12 +48,12 @@ Despill Factor
Controls how much color bleed from the key color is removed from the input Controls how much color bleed from the key color is removed from the input
image: 0 means no despilling, 1 means all possible spilling will be removed. image: 0 means no despilling, 1 means all possible spilling will be removed.
The underlying implementation is the same as adjusting the *Unspill* amount The underlying implementation is the same as adjusting the *Unspill* amount
of the :doc:`Color Spill Node </compositing/types/matte/color_spill>`. of the :doc:`Color Spill Node </compositing/types/keying/color_spill>`.
Despill Balance Despill Balance
This controls how the color channels are compared when computing spill, This controls how the color channels are compared when computing spill,
affecting the hue and shade of the corrected colors. affecting the hue and shade of the corrected colors.
It is similar to setting the *Limiting Channel* It is similar to setting the *Limiting Channel*
in the :doc:`Color Spill Node </compositing/types/matte/color_spill>`. in the :doc:`Color Spill Node </compositing/types/keying/color_spill>`.
Edge Kernel Radius Edge Kernel Radius
Defines the radius in pixel used to detect an edge. Defines the radius in pixel used to detect an edge.
Edge Kernel Tolerance Edge Kernel Tolerance
@ -63,7 +63,7 @@ Edge Kernel Tolerance
Clip Black Clip Black
This sets the threshold for what becomes fully transparent in the output (black in the matte). This sets the threshold for what becomes fully transparent in the output (black in the matte).
It should be set as low as possible. Uneven backdrops will require this value to be increased. It should be set as low as possible. Uneven backdrops will require this value to be increased.
Use of the :doc:`Keying Screen Node </compositing/types/matte/keying_screen>` can help Use of the :doc:`Keying Screen Node </compositing/types/keying/keying_screen>` can help
keep this value low. You may also use a *Garbage Matte* to exclude problematic areas. keep this value low. You may also use a *Garbage Matte* to exclude problematic areas.
This value does not impact areas detected as edges to ensure edge detail is preserved. This value does not impact areas detected as edges to ensure edge detail is preserved.
@ -94,8 +94,8 @@ Image
Processed image with the *Matte* applied to the images' :term:`Alpha Channel`. Processed image with the *Matte* applied to the images' :term:`Alpha Channel`.
Matte Matte
Output matte to use for checking the quality of the key, or to manually apply Output matte to use for checking the quality of the key, or to manually apply
using a :doc:`Set Alpha Node </compositing/types/converter/set_alpha>` or using a :doc:`Set Alpha Node </compositing/types/color/set_alpha>` or
:doc:`Mix Node </compositing/types/color/mix>`. :doc:`Mix Node </compositing/types/color/mix/mix_color>`.
Edges Edges
Shows what edges were detected on the matte. Shows what edges were detected on the matte.
Useful for adjusting the *Edge Kernel Radius* and *Edge Kernel Tolerance*. Useful for adjusting the *Edge Kernel Radius* and *Edge Kernel Tolerance*.

View File

@ -49,7 +49,7 @@ Example
======= =======
Consider a node setup for green screen removal, using Consider a node setup for green screen removal, using
a :doc:`Color Key </compositing/types/matte/color_key>`: a :doc:`Color Key </compositing/types/keying/color_key>`:
.. figure:: /images/compositing_types_matte_keying-screen_key-usage.png .. figure:: /images/compositing_types_matte_keying-screen_key-usage.png
:width: 480px :width: 480px

View File

@ -21,7 +21,7 @@ that aren't suitable for chroma keying.
.. tip:: .. tip::
When compositing footage of something that emits light and has a dark background, When compositing footage of something that emits light and has a dark background,
like fire, a :doc:`Mix Node </compositing/types/color/mix>` using a *Screen* or like fire, a :doc:`Mix Node </compositing/types/color/mix/mix_color>` using a *Screen* or
*Add* operator will produce better results. *Add* operator will produce better results.

View File

@ -1,5 +1,4 @@
.. _composite-nodes-layout-index:
################ ################
Layout Nodes Layout Nodes
@ -7,7 +6,3 @@
These are nodes which help you control the layout and connectivity of nodes within the Compositor. These are nodes which help you control the layout and connectivity of nodes within the Compositor.
.. toctree::
:maxdepth: 1
switch.rst

View File

@ -61,4 +61,4 @@ Mask
.. tip:: .. tip::
For soft edges, pass the output mask through a slight :doc:`Blur node </compositing/types/filter/blur_node>`. For soft edges, pass the output mask through a slight :doc:`Blur node </compositing/types/filter/blur/blur>`.

View File

@ -21,7 +21,7 @@ and mattes will be anti-aliased and take into account effects like motion blur a
.. important:: .. important::
The Cryptomatte Legacy node is deprecated and replaced by The Cryptomatte Legacy node is deprecated and replaced by
:doc:`Cryptomatte Node </compositing/types/matte/cryptomatte>`. :doc:`Cryptomatte Node </compositing/types/mask/cryptomatte>`.
The legacy node will be removed in a future Blender release. The legacy node will be removed in a future Blender release.

View File

@ -62,5 +62,5 @@ Mask
.. tip:: .. tip::
For soft edges, pass the output mask through a slight :doc:`Blur node </compositing/types/filter/blur_node>`. For soft edges, pass the output mask through a slight :doc:`Blur node </compositing/types/filter/blur/blur>`.
For a vignette, pass the output of this through a heavy blur. For a vignette, pass the output of this through a heavy blur.

Some files were not shown because too many files have changed in this diff Show More