UI: Show Passepartout When All Overlays Off #104853
@ -241,3 +241,16 @@ RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/volume/volume_c
|
|||||||
RedirectMatch "^/manual/{lang}/{version}/editors/nla/editing.html" "^/manual/{lang}/{version}/editors/nla/editing/index.html"
|
RedirectMatch "^/manual/{lang}/{version}/editors/nla/editing.html" "^/manual/{lang}/{version}/editors/nla/editing/index.html"
|
||||||
|
|
||||||
RedirectMatch "^/manual/{lang}/{version}/render/shader_nodes/shader/anisotropic.html" "^/manual/{lang}/{version}/render/shader_nodes/shader/glossy.html"
|
RedirectMatch "^/manual/{lang}/{version}/render/shader_nodes/shader/anisotropic.html" "^/manual/{lang}/{version}/render/shader_nodes/shader/glossy.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/files/import_export.html" "^/manual/{lang}/{version}/files/import_export/index.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/render/eevee/light_probes/introduction.html" "^/manual/{lang}/{version}/render/eevee/light_probes/index.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/movie_clip/introduction.html" "^/manual/{lang}/{version}/movie_clip/index.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/getting_started/about/introduction.html" "^/manual/{lang}/{version}/getting_started/about/index.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/animation/armatures/bones/properties/introduction.html" "^/manual/{lang}/{version}/animation/armatures/bones/properties/index.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/advanced/command_line/introduction.html" "^/manual/{lang}/{version}/advanced/command_line/index.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/utilities/rotation/align_euler_to_vector.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/utilities/rotation/align_rotation_to_vector.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/modeling/modifiers/modify/normal_edit.html" "^/manual/{lang}/{version}/modeling/modifiers/normals/normal_edit.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/modeling/modifiers/modify/weighted_normal.html" "^/manual/{lang}/{version}/modeling/modifiers/normals/weighted_normal.html"
|
||||||
|
Binary file not shown.
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -27,4 +27,5 @@ Add-ons Category Listings
|
|||||||
animation/index.rst
|
animation/index.rst
|
||||||
import_export/index.rst
|
import_export/index.rst
|
||||||
node/index.rst
|
node/index.rst
|
||||||
|
rigging/index.rst
|
||||||
system/index.rst
|
system/index.rst
|
||||||
|
11
manual/addons/rigging/index.rst
Normal file
11
manual/addons/rigging/index.rst
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
###########
|
||||||
|
Rigging
|
||||||
|
###########
|
||||||
|
|
||||||
|
These add-ons relate to rigging and armatures.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
rigify/index.rst
|
276
manual/addons/rigging/rigify/basics.rst
Normal file
276
manual/addons/rigging/rigify/basics.rst
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
|
||||||
|
***********
|
||||||
|
Basic Usage
|
||||||
|
***********
|
||||||
|
|
||||||
|
.. _bpy.ops.pose.rigify_generate:
|
||||||
|
|
||||||
|
Basic Rig Generation
|
||||||
|
====================
|
||||||
|
|
||||||
|
#. Add a meta-rig structure from the :menuselection:`Add --> Armature` menu.
|
||||||
|
#. Edit the bone positions to match the character geometry.
|
||||||
|
#. In the armature properties click on the *Generate Rig* button to generate the rig.
|
||||||
|
|
||||||
|
|
||||||
|
Add a Predefined Meta-Rig
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Mode: Object Mode
|
||||||
|
:Menu: :menuselection:`Add --> Armature`
|
||||||
|
:Shortcut: :kbd:`Shift-A`
|
||||||
|
|
||||||
|
Rigify stores all the information required to generate complex rig controls and mechanism in
|
||||||
|
more simple armatures called "meta-rigs".
|
||||||
|
|
||||||
|
The predefined meta-rigs can be found in the *Add* menu.
|
||||||
|
Currently available meta-rig types are:
|
||||||
|
|
||||||
|
- Basic Human (doesn't include face and fingers)
|
||||||
|
- Basic Quadruped
|
||||||
|
- Human
|
||||||
|
- Cat
|
||||||
|
- Wolf
|
||||||
|
- Horse
|
||||||
|
- Shark
|
||||||
|
|
||||||
|
|
||||||
|
Edit Bone Positions
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
To correctly match your character, meta-rig bones must be moved to correct positions.
|
||||||
|
This can be achieved in two different ways: Pose Mode or Edit Mode.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Rigify assumes that 1 unit corresponds to 1 meter. So a human is about 2 units tall.
|
||||||
|
If your character is in a different scale and you are more familiar with modeling rather than rigging,
|
||||||
|
it is suggested to scale it to Rigify dimensions before positioning the meta-rig bones.
|
||||||
|
If you want to scale the character's geometry, we suggest you to first scale up the character in Object Mode,
|
||||||
|
then apply the geometry scale with the *Apply Scale* tool.
|
||||||
|
|
||||||
|
|
||||||
|
Rigify Human Alignment Tips
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
- Limbs: Keep the legs as straight as possible in the front view (Rigify human works better in predictable cases).
|
||||||
|
Give the knee and the elbow a slight bend angle (Rigify needs to know where your knee/elbow is pointing).
|
||||||
|
- Torso: Keep the spine as straight as possible in the front view (Rigify human works better in predictable cases).
|
||||||
|
The last bone of the spine is the head. By default the next two bones (top to bottom)
|
||||||
|
are considered the neck bones. It is suggested to keep the neck bones as aligned as possible while editing.
|
||||||
|
- Face: Positioning face bones can be tricky if you are not an expert in bone editing and
|
||||||
|
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.
|
||||||
|
If you don't need the face all the face bones can be deleted.
|
||||||
|
All the face bones are in the *Face* armature bone collection by default.
|
||||||
|
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.
|
||||||
|
|
||||||
|
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).
|
||||||
|
The face master bone is placed in the same position of the head bone.
|
||||||
|
To select it easily, hide all other bone collections.
|
||||||
|
|
||||||
|
For more tips, see the :doc:`Positioning Guide </addons/rigging/rigify/bone_positioning>`.
|
||||||
|
|
||||||
|
|
||||||
|
Pose Mode Matching (Basic)
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Enter the meta-rig Pose Mode. Rotate, scale, and translate the bones in the correct position.
|
||||||
|
When bones are in correct positions (always staying in Pose Mode)
|
||||||
|
use :menuselection:`Apply --> Apply Pose As Rest Pose`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Connected bones cannot be translated in Pose Mode.
|
||||||
|
You can scale the parent bones to match the general length and then refine child bones scale.
|
||||||
|
For more detailed information on armature modes please refer to
|
||||||
|
the :doc:`armatures section </animation/armatures/bones/editing/introduction>`.
|
||||||
|
|
||||||
|
|
||||||
|
Edit Mode Matching (Advanced)
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Some basic armature display setup is suggested before entering bone Edit Mode.
|
||||||
|
|
||||||
|
With the meta-rig selected, go in the Properties and click on the Object tab.
|
||||||
|
Scroll down to the display panel and enable X-ray and under *Maximum Draw Type* selector select *Wire*.
|
||||||
|
This way the bones will always be drawn in wireframe on top of your geometry.
|
||||||
|
|
||||||
|
Then, always in the Properties click on the Armatures tab and under display check the *Axis* checkbox.
|
||||||
|
This way you the bones rotation axes will be displayed during the edit process.
|
||||||
|
|
||||||
|
For more detailed information on armature display modes please refer to
|
||||||
|
the :doc:`Display panel page </animation/armatures/properties/display>`.
|
||||||
|
|
||||||
|
|
||||||
|
Generating the Rig
|
||||||
|
------------------
|
||||||
|
|
||||||
|
With the bones in the correct positions, jump back in Object Mode, go to the Armature tab,
|
||||||
|
scroll down to the bottom and click on the *Generate Rig* button to finalize the rig creation.
|
||||||
|
The generation process will take from few seconds to one minute depending on
|
||||||
|
rig complexity and hardware specifications of your machine.
|
||||||
|
If the generated rig needs tweaking, you can modify the meta-rig accordingly and
|
||||||
|
then click again on the generate button. If the rig already exists,
|
||||||
|
Rigify will simply overwrite it retaining all your modifiers and constraints and -- where possible --
|
||||||
|
all the previously generated features.
|
||||||
|
|
||||||
|
For information about additional generation options, see the `Advanced Rig Generation`_ section.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
If the metarig uses the legacy :doc:`face rig <./rig_types/faces>`, you can use the
|
||||||
|
*Upgrade Face Rig* button that appears above *Generate Rig* to automatically upgrade
|
||||||
|
to the new modular face system.
|
||||||
|
|
||||||
|
The upgrade will preserve compatibility with existing skinning, but existing poses and
|
||||||
|
animations will likely not be compatible due to subtle changes in control behavior.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
To make the rig overwriting work as expected, you need to have **both** the rig and
|
||||||
|
the meta-rig visible before generating again. Rigify will try to unhide them in simple
|
||||||
|
cases, but will abort generation if that fails.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
As with all Python add-ons, Blender interface cannot be updated until the Python script execution is over.
|
||||||
|
Wait until the rig appears to see the results.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Rigify is designed assuming a workflow where the meta-rig is kept available to allow re-generating
|
||||||
|
the main rig whenever it is necessary to make changes to it. Removing the meta-rig after generating
|
||||||
|
the main rig, or significantly modifying the generated rig is not advised: it will make it impossible
|
||||||
|
to introduce features added in later versions of Rigify, or easily adapt it to breaking changes in later
|
||||||
|
Blender versions. In general, automatic version update scripts will be provided for meta-rigs when necessary,
|
||||||
|
but not generated rigs.
|
||||||
|
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
- 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
|
||||||
|
teeth geometry through Child Of constraints.
|
||||||
|
- 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!).
|
||||||
|
|
||||||
|
For more detailed information on bone collections, Armature modifier and weight painting refer to the Blender manual.
|
||||||
|
|
||||||
|
|
||||||
|
.. _bpy.types.Armature.rigify:
|
||||||
|
|
||||||
|
Advanced Rig Generation
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Advanced Options Features
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
By using options in the Advanced sub-panel, it is possible to:
|
||||||
|
|
||||||
|
- Generate more than one rig per scene.
|
||||||
|
- Update/Override a specific rig.
|
||||||
|
- Force previously generated widget objects to be overwritten.
|
||||||
|
- Choose whether to use linked duplicates for left and right side widgets.
|
||||||
|
- Execute a script data-block after generation.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Rig Name
|
||||||
|
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 this field is empty, the new object will be named based on the name of the metarig according
|
||||||
|
to the following rules:
|
||||||
|
|
||||||
|
* If the name contains ``META``, it is replaced with ``RIG``.
|
||||||
|
* If the name contains ``metarig``, it is replaced with ``rig``.
|
||||||
|
* Otherwise, ``RIG-`` is prepended to the name.
|
||||||
|
|
||||||
|
When overwriting an existing rig object specified by the *Target Rig* option, its name is not changed,
|
||||||
|
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::
|
||||||
|
|
||||||
|
When the option isn't set, Rigify will create a brand new rig object even if an object
|
||||||
|
with a matching name already exists.
|
||||||
|
|
||||||
|
Rig UI Script :guilabel:`auto`
|
||||||
|
This option specifies the generated script datablock to overwrite when re-generating, and
|
||||||
|
works in the same manner as *Target Rig*.
|
||||||
|
|
||||||
|
The script controls the UI in the 3D Viewport that allows conveniently switching visible
|
||||||
|
bone collections, changing custom properties, converting between IK and FK and so on.
|
||||||
|
|
||||||
|
Widgets Collection :guilabel:`auto`
|
||||||
|
This reference specifies the collection containing generated widgets, and
|
||||||
|
works in the same manner as *Target Rig*.
|
||||||
|
|
||||||
|
Overwrite Widget Meshes
|
||||||
|
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,
|
||||||
|
allowing them to be manually edited to fit the character better.
|
||||||
|
|
||||||
|
Mirror Widgets
|
||||||
|
When enabled, Rigify generates widgets for left and right side bones as
|
||||||
|
linked duplicates, using negative X scale to flip the right side version.
|
||||||
|
This enforces symmetry and reduces the number of meshes to adjust to
|
||||||
|
fit the character.
|
||||||
|
|
||||||
|
When reusing an already generated widget, Rigify detects if it was originally generated mirrored
|
||||||
|
by checking object scale to avoid flipping existing controls. Therefore switching to mirrored
|
||||||
|
widgets for an existing character requires deleting the right side widgets, or *Force Widget Update*.
|
||||||
|
|
||||||
|
Run Script
|
||||||
|
It is possible to configure Rigify to execute a Python script contained in a text data-block
|
||||||
|
after generation in order to apply user-defined customizations. The script is executed with
|
||||||
|
the generated rig active and selected in Object Mode.
|
||||||
|
|
||||||
|
The simplest use of this may be adjusting properties of generated constraints when Rigify rig types
|
||||||
|
don't have any relevant meta-rig settings. That can be done by using the *Copy Full Data Path*
|
||||||
|
context menu option on the property, pasting it into the script and making an assignment, e.g.::
|
||||||
|
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
bpy.data.objects["rig"].pose.bones["MCH-spine.003"].constraints[0].influence = 0.6
|
||||||
|
|
||||||
|
Doing such changes via a script ensures they aren't lost if the rig is re-generated.
|
||||||
|
|
||||||
|
Users familiar with `Rigify scripting <https://developer.blender.org/docs/features/animation/rigify/>`__
|
||||||
|
can import Rigify utility modules, and access the generator instance through ``rigify.get_generator()``.
|
||||||
|
Yet note that, since generation is already finished, the only use of that is reading data created
|
||||||
|
in the generation process.
|
||||||
|
|
||||||
|
|
||||||
|
Library Linking
|
||||||
|
===============
|
||||||
|
|
||||||
|
When linking a rig into another file, you generally want to create a collection that includes
|
||||||
|
the generated rig and the character mesh. You do not need to include the meta-rig or the widget
|
||||||
|
object collection. You then link in the collection and run
|
||||||
|
:ref:`Make Library Override <bpy.ops.object.make_override_library>`.
|
||||||
|
|
||||||
|
The ``rig_ui_template.py`` text data-block responsible for the rig UI
|
||||||
|
will be automatically linked along with the rig, you don't need to link it separately.
|
||||||
|
However, the script will not run until you run it manually from the Text editor or save and restart Blender.
|
220
manual/addons/rigging/rigify/bone_positioning.rst
Normal file
220
manual/addons/rigging/rigify/bone_positioning.rst
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
|
||||||
|
**********************
|
||||||
|
Bone Positioning Guide
|
||||||
|
**********************
|
||||||
|
|
||||||
|
Face Bones
|
||||||
|
==========
|
||||||
|
|
||||||
|
Start by identifying basic face landmarks to follow as guide for bones placement.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-landmarks.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Basic Face Landmarks.
|
||||||
|
|
||||||
|
- Orange lines represent bones that should be placed in closed loops.
|
||||||
|
- Yellow lines represent bones whose position depends on surrounding bone loops.
|
||||||
|
- Red lines represent outer edge bones.
|
||||||
|
- Purple lines represent bridging bones used to cover deforming flesh.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-eyes-nose-landmarks.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Eyes-Nose Landmarks.
|
||||||
|
|
||||||
|
The eyes-nose loop area is split in different parts identified by bone names. Follow the image to place the bones.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-eyes-nose-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Eyes-Nose Bone Positions.
|
||||||
|
|
||||||
|
.. tip:: Brow Placement
|
||||||
|
|
||||||
|
Keeping aligned the mid bones in "brow", "brow.b", "lid.t", "lid.t" and
|
||||||
|
cheek will give better results after rig generation.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-jaw-ear-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Jaw-Ear Bone Positions.
|
||||||
|
|
||||||
|
Also the jaw-ear area is split in different parts identified by bone names. Follow the image to place the bones.
|
||||||
|
|
||||||
|
.. tip:: Jaw Placement
|
||||||
|
|
||||||
|
Try to place "ear.L" bone covering the part of the ear attached to the mandible (lower jaw).
|
||||||
|
Do the same with temple bone trying to cover the part you don't want to move with the jaw,
|
||||||
|
this way you will also determine the jaw pivot position.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-lips-merge-point.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Lips Merge Point.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
While moving the face bones it is necessary to preserve merge points, i.e. whenever heads
|
||||||
|
or tails of two or more bones overlap at the same point, they should still do so after
|
||||||
|
repositioning. Tearing a merge point apart may result in multiple controls being created
|
||||||
|
instead of one, or even the generation of errors.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-stretcher-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Face Stretcher Bones.
|
||||||
|
|
||||||
|
After the main face bones are placed use the cheek bone to connect the eye-nose area to the jaw mouth area.
|
||||||
|
Then do the same with the brow area. This process will automatically define face muscles compression areas.
|
||||||
|
|
||||||
|
Position the eye bones in the eye pivot point facing right **toward** the face on the Y axis.
|
||||||
|
The length of the eye bones should correspond to the radius of the eye.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-eyes-pivot-position.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Eyes Pivot Position.
|
||||||
|
|
||||||
|
.. tip:: Eye Pivot
|
||||||
|
|
||||||
|
If your eye has a spherical shape you can define its pivot by entering Edit Mode.
|
||||||
|
Select two opposite vertices on the center meridian -- or the opposite poles -- and
|
||||||
|
snapping the cursor to selection by pressing :menuselection:`Snap --> Cursor To Selected`.
|
||||||
|
If your eye is a complete sphere and its location it's not applied, then you can just use its center of mass.
|
||||||
|
|
||||||
|
Finally position the teeth bones on your teeth geometry and the tongue bone chain as described in the figure.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_face-mouth-teeth-positions.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Mouth and Teeth Positions.
|
||||||
|
|
||||||
|
.. tip:: Tongue
|
||||||
|
|
||||||
|
The tongue will work better if the bones are aligned at the symmetry line.
|
||||||
|
|
||||||
|
Before generating the rig ensure the face master bone is facing upward.
|
||||||
|
|
||||||
|
|
||||||
|
Torso Bones
|
||||||
|
===========
|
||||||
|
|
||||||
|
Start by identifying on your character basic torso zones to follow as guide for bones placement.
|
||||||
|
|
||||||
|
Head, chest and pelvis are rigid zones, so they require less bones.
|
||||||
|
Having a good edge loop placement around zone boundaries on your model
|
||||||
|
will help in having correct deformation after armature binding.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_torso-landmarks.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Torso Landmarks.
|
||||||
|
|
||||||
|
Starting from the side view, place the main spine bones trying to use
|
||||||
|
one bone for the rigid areas and two for the flexible ones.
|
||||||
|
In addition to the main spine, the torso is provided with additional pelvis bones (to oppose the leg bending),
|
||||||
|
two breast controls and two shoulder bones.
|
||||||
|
|
||||||
|
Even if the pelvis bones will not appear in the final rig as controls, they will contribute to deformation.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_torso-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Torso Bones Positioning.
|
||||||
|
|
||||||
|
.. tip:: Bone Placement
|
||||||
|
|
||||||
|
Try to keep the spine as centered as possible inside the mesh bounding volume,
|
||||||
|
just apply a slight offset toward the back. In a similar way, consider the shoulder bones as general deformers;
|
||||||
|
placing it too forward -- where the collar bone should be -- could cause undesired deformations.
|
||||||
|
|
||||||
|
|
||||||
|
Limbs Bones
|
||||||
|
===========
|
||||||
|
|
||||||
|
While placing the arm bones try to start having a straight line that goes from
|
||||||
|
the shoulder to the hand in both front and top view. After this is done just add a slight bend to the elbow.
|
||||||
|
This can be easily done by going in the top view, entering armature Edit Mode and
|
||||||
|
sliding the bone junction between forearm and upper_arm slightly toward the world's Y axis.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_limbs-arm-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Arm Bones Positioning.
|
||||||
|
|
||||||
|
For the leg you can follow a similar process. Start by aligning the leg bones creating a straight line from
|
||||||
|
the hips to the ankle, then place the foot and the toe accordingly.
|
||||||
|
Remember to add a slight bend to the knee. This can be easily done by going in the side view,
|
||||||
|
entering armature Edit Mode and sliding the bone junction between thigh and shin slightly toward the world's Y axis.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_limbs-leg-bones.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Leg Bones Positioning.
|
||||||
|
|
||||||
|
Finally align the heel bone by going in the front view and placing the head and tail to
|
||||||
|
fill the foot size from side to side. Then, in the side view,
|
||||||
|
align the bone at the point where the heel just touches the ground floor.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
From version 0.5 and above there is no more need of manual bone rolls alignment.
|
||||||
|
The generate function will take care of that for you by evaluating it from bend axis;
|
||||||
|
just insert a slight bend in your limb and it's done!
|
||||||
|
If you need more control on the orientation, follow the guidelines described in Advanced Usage.
|
||||||
|
|
||||||
|
|
||||||
|
Fingers Bones
|
||||||
|
=============
|
||||||
|
|
||||||
|
Start by placing, finger by finger, all the knuckles in place.
|
||||||
|
|
||||||
|
.. tip:: Fingers Placement
|
||||||
|
|
||||||
|
An easy and effective method to do this operation is to select on the mesh
|
||||||
|
the corresponding edge loop in Edit Mode and use the *Cursor to Selection* snap.
|
||||||
|
Then you can snap the bone to the corresponding loop using the *Selection to Cursor* snap.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_fingers-edge-loops.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Knuckles Edge Loops and Cursor Snapping.
|
||||||
|
|
||||||
|
Finalize the positioning by taking care of bone rolls (the X axis is set as bend axis).
|
||||||
|
|
||||||
|
.. tip:: Bone Roll
|
||||||
|
|
||||||
|
Finger axis alignment can be easily be made consistent by selecting all the finger bones
|
||||||
|
and recalculating the bone rolls :menuselection:`Recalculate Roll --> Global -Z Axis`.
|
||||||
|
|
||||||
|
Thumb may require more tweaking depending on your character's mesh topology,
|
||||||
|
usually :menuselection:`Recalculate Roll --> Global +Y Axis` is a good starting point.
|
||||||
|
|
||||||
|
Once your bone rolls are consistent, try generating the rig and scaling the finger master controls.
|
||||||
|
This should cause the fingers to curl. If they are rotating on the wrong axis,
|
||||||
|
change the Bend Rotation Axis parameter on the first finger's parameters under Rigify Type.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_fingers-bend-axis.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Fingers Bend Axis.
|
||||||
|
|
||||||
|
When the fingers are in place proceed placing the palm bones.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_bone-positioning_fingers-palm-alignment.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Palm Alignment.
|
||||||
|
|
||||||
|
.. tip:: Palm Placement
|
||||||
|
|
||||||
|
Try to keep palm bones' heads at a little distance between each other.
|
||||||
|
This distance is required for Rigify to define the palm controls hierarchy.
|
||||||
|
Palm axis alignment can be easily done by selecting all the palm bones and
|
||||||
|
recalculating the bone rolls :menuselection:`Recalculate Roll --> Global -Z Axis`.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
For more detailed information on bones and rolls refer to
|
||||||
|
the :doc:`Bone Structure </animation/armatures/bones/structure>` and :ref:`armature-bone-roll`.
|
26
manual/addons/rigging/rigify/feature_sets.rst
Normal file
26
manual/addons/rigging/rigify/feature_sets.rst
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
************
|
||||||
|
Feature Sets
|
||||||
|
************
|
||||||
|
|
||||||
|
Rigify allows third party developers to implement sub-addons, called *Feature Sets*,
|
||||||
|
which can provide new :doc:`Meta-Rigs </addons/rigging/rigify/metarigs>` and
|
||||||
|
:doc:`Rig Types </addons/rigging/rigify/rig_types/index>`. Similar to regular add-ons,
|
||||||
|
they can be installed from zip-files through Rigify settings.
|
||||||
|
|
||||||
|
These are some examples of *Feature Sets* currently provided by past and current Rigify developers:
|
||||||
|
|
||||||
|
`Cessen's Rigify Extensions <https://github.com/cessen/cessen_rigify_ext>`__
|
||||||
|
This feature set provides the original Rigify rigs by Nathan Vegdahl, minimally ported
|
||||||
|
and repackaged to work without switching Rigify to legacy mode. Note that their names
|
||||||
|
were changed, so meta-rigs designed for legacy mode aren't directly compatible.
|
||||||
|
|
||||||
|
`Experimental Rigs by Alexander Gavrilov <https://github.com/angavrilov/angavrilov-rigs>`__
|
||||||
|
Rig experiments, some of which might be included in Rigify in the future. Examples include
|
||||||
|
limbs with an extra IK system based at knee/elbow, a spline based tentacle, and more.
|
||||||
|
|
||||||
|
You can install these packages by clicking :menuselection:`Clone --> Download ZIP`,
|
||||||
|
and then install the downloaded file through Rigify settings.
|
||||||
|
|
||||||
|
Developer documentation is available on the `Blender Developer Documentation
|
||||||
|
<https://developer.blender.org/docs/features/animation/rigify/>`__.
|
53
manual/addons/rigging/rigify/index.rst
Normal file
53
manual/addons/rigging/rigify/index.rst
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
##########
|
||||||
|
Rigify
|
||||||
|
##########
|
||||||
|
|
||||||
|
Basics
|
||||||
|
======
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
introduction.rst
|
||||||
|
basics.rst
|
||||||
|
bone_positioning.rst
|
||||||
|
rig_features.rst
|
||||||
|
|
||||||
|
|
||||||
|
Customization
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
metarigs.rst
|
||||||
|
rig_types/index.rst
|
||||||
|
|
||||||
|
|
||||||
|
Extensions
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
feature_sets.rst
|
||||||
|
|
||||||
|
|
||||||
|
Development
|
||||||
|
===========
|
||||||
|
|
||||||
|
Developer documentation is available on
|
||||||
|
the `Blender Developer Documentation <https://developer.blender.org/docs/features/animation/rigify/>`__.
|
||||||
|
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Category: Rigging
|
||||||
|
:Description: Automatic rigging from building-block components.
|
||||||
|
:Location: :menuselection:`Properties --> Armature, Bone`, :menuselection:`3D Viewport --> Tools panel`,
|
||||||
|
:menuselection:`3D Viewport --> Add menu --> Armature`
|
||||||
|
:File: rigify folder
|
||||||
|
:Author: Nathan Vegdahl, Lucio Rossi, Ivan Cappiello, Alexander Gavrilov
|
||||||
|
:License: GPL
|
||||||
|
:Note: This add-on is bundled with Blender.
|
56
manual/addons/rigging/rigify/introduction.rst
Normal file
56
manual/addons/rigging/rigify/introduction.rst
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
|
||||||
|
************
|
||||||
|
Introduction
|
||||||
|
************
|
||||||
|
|
||||||
|
Rigify helps automate the creation of character rigs. It is based around a building-block approach,
|
||||||
|
where you build complete rigs out of smaller rig parts (e.g. arms, legs, spines, fingers...).
|
||||||
|
The rig parts are currently few in number, but as more rig parts are added to
|
||||||
|
Rigify it should become more and more capable of rigging a large variety of characters and creatures.
|
||||||
|
|
||||||
|
Rigify also operates on the principle that once a rig is created, that rig should no longer need Rigify.
|
||||||
|
This means you can always distribute rigs created with Rigify to people
|
||||||
|
who do not have it and the rigs will still function completely.
|
||||||
|
|
||||||
|
It is important to note that Rigify only automates the creation of the rig controls and bones.
|
||||||
|
It does not attach the rig to a mesh, so you still have to do skinning etc. yourself.
|
||||||
|
|
||||||
|
|
||||||
|
Main Features
|
||||||
|
=============
|
||||||
|
|
||||||
|
Modular rigging
|
||||||
|
Rigify build blocks can be mixed together to rig any character you want.
|
||||||
|
If you need to build a character with five arms and one leg,
|
||||||
|
Rigify can handle it for you creating all the required complex controls system
|
||||||
|
(FK, IK, and all the relative snapping tools and the UI) in few seconds.
|
||||||
|
|
||||||
|
Nondisruptive re-rig
|
||||||
|
If the generated rig doesn't fit all the features you need or, for example,
|
||||||
|
you decide to add something more to your character (like a sixth arm or a tail),
|
||||||
|
you can re-generate your rig without losing your previously generated features and your animation data.
|
||||||
|
|
||||||
|
Advanced and flexible feature set for character animation
|
||||||
|
The included rig samples (limbs, spines, tails, fingers, faces...) adds to all the stretchy FK/IK features
|
||||||
|
a direct deformation secondary layer that lets you flex, bend and deform the character as you like
|
||||||
|
through interactive Bendy Bones controls.
|
||||||
|
|
||||||
|
Shareable animation through all Rigify rigs
|
||||||
|
Since the control system is generated by Rigify, if you share a meta-rig through different characters
|
||||||
|
you will be able to share data between them even if they have different proportions.
|
||||||
|
|
||||||
|
Extendable feature set
|
||||||
|
You can save and encode your meta-rigs to a button to have them available at any time
|
||||||
|
without recreating it by hand or share your meta-rigs with other people.
|
||||||
|
Through Python scripting you can also extend Rigify with new Rigify-types or new rig samples
|
||||||
|
by implementing your own :doc:`feature set <./feature_sets>` package.
|
||||||
|
|
||||||
|
Ready to go
|
||||||
|
Once you generate your rig you won't need Rigify or any other add-on to use it.
|
||||||
|
|
||||||
|
|
||||||
|
Activation
|
||||||
|
==========
|
||||||
|
|
||||||
|
- Open Blender and go to Preferences then the Add-ons tab.
|
||||||
|
- Click Rigging then Rigify to enable the script.
|
397
manual/addons/rigging/rigify/metarigs.rst
Normal file
397
manual/addons/rigging/rigify/metarigs.rst
Normal file
@ -0,0 +1,397 @@
|
|||||||
|
|
||||||
|
******************
|
||||||
|
Creating Meta-rigs
|
||||||
|
******************
|
||||||
|
|
||||||
|
#. 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.
|
||||||
|
#. 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.
|
||||||
|
|
||||||
|
|
||||||
|
How Rigify Works
|
||||||
|
================
|
||||||
|
|
||||||
|
Rigify Meta-Rigs are split in multiple Sub-Rigs
|
||||||
|
A meta-rig is an assembly of bone chains. A bone chain is identified by the *Connected* attribute.
|
||||||
|
Bone chains can be further connected together by parenting them without using the *Connected* attribute
|
||||||
|
(i.e. using the *Keep Offset* option while parenting).
|
||||||
|
|
||||||
|
A custom attribute is set on the first bone of the sub-rig chain
|
||||||
|
Each first bone of a bone chain has a custom attribute on it which is a Rigify custom property
|
||||||
|
that identifies the sub-rig type. At rig generation time Rigify will determine which controls and
|
||||||
|
deform bones will be created processing the meta-rig from the first bone to the last of each chain.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_split-samples.png
|
||||||
|
|
||||||
|
Human meta-rig split by samples.
|
||||||
|
|
||||||
|
New meta-rigs are created assembling sub-rigs samples
|
||||||
|
Since a meta-rig is just a collection of sub-rigs,
|
||||||
|
new meta-rigs can be built assembling sub-rigs in different ways.
|
||||||
|
This way an infinite number of meta-rigs can be built from the same rigging blocks.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_built-samples.png
|
||||||
|
|
||||||
|
Cat meta-rig built by samples.
|
||||||
|
|
||||||
|
All the mechanics, deformation bones and widget are created on a single click
|
||||||
|
The meta-rig contains more information than the visualized bones.
|
||||||
|
In fact at generation time Rigify will identify each sub-rig type and depending on
|
||||||
|
the selected options will create all the sophisticated controls, switches, and
|
||||||
|
deforming bones with a single click.
|
||||||
|
|
||||||
|
|
||||||
|
Creating a new Meta-rig
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Add a new Armature Object
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Mode: Object Mode
|
||||||
|
:Menu: :menuselection:`Add --> Armature --> Single Bone`
|
||||||
|
:Shortcut: :kbd:`Shift-A`
|
||||||
|
|
||||||
|
Building your own meta-rig from scratch requires an armature object to work with.
|
||||||
|
Just add a single bone from the *Add* menu.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
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
|
||||||
|
so it will always be clear on which armature you have to work when editing the meta-rig structure.
|
||||||
|
|
||||||
|
|
||||||
|
Editing the Armature
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Now that there is an armature object to work -- with the armature selected -- enter armature Edit Mode.
|
||||||
|
Building a meta-rig from scratch in Edit Mode can be done in two ways:
|
||||||
|
|
||||||
|
#. Adding rig samples.
|
||||||
|
#. Creating bone chains.
|
||||||
|
|
||||||
|
|
||||||
|
Adding Samples (Basic)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
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.
|
||||||
|
To add a rig sample:
|
||||||
|
|
||||||
|
#. Go in the armature tab.
|
||||||
|
#. Scroll down to Rigify panel.
|
||||||
|
#. Select a sample from the list.
|
||||||
|
#. Click on the *Add sample* button.
|
||||||
|
#. Edit the bone positions to match your character.
|
||||||
|
|
||||||
|
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)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_rigify-type-panel.png
|
||||||
|
: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::
|
||||||
|
|
||||||
|
Each sub rig has a required number of bones as input. If you are unsure on how to use rig-types properties,
|
||||||
|
add a rig sample to your armature to see how it is supposed to be used.
|
||||||
|
|
||||||
|
|
||||||
|
Preserved Bone Properties
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Certain properties of the metarig bones are often copied to the generated rig control, deform and mechanism bones.
|
||||||
|
|
||||||
|
The exact set depends on the sub-rig and the specific generated bone, and the sub-rig may override some properties
|
||||||
|
even when it preserves others from the same subset, but there are certain common patterns:
|
||||||
|
|
||||||
|
Parenting Settings
|
||||||
|
This subset consists of the parent ORG bone, Use Connect, Use Inherit Rotation, Use Local Location, and Inherit
|
||||||
|
Scale.
|
||||||
|
|
||||||
|
It is usually copied to deform bones, FK controls, and in other cases where the sub-rig doesn't have a reason
|
||||||
|
to completely override them.
|
||||||
|
Bendy Bone Settings (Edit Mode)
|
||||||
|
Consist of the segment count, Vertex Mapping Mode, Ease In/Out, Roll In/Out, Curve In/Out and Scale In/Out.
|
||||||
|
|
||||||
|
The segment count is often overridden via a sub-rig option, but other settings are usually copied to deform
|
||||||
|
bones as is.
|
||||||
|
Transformation Settings
|
||||||
|
Consist of the rotation mode, pose mode rotation values, and channel locks.
|
||||||
|
|
||||||
|
These settings are usually copied to FK controls.
|
||||||
|
Custom Properties
|
||||||
|
Usually copied to one of the controls generated based on the metarig bone (mainly FK). Intra-armature drivers
|
||||||
|
that access the property are retargeted to the copied instance.
|
||||||
|
Custom Widget
|
||||||
|
Usually copied to one of the controls generated based on the metarig bone (mainly FK), and suppresses automatic
|
||||||
|
generation of a widget for the bone if specified.
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
This allows changing the rest position of the root bone, assigning a custom widget,
|
||||||
|
or adding custom properties to the bone.
|
||||||
|
|
||||||
|
The custom root bone must have no parent, and use the :ref:`basic.raw_copy <rigify.rigs.basic.raw_copy>` sub-rig
|
||||||
|
type or none.
|
||||||
|
|
||||||
|
|
||||||
|
.. _bpy.ops.Armature.rigify_apply_selection_colors:
|
||||||
|
.. _bpy.ops.Armature.rigify_add_bone_groups:
|
||||||
|
.. _bpy.types.Armature.rigify_colors:
|
||||||
|
.. _bpy.types.Armature.rigify_colors_lock:
|
||||||
|
.. _bpy.types.Armature.rigify_theme_to_add:
|
||||||
|
.. _bpy.types.Armature.rigify_colors_index:
|
||||||
|
.. _bpy.types.RigifySelectionColors:
|
||||||
|
.. _bpy.types.RigifyArmatureLayer:
|
||||||
|
|
||||||
|
Color Sets
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_color-sets-panel.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
The Color Sets panel is used to define the bone color scheme for the final rig. The colors from the list
|
||||||
|
can be associated with bone collections from the relevant panel.
|
||||||
|
|
||||||
|
The top two rows of the Color Sets panel are used to define the general behavior of the bone colors.
|
||||||
|
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
|
||||||
|
active can be tricky since each color will have its corresponding state.
|
||||||
|
|
||||||
|
To override this behavior Rigify unifies the active and selected states using the same color.
|
||||||
|
This is defined by two values:
|
||||||
|
|
||||||
|
Unified Selected/Active Colors
|
||||||
|
When this option is active adding a bone group in the list will always keep the colors consistent.
|
||||||
|
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.
|
||||||
|
|
||||||
|
Selected/Active Colors
|
||||||
|
This two color fields define respectively the *Selected* and *Active* colors.
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
|
||||||
|
Color Sets can be added and deleted by clicking on the ``+`` or ``-`` buttons.
|
||||||
|
All color sets can be deleted at once by clicking on the Specials menu.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
.. _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.
|
||||||
|
|
||||||
|
Actions
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_actions-list-panel.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
The :doc:`Action </animation/constraints/relationship/action>` constraint allows applying poses defined
|
||||||
|
by an action to bones based on the transformation of another bone. This requires adding the constraint to every
|
||||||
|
bone affected by the action, which is very tedious. For this reason, Rigify includes a system to do this
|
||||||
|
automatically through the Actions panel.
|
||||||
|
|
||||||
|
The panel defines a list of actions to be applied to the generated rig bones. Each action must be listed only once.
|
||||||
|
|
||||||
|
The list entries show the name of the action, the trigger (a bone or a corrective action driven by two others), and
|
||||||
|
a checkbox that can be used to temporarily disable applying this action to the rig. The icon at the start of the entry
|
||||||
|
is changed from an action icon to a link icon to highlight corrective actions that depend on the active normal one,
|
||||||
|
or normal actions used by the active corrective action.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The Action constraints are added to the bones in such an order as to exactly reproduce the intended deformation,
|
||||||
|
assuming the actions were created (posed and keyframed) in the order listed.
|
||||||
|
|
||||||
|
Normal Actions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_actions-normal-panel.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
Normal actions are applied based on the transformation of a specific control bone from the generated rig.
|
||||||
|
They have the following properties:
|
||||||
|
|
||||||
|
Control Bone
|
||||||
|
Specifies the bone that drives the action.
|
||||||
|
Symmetrical
|
||||||
|
If the control bone has a suffix that specifies that it belongs to the left or right side, this option can
|
||||||
|
be enabled to automatically apply symmetry.
|
||||||
|
|
||||||
|
When enabled, left-side bones keyframed in the action will be controlled by the left-side control, and right-side
|
||||||
|
bones by the right side control. Bones that don't have a a side suffix are assumed to belong to the center of the
|
||||||
|
character. They are rigged with two Action constraints with influence 0.5 that are controlled by each of the
|
||||||
|
control bones.
|
||||||
|
Frame Start & End
|
||||||
|
Specifies the frame range of the action that will be used by the created constraints.
|
||||||
|
Target Space, Transform Channel
|
||||||
|
Specifies the coordinate space and transformation channel of the target bone that should be used.
|
||||||
|
Min, Max
|
||||||
|
Specifies the range of the transformation channel values that is mapped to the specified action frame range.
|
||||||
|
Default Frame
|
||||||
|
Shows the frame within the action that maps to the neutral value (1 for scale and 0 otherwise)
|
||||||
|
of the transformation channel, as computed from the specified range values.
|
||||||
|
|
||||||
|
Corrective Actions
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_metarigs_actions-corrective-panel.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
Corrective actions are applied based on the progress of two other actions from the list, and are used to improve
|
||||||
|
the pose when they are used together.
|
||||||
|
|
||||||
|
Frame Start & End
|
||||||
|
Specifies the frame range of the action that will be used by the created constraints.
|
||||||
|
Trigger A & B
|
||||||
|
Specifies the two actions that control the correction. The interface rows contain buttons to show the settings
|
||||||
|
for that action, or jump to it in the list.
|
||||||
|
|
||||||
|
The progress of the corrective action from the start to the end frame is calculated as the product of the progress
|
||||||
|
values of the two trigger actions. Thus, the start frame is applied when either of the triggers is at the start frame,
|
||||||
|
and the end frame is used when both are at their end frame.
|
||||||
|
|
||||||
|
Corrective actions must be below their triggers in the list, which is enforced via an implicit reorder even if
|
||||||
|
violated.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Corrective actions behave in the most intuitive way when both triggers have the Default Frame equal to Start Frame.
|
||||||
|
To create a corrective action in such case:
|
||||||
|
|
||||||
|
* Create the two trigger actions, add them to the panel and generate the rig.
|
||||||
|
* Pose your controls so that both trigger actions are fully activated to the end frame.
|
||||||
|
* Pose and keyframe the necessary corrections in the end frame of the new action, while keying the start
|
||||||
|
frame to the neutral values.
|
||||||
|
* Add the newly created action to the end of the list in the panel and configure its settings.
|
552
manual/addons/rigging/rigify/rig_features.rst
Normal file
552
manual/addons/rigging/rigify/rig_features.rst
Normal file
@ -0,0 +1,552 @@
|
|||||||
|
|
||||||
|
**********************
|
||||||
|
Generated Rig Features
|
||||||
|
**********************
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
* A dropdown input field that directly exposes the switch property for keyframing and direct manipulation.
|
||||||
|
Changing the value can cause the bone position to jump.
|
||||||
|
* 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 have a master bone and tweaks. Depending on the user defined meta-rig options,
|
||||||
|
multiple deform bone segments with tweaks will be created.
|
||||||
|
|
||||||
|
The IK control may have an optional custom pivot, as well as additional predefined pivots.
|
||||||
|
|
||||||
|
Rigify's limbs have the following controls in the Sidebar panel:
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_limb-properties.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
FK Limb Follow :guilabel:`Slider`
|
||||||
|
When set to 1 the FK limb will not rotate with the torso and will retain is rotation
|
||||||
|
relative to the root bone instead.
|
||||||
|
|
||||||
|
IK-FK :guilabel:`Slider`
|
||||||
|
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`
|
||||||
|
Snaps one type of controls to another.
|
||||||
|
|
||||||
|
IK Stretch :guilabel:`Slider`
|
||||||
|
Blends between the limb stretching freely at 1, or having its maximum length constrained at 0.
|
||||||
|
|
||||||
|
Toggle Pole :guilabel:`Switch`
|
||||||
|
When the toggle is Off, the IK limb will use the rotational pole vector (the arrow at the base of the limb).
|
||||||
|
Rotating/translating/scaling the arrow will control the IK limb base.
|
||||||
|
|
||||||
|
When the toggle is On, 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.
|
||||||
|
|
||||||
|
Similar to *Parent Switching*, the row includes buttons to convert the current pose between types,
|
||||||
|
or bake the whole action.
|
||||||
|
|
||||||
|
IK Parent :guilabel:`Switch`
|
||||||
|
Switches the effective parent of the main IK control.
|
||||||
|
|
||||||
|
Pole Parent :guilabel:`Switch`
|
||||||
|
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 in the bundled metarigs,
|
||||||
|
and is 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 certain axes of the local rotation of a FK control to the next one.
|
||||||
|
|
||||||
|
Advanced Finger
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_finger-controls.png
|
||||||
|
|
||||||
|
For fingers specifically, Rigify has a dedicated :ref:`finger <rigify.rigs.limbs.super_finger>` sub-rig type,
|
||||||
|
which provides:
|
||||||
|
|
||||||
|
Master
|
||||||
|
A master control (orange), 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 also operate as semi-tweaks through allowing translation.
|
||||||
|
IK Control :guilabel:`Optional`
|
||||||
|
IK control for the tip (red).
|
||||||
|
|
||||||
|
.. 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 enable IK after using IK->FK snap 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 can result in jitter.
|
||||||
|
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 in all directions.
|
||||||
|
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`
|
||||||
|
This control is visually attached to the last bone of the chain, and must use Euler rotation.
|
||||||
|
|
||||||
|
* *Stretch To Fit*: it controls the twist of the tip of the tentacle, interpolated to nothing at the base.
|
||||||
|
* *Manual Squash & Stretch*: it also controls the scaling of the tip of the tentacle.
|
||||||
|
* *Direct Tip Control*: the 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 free form orientation
|
||||||
|
of the tip control, rather than using a separate twist control with constrained Euler rotation. However, for
|
||||||
|
technical reasons, that can only give values 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 (effectively shifting the neutral position), 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 selected IK control.
|
||||||
|
|
||||||
|
|
||||||
|
Spine, Head & Tail
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_spine-controls.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
Spine
|
||||||
|
-----
|
||||||
|
|
||||||
|
The :ref:`spine <rigify.rigs.spines.basic_spine>` sub-rig provides a cube shaped torso control with
|
||||||
|
switchable parent, and bent circle shaped hip and chest controls subordinate to it. For low level deformation
|
||||||
|
tweak controls are provided.
|
||||||
|
|
||||||
|
The torso control can optionally be accompanied with a custom pivot control. The rig can also optionally
|
||||||
|
provide a full set of FK controls that are subordinate to the normal simplified ones, but above tweaks.
|
||||||
|
|
||||||
|
The rig properties panel for the spine controls usually includes options for the head and/or tail as well.
|
||||||
|
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_head-controls.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
Head
|
||||||
|
----
|
||||||
|
|
||||||
|
The :ref:`head <rigify.rigs.spines.super_head>` sub-rig attaches to the end of the spine, and provides
|
||||||
|
rotational controls for the head and neck, as well as tweaks for fine control of the neck.
|
||||||
|
|
||||||
|
If the neck is three or more bones long, an additonal tweak-like translational
|
||||||
|
neck bend control is provided (the widget looks like a circle with arrows).
|
||||||
|
|
||||||
|
The properties panel contains the following options:
|
||||||
|
|
||||||
|
Neck Follow :guilabel:`Slider`
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_head-properties.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
This slider controls the rotations isolation for the neck bones.
|
||||||
|
The neck will follow the orientation of the Torso when set to 0, and the Chest when set to 1.
|
||||||
|
|
||||||
|
Head Follow :guilabel:`Slider`
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_tail-controls.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
This slider controls the rotations isolation for the head.
|
||||||
|
The head will follow the orientation of the Torso when set to 0, and the Chest when set to 1.
|
||||||
|
|
||||||
|
Tail
|
||||||
|
----
|
||||||
|
|
||||||
|
The :ref:`tail <rigify.rigs.spines.basic_tail>` sub-rig attaches to the start of the spine, and provides
|
||||||
|
FK controls for the tail, as well as a master control that replicates its local rotation around certain axes
|
||||||
|
to all individual bones.
|
||||||
|
|
||||||
|
The properties panel contains the following options:
|
||||||
|
|
||||||
|
Tail Follow :guilabel:`Slider`
|
||||||
|
This slider controls the rotations isolation for the tail.
|
||||||
|
The tail will follow the orientation of the Torso when set to 0, and the Hips when set to 1.
|
||||||
|
|
||||||
|
Face
|
||||||
|
====
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This describes the new-style modular face produced by the Upgrade Face operator button.
|
||||||
|
|
||||||
|
Basic Concepts
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Skin Bone Chains
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_face-chains.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
The foundation of the Rigify face is a network of Bendy Bone :ref:`chains <rigify.rigs.skin.basic_chain>` with
|
||||||
|
controls placed at every bone end. These controls affect all bones that meet at that specific point.
|
||||||
|
|
||||||
|
When the controls are merely translated, the B-Bone chains retain the normal automatic bezier handle behavior.
|
||||||
|
Local rotation and/or scaling of the controls are applied on top of that.
|
||||||
|
|
||||||
|
In case of :ref:`certain chains <rigify.rigs.skin.stretchy_chain>`, the transformation of the end and/or middle
|
||||||
|
controls is interpolated to other controls located between them. In such cases the controls often have different
|
||||||
|
colors and/or shapes.
|
||||||
|
|
||||||
|
Additionally, certain controls have :ref:`arbitrary constraints <rigify.rigs.skin.glue>` that partially copy
|
||||||
|
transformation from nearby control points.
|
||||||
|
|
||||||
|
Specialized Controllers
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Certain areas of the face, like eyes or mouth, have additional specialized controllers that apply custom behavior
|
||||||
|
on top of the chains and their controllers within the relevant area.
|
||||||
|
|
||||||
|
Eyes
|
||||||
|
----
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_eye-controls.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
The :ref:`eyes <rigify.rigs.face.skin_eye>` have the following controls in addition to the eyelid chains:
|
||||||
|
|
||||||
|
Master
|
||||||
|
This large circular control can be used to transform the whole eye as one unit.
|
||||||
|
Common Target
|
||||||
|
This large control enveloping all individual eye targets has a switchable parent and can
|
||||||
|
be used to specify the point that the eyes should look at.
|
||||||
|
Eye Target
|
||||||
|
These small circle controls within the common target control specify the point targeted by each
|
||||||
|
individual eye. Their local scale can also be used to affect the iris or pupil of the eye,
|
||||||
|
depending on how it was weight painted.
|
||||||
|
|
||||||
|
The rig properties panel contains the following options:
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_eye-properties.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
Eyelids Follow :guilabel:`Slider`
|
||||||
|
Controls how much the rotation of the eyeball affects the eyelids. Depending on the sub-rig generation
|
||||||
|
options, this slider can be split to separately control the horizontal and vertical directions.
|
||||||
|
|
||||||
|
Eyelids Attached :guilabel:`Slider` :guilabel:`Optional`
|
||||||
|
If enabled in the sub-rig generation options, this slider can be used to disable the mechanism that
|
||||||
|
forces the eyelids to conform to the sphere of the eye.
|
||||||
|
|
||||||
|
Parent :guilabel:`Parent Switch`
|
||||||
|
Selects the parent for the common target control.
|
||||||
|
|
||||||
|
Mouth
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_mouth-controls.png
|
||||||
|
:align: right
|
||||||
|
:width: 300px
|
||||||
|
|
||||||
|
The :ref:`mouth <rigify.rigs.face.skin_jaw>` has the following controls:
|
||||||
|
|
||||||
|
Jaw Master
|
||||||
|
Controls rotation of the jaw, directly affecting the main jaw deform bone, as well
|
||||||
|
as chains fully belonging to the jaw. Chains forming the lip loop(s) are adjusted to
|
||||||
|
open the mouth as the jaw rotates or moves.
|
||||||
|
Mouth Master
|
||||||
|
This control uniformly transforms the lips without moving the jaw.
|
||||||
|
|
||||||
|
The rig properties panel contains the following options:
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-features_mouth-properties.png
|
||||||
|
:align: right
|
||||||
|
:width: 200px
|
||||||
|
|
||||||
|
Mouth Lock :guilabel:`Slider`
|
||||||
|
This slider can be changed from 0 to 1 in order to suppress opening of the mouth
|
||||||
|
when the jaw rotates or moves.
|
125
manual/addons/rigging/rigify/rig_types/basic.rst
Normal file
125
manual/addons/rigging/rigify/rig_types/basic.rst
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
|
||||||
|
*****
|
||||||
|
Basic
|
||||||
|
*****
|
||||||
|
|
||||||
|
These rig types are used to generate simple single-bone features,
|
||||||
|
and for custom rigging done directly in the meta-rig.
|
||||||
|
|
||||||
|
The single-bone rig types must be applied separately to every bone even within a connected chain,
|
||||||
|
and can have connected children controlled by a different rig type.
|
||||||
|
This is unlike chain-based rig types that usually consume the whole connected chain.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.basic.copy_chain:
|
||||||
|
|
||||||
|
basic.copy_chain
|
||||||
|
================
|
||||||
|
|
||||||
|
Copies the bone chain keeping all the parent relations within the chain untouched.
|
||||||
|
Useful as a utility rig type for custom rigs.
|
||||||
|
|
||||||
|
Requirement: A chain of at least two connected bones.
|
||||||
|
|
||||||
|
Control (Boolean)
|
||||||
|
When enabled control bones and widgets will be created.
|
||||||
|
Deform (Boolean)
|
||||||
|
When enabled deform bones will be created.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.basic.pivot:
|
||||||
|
|
||||||
|
basic.pivot
|
||||||
|
===========
|
||||||
|
|
||||||
|
Single-bone rig type that creates a 'custom pivot' control for rotating and scaling its child sub-rigs.
|
||||||
|
|
||||||
|
This type of control transforms its children when rotated or scaled, while moving it
|
||||||
|
merely changes the pivot point used by rotation or scaling.
|
||||||
|
|
||||||
|
Master Control
|
||||||
|
When enabled an extra parent control bone with a box widget is created to allow moving the rig.
|
||||||
|
It is also required by all other options besides *Deform Bone*.
|
||||||
|
|
||||||
|
Widget Type
|
||||||
|
Allows selecting one of the predefined widgets to generate for the master control instead of the default cube.
|
||||||
|
|
||||||
|
Switchable Parent
|
||||||
|
Generates a mechanism for switching the effective parent of the rig based on the value of a custom property.
|
||||||
|
|
||||||
|
Register Parent
|
||||||
|
Registers the rig as a potential parent scope for its child sub-rigs' parent switches.
|
||||||
|
|
||||||
|
Tags
|
||||||
|
Specifies additional comma-separated tag keywords for the registered parent scope.
|
||||||
|
They can be used by other rigs to filter parent choices, or for selecting the default parent.
|
||||||
|
|
||||||
|
Some of the existing tags that are useful here:
|
||||||
|
|
||||||
|
``injected`` (special)
|
||||||
|
The parent scope will be made available for all children of the *parent* sub-rig,
|
||||||
|
rather than just this rig's children.
|
||||||
|
``held_object``
|
||||||
|
A control for the object held in the character's hand. Preferred by finger IK.
|
||||||
|
|
||||||
|
The ``injected,held_object`` combination is perfect for such a control.
|
||||||
|
|
||||||
|
Pivot Control
|
||||||
|
Disabling this avoids generating the actual custom pivot control, effectively turning this rig type
|
||||||
|
into a version of `basic.super_copy`_ with parent switching support and a different widget.
|
||||||
|
|
||||||
|
Deform Bone
|
||||||
|
When enabled a deform bone will be created.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.basic.raw_copy:
|
||||||
|
|
||||||
|
basic.raw_copy
|
||||||
|
==============
|
||||||
|
|
||||||
|
Single-bone rig type that copies the bone without the ``ORG-`` name prefix.
|
||||||
|
|
||||||
|
Normally all bones copied from the meta-rig are prefixed with ``ORG-`` and placed on an invisible layer.
|
||||||
|
This precludes their use as controls or deforming bones, which makes it difficult to transfer complex
|
||||||
|
fully custom rigging verbatim from the meta-rig.
|
||||||
|
|
||||||
|
This rig type does not add the automatic prefix, thus allowing an appropriate ``ORG-``, ``MCH-`` or ``DEF-``
|
||||||
|
prefix to be manually included in the meta-rig bone name, or alternatively using no prefix to create
|
||||||
|
a control bone.
|
||||||
|
|
||||||
|
Relink Constraints
|
||||||
|
Allows retargeting constraints belonging to the bone to point at bones created in the process
|
||||||
|
of generating the rig, thus allowing custom rigging to integrate with generated bones.
|
||||||
|
|
||||||
|
To use this feature, add ``@`` and the intended target bone name to the constraint name, resulting
|
||||||
|
in the ``...@bone_name`` syntax. After all bones of the rig are generated, the constraint target
|
||||||
|
bone will be replaced. If the new bone name is just ``CTRL``, ``MCH`` or ``DEF``, this will just
|
||||||
|
replace the ``ORG`` prefix in the existing target bone name. For the Armature constraint you can add
|
||||||
|
a ``@`` suffix for each target, or just one ``@CTRL``, ``@MCH`` or ``@DEF`` suffix to update all.
|
||||||
|
|
||||||
|
Parent
|
||||||
|
If the field is not empty, applies the same name substitution logic to the parent of the bone.
|
||||||
|
|
||||||
|
When this feature is enabled, the bone will not be automatically parented to the root bone even
|
||||||
|
if it has no parent; enter ``root`` in the *Parent* field if that is necessary.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.basic.super_copy:
|
||||||
|
|
||||||
|
basic.super_copy
|
||||||
|
================
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Control (Boolean)
|
||||||
|
When enabled a control bone and widget will be created.
|
||||||
|
Widget (Boolean)
|
||||||
|
When enabled a widget will be created in replacement to the standard.
|
||||||
|
Widget Type (String):
|
||||||
|
Allows selecting one of the predefined widget types to generate instead of the default circle.
|
||||||
|
Deform (Boolean)
|
||||||
|
When enabled a deform bone will be created.
|
||||||
|
Relink Constraints
|
||||||
|
Works the same as in the `basic.raw_copy`_ rig. In addition, when enabled any constraints that have
|
||||||
|
names prefixed with ``CTRL:`` are moved to the control, and with ``DEF:`` to the deform bone.
|
71
manual/addons/rigging/rigify/rig_types/face.rst
Normal file
71
manual/addons/rigging/rigify/rig_types/face.rst
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
|
||||||
|
****
|
||||||
|
Face
|
||||||
|
****
|
||||||
|
|
||||||
|
These rig types implement components of a modular face.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.face.basic_tongue:
|
||||||
|
|
||||||
|
face.basic_tongue
|
||||||
|
=================
|
||||||
|
|
||||||
|
Generates a simple tongue, extracted from the original PitchiPoy :ref:`super_face <rigify.rigs.faces.super_face>` rig.
|
||||||
|
|
||||||
|
B-Bone Segments (integer)
|
||||||
|
Defines the number of b-bone segments each tweak control will be split into.
|
||||||
|
Primary Control Layers
|
||||||
|
Optionally specifies bone collections for the main control.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.face.skin_eye:
|
||||||
|
|
||||||
|
face.skin_eye
|
||||||
|
=============
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
The rig must have two child skin chains with names tagged with ``.T`` and ``.B`` symmetry
|
||||||
|
to mark the top and bottom eyelid, which are connected at their ends forming eye corners.
|
||||||
|
The chains are rigged to follow the surface of the eye and twist to its normal.
|
||||||
|
|
||||||
|
In addition, it creates target controls for aiming the eye, including a master control shared by
|
||||||
|
all eyes under the same parent rig. The eyelids are rigged to follow the movement of the eyeball
|
||||||
|
with adjustable influence.
|
||||||
|
|
||||||
|
Eyeball and Iris Deforms
|
||||||
|
Generates deform bones for the eyeball and the iris, the latter copying XZ scale from
|
||||||
|
the eye target control. The iris is located at the tail of the ORG bone.
|
||||||
|
Eyelid Detach Option
|
||||||
|
Generates a slider to disable the mechanism that keeps eyelid controls stuck to the surface of the eye.
|
||||||
|
Split Eyelid Follow Slider
|
||||||
|
Generates two separate sliders for controlling the influence of the eye rotation on X and Z eyelid motion.
|
||||||
|
Eyelids Follow Default
|
||||||
|
Depending on *Split Eyelid Follow Slider*, specifies the default values for the split follow sliders,
|
||||||
|
or fixed factors to be multiplied with the single common follow influence slider value.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.face.skin_jaw:
|
||||||
|
|
||||||
|
face.skin_jaw
|
||||||
|
=============
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
The rig must have one or more child chain loops, each formed by four skin chains tagged
|
||||||
|
with ``.T``/``.B`` and ``.L``/``.R`` symmetrical names.
|
||||||
|
|
||||||
|
The lip loops are sorted into layers based on the distance from corners to the common
|
||||||
|
center and rigged with blended influence of the jaw and the master mouth control.
|
||||||
|
Other child rigs become children of the jaw.
|
||||||
|
|
||||||
|
Bottom Lip Influence
|
||||||
|
Specifies the influence of the jaw on the inner bottom lip with mouth lock disabled.
|
||||||
|
Locked Influence
|
||||||
|
Specifies the influence of the jaw on both lips of locked mouth.
|
||||||
|
Secondary Influence Falloff
|
||||||
|
Specifies the factor by which influence fades away with each successive lip loop
|
||||||
|
(for bottom lip loops the blend moves away from inner bottom lip to full jaw influence).
|
19
manual/addons/rigging/rigify/rig_types/faces.rst
Normal file
19
manual/addons/rigging/rigify/rig_types/faces.rst
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
*****
|
||||||
|
Faces
|
||||||
|
*****
|
||||||
|
|
||||||
|
.. _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.
|
||||||
|
|
||||||
|
Requirement: All the face bones bundled in the ``faces.super_face`` sample had to be present and
|
||||||
|
child of the master bone that has the Rigify-type *face* property set.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
This rig type is being deprecated in favor of a new modular
|
||||||
|
:doc:`skin <skin>` and :doc:`face <face>` rigging system.
|
23
manual/addons/rigging/rigify/rig_types/index.rst
Normal file
23
manual/addons/rigging/rigify/rig_types/index.rst
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#############
|
||||||
|
Rig Types
|
||||||
|
#############
|
||||||
|
|
||||||
|
Rig types are components used by Rigify to process specific parts of the meta-rig when generating the armature.
|
||||||
|
They represent common character features, like the spine, limbs, fingers etc.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The list of available rig types appears in the Bone properties tab when the bone is selected in Pose Mode.
|
||||||
|
Scroll down the Properties to find Rigify Type panel.
|
||||||
|
|
||||||
|
This documents rig types that are bundled with Rigify.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
basic.rst
|
||||||
|
spines.rst
|
||||||
|
limbs.rst
|
||||||
|
faces.rst
|
||||||
|
skin.rst
|
||||||
|
face.rst
|
265
manual/addons/rigging/rigify/rig_types/limbs.rst
Normal file
265
manual/addons/rigging/rigify/rig_types/limbs.rst
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
|
||||||
|
*****
|
||||||
|
Limbs
|
||||||
|
*****
|
||||||
|
|
||||||
|
These rig types handle generation of different kind of limbs and their features, like fingers.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.simple_tentacle:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Automation Axis (X, Y, Z, None)
|
||||||
|
Enables the automation on the selected axis. Multiple axis or none can be selected holding :kbd:`Shift-LMB`.
|
||||||
|
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
|
||||||
|
can be disabled even after rig is generated, or at animation time.
|
||||||
|
Assign Tweak Layers
|
||||||
|
If enabled, allows placing the Tweak controls in different bone collections from the main controls.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.super_finger:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Bend Rotation Axis (Automatic, X, Y, Z, -X, -Y, -Z)
|
||||||
|
Defines the automatic rotation axis to be linked to the scale of the master bone.
|
||||||
|
B-Bone Segments (integer)
|
||||||
|
Defines the number of b-bone segments each tweak control will be split into.
|
||||||
|
IK Control
|
||||||
|
Generates a very simple IK mechanism with only one control.
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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::
|
||||||
|
|
||||||
|
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.
|
||||||
|
Automatic mode recalculates the generated bones roll while
|
||||||
|
any of the Manual modes copy the roll of the meta-rig bones.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.super_limb:
|
||||||
|
|
||||||
|
limbs.super_limb
|
||||||
|
================
|
||||||
|
|
||||||
|
A backwards compatibility wrapper around `limbs.arm`_, `limbs.leg`_ and `limbs.paw`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.arm:
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-types_limbs_arm-required.png
|
||||||
|
|
||||||
|
Arm required bones.
|
||||||
|
|
||||||
|
IK Wrist Pivot
|
||||||
|
Generates an extra child of the hand IK control that rotates around the tail of the hand bone.
|
||||||
|
|
||||||
|
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.
|
||||||
|
Limb Segments (integer)
|
||||||
|
Defines the number of additional tweak controls each limb bone will have on the final rig.
|
||||||
|
B-Bone Segments (integer)
|
||||||
|
Defines the number of b-bone segments each tweak control will be split into.
|
||||||
|
Custom IK Pivot
|
||||||
|
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
|
||||||
|
Assign FK Layers
|
||||||
|
If enabled, allows placing the FK chain in different bone collections from the IK bones.
|
||||||
|
Assign Tweak Layers
|
||||||
|
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.leg:
|
||||||
|
|
||||||
|
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
|
||||||
|
child of the foot to be used as the heel pivot.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-types_limbs_leg-required.png
|
||||||
|
|
||||||
|
Leg required bones.
|
||||||
|
|
||||||
|
Foot Pivot (Ankle, Toe, Ankle & Toe)
|
||||||
|
Specifies where to put the pivot location of the main IK control, or whether to generate an additional
|
||||||
|
pivot control at the base of the toe.
|
||||||
|
|
||||||
|
Separate IK Toe
|
||||||
|
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.
|
||||||
|
|
||||||
|
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)
|
||||||
|
Defines the bend axis for the IK chain. FK chains will have a totally free degree of rotation on all axes.
|
||||||
|
Limb Segments (integer)
|
||||||
|
Defines the number of additional tweak controls each limb bone will have on the final rig.
|
||||||
|
B-Bone Segments (integer)
|
||||||
|
Defines the number of b-bone segments each tweak control will be split into.
|
||||||
|
Custom IK Pivot
|
||||||
|
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
|
||||||
|
Assign FK Layers
|
||||||
|
If enabled, allows placing the FK chain in different bone collections from the IK bones.
|
||||||
|
Assign Tweak Layers
|
||||||
|
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.paw:
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-types_limbs_paw-required.png
|
||||||
|
|
||||||
|
Front/Rear paw required bones.
|
||||||
|
|
||||||
|
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.
|
||||||
|
Limb Segments (integer)
|
||||||
|
Defines the number of additional tweak controls each limb bone will have on the final rig.
|
||||||
|
B-Bone Segments (integer)
|
||||||
|
Defines the number of b-bone segments each tweak control will be split into.
|
||||||
|
Custom IK Pivot
|
||||||
|
Generates an extra control for the end of the IK limb that allows rotating it around an arbitrarily placed pivot.
|
||||||
|
Assign FK Layers
|
||||||
|
If enabled, allows placing the FK chain in different bone collections from the IK bones.
|
||||||
|
Assign Tweak Layers
|
||||||
|
If enabled, allows placing the Tweak controls in different bone collections from the IK bones.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.front_paw:
|
||||||
|
|
||||||
|
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
|
||||||
|
paw bones (2nd and 3rd) as the main IK control moves and rotates.
|
||||||
|
|
||||||
|
For best results, the shin bone should not be parallel to either thigh or paw in rest pose,
|
||||||
|
i.e. there should be some degree of bend in all joints of the paw.
|
||||||
|
|
||||||
|
Heel IK Influence
|
||||||
|
Influence of the extended IK. At full rotating the main IK control or digit bone would
|
||||||
|
not affect the rotation of the paw bone, while lower values provide some blending.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.rear_paw:
|
||||||
|
|
||||||
|
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
|
||||||
|
as the main IK control moves and rotates.
|
||||||
|
|
||||||
|
For best results, thigh and paw bones should start nearly parallel in the rest pose.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.limbs.super_palm:
|
||||||
|
|
||||||
|
limbs.super_palm
|
||||||
|
================
|
||||||
|
|
||||||
|
Will create a palm system based on the distance between palm bones.
|
||||||
|
|
||||||
|
Requirement: At least two bones child of the same parent.
|
||||||
|
The property has to be set on the inner palm bones (think it as index's metacarpus),
|
||||||
|
the rig control will appear on the last palm bone (think it as pinky's metacarpus).
|
||||||
|
|
||||||
|
Both Sides
|
||||||
|
Generates controls on both sides of the palm, with influence on inner bones blended between them.
|
||||||
|
|
||||||
|
Primary Rotation Axis (X, Z)
|
||||||
|
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.
|
221
manual/addons/rigging/rigify/rig_types/skin.rst
Normal file
221
manual/addons/rigging/rigify/rig_types/skin.rst
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
.. todo: make permanent 'new', development
|
||||||
|
|
||||||
|
****
|
||||||
|
Skin
|
||||||
|
****
|
||||||
|
|
||||||
|
These rigs implement a flexible system for rigging skin using multiple interacting B-Bone chains.
|
||||||
|
This is developed as the base for a new modular Rigify face rig.
|
||||||
|
These are the main ideas of the system:
|
||||||
|
|
||||||
|
Generic B-Bone Chain
|
||||||
|
One core idea of the system is that most of the deformation should be implemented
|
||||||
|
using a standard powerful B-Bone chain rig. These chains support advanced behavior by
|
||||||
|
interacting with other rig components. This is in contrast to having multiple domain-specific rigs
|
||||||
|
that each generate their own deform chains.
|
||||||
|
|
||||||
|
The implementation provides two versions of the chain rig: `skin.basic_chain`_ merely
|
||||||
|
attaches B-Bones to the controls with no automation added to the controls themselves.
|
||||||
|
The `skin.stretchy_chain`_ rig in addition interpolates motion of the end (and an optional middle)
|
||||||
|
controls to the other controls of the chain.
|
||||||
|
|
||||||
|
Automatic Control Merging
|
||||||
|
The deformation part of the system consists of chains of one or more B-Bones connecting
|
||||||
|
control points (nodes). Whenever controls for two chains would completely overlap,
|
||||||
|
they are automatically merged.
|
||||||
|
|
||||||
|
For each merged control, one of the chains is selected as the owner, based on heuristic factors
|
||||||
|
like parent depth from root, presence of ``.T``/``.B`` ``.L``/``.R`` symmetry markers,
|
||||||
|
and even alphabetical order as the last resort. This can be overridden by an explicit priority setting
|
||||||
|
in cases when it guesses wrong.
|
||||||
|
|
||||||
|
The owner and its parents determine additional automation that is placed on the control.
|
||||||
|
As a special case, if a control is merged with its ``.T``/``.B`` ``.L``/``.R`` symmetry counterparts
|
||||||
|
(detected purely by naming), the automation from all of the symmetry siblings
|
||||||
|
of the owner is averaged.
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.skin_parents:
|
||||||
|
|
||||||
|
Parent Controllers
|
||||||
|
Rather than simply using the parent meta-rig bone (ORG) as parent for controls and chain mechanisms,
|
||||||
|
the new system includes an interface for parent rigs. It explicitly provide parent bones and generate control
|
||||||
|
parent automation mechanisms for their child chain controls by inheriting from the appropriate base
|
||||||
|
and overriding methods.
|
||||||
|
|
||||||
|
This allows implementing rigs that integrate and manage their child chains in intelligent ways in order
|
||||||
|
to add extra automation specific to certain areas. The base skin system includes one simple example
|
||||||
|
`skin.transform.basic`_ rig, which translates its child control points according to
|
||||||
|
its control bone transformation.
|
||||||
|
|
||||||
|
Custom Rigging
|
||||||
|
Finally, the new system provides ways to integrate with custom automation directly included in the meta-rig
|
||||||
|
via two extra rig components.
|
||||||
|
|
||||||
|
The `skin.anchor`_ rig generates a single control with inherited constraints etc., similar to
|
||||||
|
:ref:`basic.super_copy <rigify.rigs.basic.super_copy>`. However, it also integrates into the skin system
|
||||||
|
as a zero length chain with highest priority. This allows overriding the normal behavior by providing
|
||||||
|
a control point under full control of the user, which other chains would automatically attach to.
|
||||||
|
|
||||||
|
The `skin.glue`_ rig on the other hand will attach itself to the control that is generated at
|
||||||
|
its position (it is an error if there is none). It can be used to read the position of the control
|
||||||
|
from custom rigging in the meta-rig, or inject constraints into the control bone. It is possible to
|
||||||
|
also detect the control at the tail of the glue bone and use it as target in the constraints,
|
||||||
|
thus copying transformation between the controls.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.basic_chain:
|
||||||
|
|
||||||
|
skin.basic_chain
|
||||||
|
================
|
||||||
|
|
||||||
|
This is the basic chain rig, which bridges controls with B-Bones but does not add
|
||||||
|
any automation to the controls themselves.
|
||||||
|
|
||||||
|
When controls are merely moved, the chains behave as if using standard
|
||||||
|
automatic handles, but rotating and optionally scaling the controls will adjust the result.
|
||||||
|
|
||||||
|
B-Bone Segments
|
||||||
|
Specifies the number of segments to use. Setting this to 1 disables
|
||||||
|
all advanced behavior and merely bridges the points with a Stretch To bone.
|
||||||
|
Merge Parent Rotation and Scale
|
||||||
|
This can be enabled to let the chain respond to rotation and scale induced by parents of
|
||||||
|
controls owned by other chains that this chain's control merged into.
|
||||||
|
Use Handle Scale
|
||||||
|
Enables using control scale to drive scale and/or easing of the B-Bone.
|
||||||
|
Connect With Mirror
|
||||||
|
Specifies whether the ends of the chain should smoothly connect when merging controls
|
||||||
|
with its ``.T``/``.B`` ``.L``/``.R`` symmetry counterpart. The relevant option must be enabled
|
||||||
|
on both chains to work.
|
||||||
|
Connect Matching Ends
|
||||||
|
Specifies whether the end of the chain should connect to the opposite end of a different chain
|
||||||
|
when merging controls. Thus forming a continuous smooth chain in the same direction.
|
||||||
|
The relevant options must be enabled on both chains.
|
||||||
|
Sharpen Corner
|
||||||
|
Specifies whether the rig should generate a mechanism to form a sharp corner at
|
||||||
|
the relevant connected end, depending on the angle formed by adjacent control locations.
|
||||||
|
When the control angle becomes sharper than the specified value, ease starts reducing from 1 to 0.
|
||||||
|
Orientation
|
||||||
|
Specifies that the controls should be oriented the same as the selected bone, rather than being
|
||||||
|
aligned to the chain.
|
||||||
|
|
||||||
|
Copy To Selected
|
||||||
|
Copy to selected rigs that have the same option. Thus allowing to indiscriminately selecting bones
|
||||||
|
without assigning unnecessary values.
|
||||||
|
Chain Priority
|
||||||
|
Allows overriding the heuristic used to select the primary owner when merging controls.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.stretchy_chain:
|
||||||
|
|
||||||
|
skin.stretchy_chain
|
||||||
|
===================
|
||||||
|
|
||||||
|
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
|
||||||
|
when moving one of the ends, rather than just the immediately adjacent B-Bones.
|
||||||
|
|
||||||
|
Middle Control Position
|
||||||
|
Specifies the position of the middle control within the chain; disabled when zero.
|
||||||
|
Falloff
|
||||||
|
Specifies the influence falloff curves of the start, middle and end controls.
|
||||||
|
Zero results in linear falloff, increasing widens the influence, and -10 disables
|
||||||
|
the influence propagation from that control completely.
|
||||||
|
Spherical Falloff
|
||||||
|
Toggle buttons to change the shape of the falloff curve from a power curve that at falloff 1 forms a parabola
|
||||||
|
:math:`1 - x^{2^f}` to a curve forming a circle :math:`(1 - x^{2^f})^{2^{-f}}`.
|
||||||
|
Falloff Along Chain Curve
|
||||||
|
Computes the falloff curve along the length of the chain, instead of projecting on the straight
|
||||||
|
line connecting its start and end points.
|
||||||
|
Propagate Twist
|
||||||
|
Specifies whether twist of the chain should be propagated to control points between main controls.
|
||||||
|
Propagate Scale
|
||||||
|
Specifies whether perpendicular scaling of the chain should be propagated to control points between main controls.
|
||||||
|
Propagate to Controls
|
||||||
|
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.
|
||||||
|
Primary Control Layers
|
||||||
|
Optionally specifies bone collections for the end controls.
|
||||||
|
Secondary Control Layers
|
||||||
|
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*
|
||||||
|
automatically enabled just for them.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.anchor:
|
||||||
|
|
||||||
|
skin.anchor
|
||||||
|
===========
|
||||||
|
|
||||||
|
This rig effectively acts as a zero-length chain with highest priority,
|
||||||
|
ensuring that it becomes the owner when merging controls with other chains.
|
||||||
|
And also allowing one to input custom automation influence into the skin system.
|
||||||
|
|
||||||
|
All constraints on the meta-rig bone are moved to the created control.
|
||||||
|
|
||||||
|
Generate Deform Bone
|
||||||
|
Creates a deformation bone parented to the control.
|
||||||
|
Suppress Control
|
||||||
|
Makes the control a hidden mechanism bone to hide it from the user.
|
||||||
|
Widget Type
|
||||||
|
Selects which widget to generate for the control.
|
||||||
|
Relink Constraints
|
||||||
|
Operates the same as in :ref:`basic.raw_copy <rigify.rigs.basic.raw_copy>`,
|
||||||
|
except all constraints are moved from ORG to the control bone.
|
||||||
|
Orientation
|
||||||
|
Specifies the bone used to orient the control, like for other chains.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.glue:
|
||||||
|
|
||||||
|
skin.glue
|
||||||
|
=========
|
||||||
|
|
||||||
|
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.
|
||||||
|
The head of the bone must overlap a control of another skin rig.
|
||||||
|
|
||||||
|
The rig sets up its ORG bone to read the state of the control,
|
||||||
|
while moving all constraints that were originally on the bone to the control.
|
||||||
|
|
||||||
|
Glue Mode
|
||||||
|
Specifies how the ORG bone is connected to the skin control.
|
||||||
|
|
||||||
|
Child Of Control
|
||||||
|
Makes the ORG bone a child of the control bone.
|
||||||
|
Mirror Of Control
|
||||||
|
Makes the ORG bone a sibling of the control with a Copy Transforms constraint from the control.
|
||||||
|
The resulting local space transformation is the same as control's local space.
|
||||||
|
Mirror With Parents
|
||||||
|
Parents the ORG bone to the parent automation a control owned by
|
||||||
|
the glue rig would have had, while making it follow the actual control.
|
||||||
|
This includes both direct and parent-induced motion of the control into
|
||||||
|
the local space transformation of the bone.
|
||||||
|
Deformation Bridge
|
||||||
|
Other than adding glue constraints to the control, the rig acts as a one segment basic deform chain.
|
||||||
|
This is convenient when a pair of controls need to be bridged both with glue and a deform bone.
|
||||||
|
|
||||||
|
Relink Constraints
|
||||||
|
Operates the same as in :ref:`basic.raw_copy <rigify.rigs.basic.raw_copy>`,
|
||||||
|
except all constraints are moved from ORG to the control bone.
|
||||||
|
Use Tail Target
|
||||||
|
Relinks ``TARGET`` or any constraints with an empty target bone and no relink specification
|
||||||
|
to reference the control located at the tail of the glue bone.
|
||||||
|
Target Local With Parents
|
||||||
|
Switches the tail target to operate similarly to *Mirror With Parents*.
|
||||||
|
Add Constraint
|
||||||
|
Allows to add a typical glue constraints with specific *Influence*, as if it were at
|
||||||
|
the start of the ORG bone constraint stack.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.skin.transform.basic:
|
||||||
|
|
||||||
|
skin.transform.basic
|
||||||
|
====================
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Generate Control
|
||||||
|
Specifies whether to generate a visible control, or use the transformation of the ORG bone
|
||||||
|
as a part of more complex and specific rig setup.
|
92
manual/addons/rigging/rigify/rig_types/spines.rst
Normal file
92
manual/addons/rigging/rigify/rig_types/spines.rst
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
|
||||||
|
******
|
||||||
|
Spines
|
||||||
|
******
|
||||||
|
|
||||||
|
These rigs are used to generate spine structures, including the head and tail.
|
||||||
|
|
||||||
|
|
||||||
|
.. _rigify.rigs.spines.super_spine:
|
||||||
|
|
||||||
|
spines.super_spine
|
||||||
|
==================
|
||||||
|
|
||||||
|
Will create a complete bendy and stretchy b-bones spine system based on bone numbers of
|
||||||
|
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).
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-types_spines-required.png
|
||||||
|
|
||||||
|
Spine required bones.
|
||||||
|
|
||||||
|
Pivot Position (integer)
|
||||||
|
Defines the pivot position for torso and hips.
|
||||||
|
Head (Boolean)
|
||||||
|
When checked neck and head systems will be added to your spine rig.
|
||||||
|
|
||||||
|
Neck Position (integer)
|
||||||
|
Defines the bone where the neck system starts. The last bone will always be the head system.
|
||||||
|
If neck position is the last bone of the chain, then only the head system will be created ignoring the neck.
|
||||||
|
Tail (Boolean)
|
||||||
|
When checked tail system will be added to your spine rig.
|
||||||
|
|
||||||
|
Tail Position (integer)
|
||||||
|
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
|
||||||
|
|
||||||
|
Spine default bones.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_rigging_rigify_rig-types_spines-example.png
|
||||||
|
|
||||||
|
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.
|
@ -4,172 +4,211 @@
|
|||||||
Blender's Directory Layout
|
Blender's Directory Layout
|
||||||
**************************
|
**************************
|
||||||
|
|
||||||
This page documents the different directories used by Blender
|
This page documents the different directories used by Blender.
|
||||||
*(which can be helpful for troubleshooting)*.
|
|
||||||
|
|
||||||
There are three different directories Blender may use,
|
This can be helpful for troubleshooting, automation and customization.
|
||||||
their exact locations are platform dependent.
|
|
||||||
|
|
||||||
:LOCAL:
|
|
||||||
Location of configuration and run-time data (for self-contained bundle).
|
|
||||||
:USER:
|
|
||||||
Location of configuration files (typically in the user's home directory).
|
|
||||||
:SYSTEM:
|
|
||||||
Location of run-time data for system wide installation (may be read-only).
|
|
||||||
|
|
||||||
For system installations both **SYSTEM** and **USER** directories are needed.
|
|
||||||
|
|
||||||
For locally extracted Blender distributions, the user configuration and run-time data are
|
|
||||||
kept in the same subdirectory, allowing multiple Blender versions to run without conflict,
|
|
||||||
ignoring the **USER** and **SYSTEM** files.
|
|
||||||
This requires you to create a folder named ``config`` in the **LOCAL** directory.
|
|
||||||
|
|
||||||
|
|
||||||
Platform Dependent Paths
|
User Directories
|
||||||
========================
|
================
|
||||||
|
|
||||||
Here are the default locations for each system:
|
|
||||||
|
|
||||||
|
User directories store preferences, startup file, installed extensions,
|
||||||
|
presets and more. By default these use the standard configuration folders
|
||||||
|
for each operating system.
|
||||||
|
|
||||||
Linux
|
Linux
|
||||||
-----
|
-----
|
||||||
|
|
||||||
:LOCAL:
|
.. parsed-literal:: $HOME/.config/blender/|BLENDER_VERSION|/
|
||||||
.. parsed-literal:: ./|BLENDER_VERSION|/
|
|
||||||
:USER:
|
|
||||||
.. parsed-literal:: $HOME/.config/blender/|BLENDER_VERSION|/
|
|
||||||
:SYSTEM:
|
|
||||||
.. parsed-literal:: /usr/share/blender/|BLENDER_VERSION|/
|
|
||||||
|
|
||||||
.. note::
|
If the ``$XDG_CONFIG_HOME`` environment variable is set:
|
||||||
|
|
||||||
The path |INSTALLDIR| is relative to the Blender executable and
|
|
||||||
is used for self-contained bundles distributed by official blender.org builds.
|
|
||||||
|
|
||||||
.. |INSTALLDIR| replace:: ./|BLENDER_VERSION|/
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The **USER** path will use ``$XDG_CONFIG_HOME`` if it is set:
|
|
||||||
|
|
||||||
.. parsed-literal:: $XDG_CONFIG_HOME/blender/|BLENDER_VERSION|/
|
|
||||||
|
|
||||||
|
.. parsed-literal:: $XDG_CONFIG_HOME/blender/|BLENDER_VERSION|/
|
||||||
|
|
||||||
macOS
|
macOS
|
||||||
-----
|
-----
|
||||||
|
|
||||||
:LOCAL:
|
.. parsed-literal:: /Users/$USER/Library/Application Support/Blender/|BLENDER_VERSION|/
|
||||||
.. parsed-literal:: ./|BLENDER_VERSION|/
|
|
||||||
:USER:
|
|
||||||
.. parsed-literal:: /Users/$USER/Library/Application Support/Blender/|BLENDER_VERSION|/
|
|
||||||
:SYSTEM:
|
|
||||||
.. parsed-literal:: /Library/Application Support/Blender/|BLENDER_VERSION|/
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
macOS stores the Blender binary in ``./Blender.app/Contents/MacOS/Blender``.
|
|
||||||
The local path to data and config is:
|
|
||||||
|
|
||||||
.. parsed-literal:: ./Blender.app/Contents/Resources/|BLENDER_VERSION|/
|
|
||||||
|
|
||||||
|
|
||||||
Windows
|
Windows
|
||||||
-------
|
-------
|
||||||
|
|
||||||
:LOCAL:
|
.. parsed-literal:: %USERPROFILE%\\AppData\\Roaming\\Blender Foundation\\Blender\\\ |BLENDER_VERSION|\\
|
||||||
.. parsed-literal:: .\\\ |BLENDER_VERSION|\\
|
|
||||||
:USER:
|
|
||||||
.. parsed-literal:: %USERPROFILE%\\AppData\\Roaming\\Blender Foundation\\Blender\\\ |BLENDER_VERSION|\\
|
|
||||||
:SYSTEM:
|
|
||||||
.. parsed-literal:: %USERPROFILE%\\AppData\\Roaming\\Blender Foundation\\Blender\\\ |BLENDER_VERSION|\\
|
|
||||||
|
|
||||||
.. note::
|
.. _portable-installation:
|
||||||
|
|
||||||
For installations from the Window's Store, the ``USER`` and ``SYSTEM``
|
Portable Installation
|
||||||
directories are inside a special folder resembling:
|
---------------------
|
||||||
|
|
||||||
.. parsed-literal:: %ProgramFiles%\\WindowsApps\\BlenderFoundation.Blender<HASH>\\Blender\\\ |BLENDER_VERSION|\\
|
When running Blender from a portable drive, it's possible to keep the configuration
|
||||||
|
files on the same drive to take with you.
|
||||||
|
|
||||||
Where "HASH" is a string specific to each installation.
|
To enable this, create a folder named ``portable`` at the following locations:
|
||||||
|
|
||||||
|
* Windows: Next to the Blender executable, in the unzipped folder
|
||||||
|
* Linux: Next to the Blender executable, in the unzipped folder
|
||||||
|
* macOS: Inside the application bundle at ``Blender.app/Contents/Resources``
|
||||||
|
|
||||||
|
This folder will then store preferences, startup file, installed extensions
|
||||||
|
and presets.
|
||||||
|
|
||||||
|
Environment Variables
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The ``BLENDER_USER_RESOURCES`` :ref:`environment variable <command-line-args-environment-variables>`
|
||||||
|
can be set to a custom directory to replace the default user directory.
|
||||||
|
|
||||||
|
System Directories
|
||||||
|
==================
|
||||||
|
|
||||||
|
System directories store files that come bundled with Blender and
|
||||||
|
are required for it to function. This includes scripts, presets, essential
|
||||||
|
assets and more.
|
||||||
|
|
||||||
|
Linux
|
||||||
|
-----
|
||||||
|
|
||||||
|
Archive downloaded from blender.org:
|
||||||
|
|
||||||
|
.. parsed-literal:: ./|BLENDER_VERSION|/
|
||||||
|
|
||||||
|
Linux distribution packages:
|
||||||
|
|
||||||
|
.. parsed-literal:: /usr/share/blender/|BLENDER_VERSION|/
|
||||||
|
|
||||||
|
macOS
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. parsed-literal:: ./Blender.app/Contents/Resources/|BLENDER_VERSION|/
|
||||||
|
|
||||||
|
Windows
|
||||||
|
-------
|
||||||
|
|
||||||
|
Zip file downloaded from blender.org:
|
||||||
|
|
||||||
|
.. parsed-literal:: ./|BLENDER_VERSION|/
|
||||||
|
|
||||||
|
Installer downloaded from blender.org:
|
||||||
|
|
||||||
|
.. parsed-literal:: %ProgramFiles%\\Blender Foundation\\Blender\\\ |BLENDER_VERSION|\\
|
||||||
|
|
||||||
|
Microsoft Store installation:
|
||||||
|
|
||||||
|
.. parsed-literal:: %ProgramFiles%\\WindowsApps\\BlenderFoundation.Blender<HASH>\\Blender\\\ |BLENDER_VERSION|\\
|
||||||
|
|
||||||
|
|
||||||
|
Environment Variables
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
``BLENDER_SYSTEM_SCRIPTS`` and ``BLENDER_SYSTEM_EXTENSIONS``
|
||||||
|
:ref:`environment variables <command-line-args-environment-variables>`
|
||||||
|
can be used to :ref:`bundle additional scripts and extensions <deploying-blender-bundling>`,
|
||||||
|
that are not part of the regular Blender installation.
|
||||||
|
|
||||||
|
Other ``BLENDER_SYSTEM`` environment variables can override other system paths,
|
||||||
|
though are not commonly used in practice.
|
||||||
|
|
||||||
|
.. _blender-directory-path-layout:
|
||||||
|
|
||||||
Path Layout
|
Path Layout
|
||||||
===========
|
===========
|
||||||
|
|
||||||
This is the path layout which is used within the directories described above.
|
``./autosave``
|
||||||
|
Autosave blend-file location. (Windows only, temp directory used for other systems.)
|
||||||
|
|
||||||
Where ``./config/startup.blend`` could be ``~/.blender/|BLENDER_VERSION|/config/startup.blend`` for example.
|
Located in user directories.
|
||||||
|
|
||||||
``./autosave/ ...``
|
``./config``
|
||||||
Autosave blend-file location. (Windows only, temp directory used for other systems.)
|
User configuration and session info.
|
||||||
|
|
||||||
Search order: ``LOCAL, USER``.
|
Located in user directories.
|
||||||
|
|
||||||
``./config/ ...``
|
``./config/startup.blend``
|
||||||
Defaults & session info.
|
Blend file to load on startup.
|
||||||
|
|
||||||
Search order: ``LOCAL, USER``.
|
``./config/userpref.blend``
|
||||||
|
User preferences.
|
||||||
|
|
||||||
``./config/startup.blend``
|
``./config/bookmarks.txt``
|
||||||
Default file to load on startup.
|
File Browser bookmarks.
|
||||||
|
|
||||||
``./config/userpref.blend``
|
``./config/recent-files.txt``
|
||||||
Default preferences to load on startup.
|
Recent file menu list.
|
||||||
|
|
||||||
``./config/bookmarks.txt``
|
``./config/{APP_TEMPLATE_ID}/startup.blend``
|
||||||
File Browser bookmarks.
|
Startup file for an application template.
|
||||||
|
|
||||||
``./config/recent-files.txt``
|
``./config/{APP_TEMPLATE_ID}/userpref.blend``
|
||||||
Recent file menu list.
|
User preferences file for an application template.
|
||||||
|
|
||||||
``./datafiles/ ...``
|
``./datafiles``
|
||||||
Runtime files.
|
Data files loaded at runtime.
|
||||||
|
|
||||||
Search order: ``LOCAL, USER, SYSTEM``.
|
Located in both user and system directories. User data files either override
|
||||||
|
or add to system data files.
|
||||||
|
|
||||||
``./datafiles/locale/{language}/``
|
``./datafiles/colormanagement``
|
||||||
Static precompiled language files for UI translation.
|
Default OpenColorIO configuration.
|
||||||
|
|
||||||
``./scripts/ ...``
|
``./datafiles/fonts``
|
||||||
Python scripts for the user interface and tools.
|
User interface fonts.
|
||||||
|
|
||||||
Search order: ``LOCAL, USER, SYSTEM``.
|
``./datafiles/studiolights``
|
||||||
|
Studio light images for 3D viewport.
|
||||||
|
|
||||||
``./scripts/addons/*.py``
|
``./extensions``
|
||||||
Python add-ons which may be enabled in the Preferences include import/export format support,
|
Extension repositories.
|
||||||
render engine integration and many handy utilities.
|
|
||||||
|
|
||||||
``./scripts/addons/modules/*.py``
|
Located in both user and system directories. Repositories are loaded from
|
||||||
Modules for add-ons to use
|
both directories.
|
||||||
(added to Python's ``sys.path``).
|
|
||||||
|
|
||||||
``./scripts/addons_core/*.py``
|
``./scripts``
|
||||||
The add-ons directory which is used for bundled add-ons.
|
Add-ons, presets, templates, user interface, startup scripts.
|
||||||
|
|
||||||
``./scripts/addons_core/modules/*.py``
|
Located in both user and system directories. Scripts are loaded from
|
||||||
Modules for ``addons_core`` to use (added to Python's ``sys.path`` when it found).
|
both directories.
|
||||||
|
|
||||||
``./scripts/modules/*.py``
|
``./scripts/addons/*.py``
|
||||||
Python modules containing our core API and utility functions for other scripts to import
|
Python add-ons which may be enabled in the Preferences include import/export format support,
|
||||||
(added to Python's ``sys.path``).
|
render engine integration and many handy utilities.
|
||||||
|
|
||||||
``./scripts/startup/*.py``
|
``./scripts/addons/modules/*.py``
|
||||||
Scripts which are automatically imported on startup.
|
Modules for add-ons to use
|
||||||
|
(added to Python's ``sys.path``).
|
||||||
|
|
||||||
``./scripts/presets/{preset}/*.py``
|
``./scripts/addons_core/*.py``
|
||||||
Presets used for storing user-defined settings for cloth, render formats, etc.
|
The add-ons directory which is used for bundled add-ons.
|
||||||
|
|
||||||
``./scripts/templates_py/*.py``
|
``./scripts/addons_core/modules/*.py``
|
||||||
Example scripts which can be accessed from :menuselection:`Text Editor --> Templates --> Python`.
|
Modules for ``addons_core`` to use (added to Python's ``sys.path`` when it found).
|
||||||
|
|
||||||
``./scripts/templates_osl/*.osl``
|
``./scripts/modules/*.py``
|
||||||
Example OSL shaders which can be accessed from
|
Python modules containing our core API and utility functions for other scripts to import
|
||||||
:menuselection:`Text Editor --> Templates --> Open Shading Language`.
|
(added to Python's ``sys.path``).
|
||||||
|
|
||||||
``./python/ ...``
|
``./scripts/startup/*.py``
|
||||||
Bundled Python distribution.
|
Scripts which are automatically imported on startup.
|
||||||
|
|
||||||
Search order: ``LOCAL, SYSTEM``.
|
``./scripts/startup/bl_app_templates_user/{APP_TEMPLATE_ID}``
|
||||||
|
Application templates installed in user directories.
|
||||||
|
|
||||||
|
``./scripts/startup/bl_app_templates_system/{APP_TEMPLATE_ID}``
|
||||||
|
pplication templates automatically loaded from system directories.
|
||||||
|
|
||||||
|
``./scripts/presets/{preset}/*.py``
|
||||||
|
Presets used for storing user-defined settings for cloth, render formats, etc.
|
||||||
|
|
||||||
|
``./scripts/templates_py/*.py``
|
||||||
|
Example scripts which can be accessed from :menuselection:`Text Editor --> Templates --> Python`.
|
||||||
|
|
||||||
|
``./scripts/templates_osl/*.osl``
|
||||||
|
Example OSL shaders which can be accessed from
|
||||||
|
:menuselection:`Text Editor --> Templates --> Open Shading Language`.
|
||||||
|
|
||||||
|
``./python``
|
||||||
|
Bundled Python distribution.
|
||||||
|
|
||||||
|
Located in system directories.
|
||||||
|
|
||||||
|
|
||||||
.. _local-cache-dir:
|
.. _local-cache-dir:
|
||||||
@ -200,16 +239,3 @@ The temporary directory is selected based on the following priority:
|
|||||||
- User Preference (see :ref:`prefs-file-paths`).
|
- User Preference (see :ref:`prefs-file-paths`).
|
||||||
- Environment variables (``TEMP`` on Windows, ``TMP`` & ``TMP_DIR`` on other platforms).
|
- Environment variables (``TEMP`` on Windows, ``TMP`` & ``TMP_DIR`` on other platforms).
|
||||||
- The ``/tmp/`` directory.
|
- The ``/tmp/`` directory.
|
||||||
|
|
||||||
|
|
||||||
Overriding Default Directories
|
|
||||||
==============================
|
|
||||||
|
|
||||||
It's possible to override the default **USER** and **SYSTEM** directories using environment variables.
|
|
||||||
|
|
||||||
While this shouldn't be needed for typical usage, some specialized use cases may take advantage of this, such as:
|
|
||||||
|
|
||||||
- Using a shared network drives for specific paths.
|
|
||||||
- Isolating an instance from the default user files to prevent automated tasks from accessing user configuration.
|
|
||||||
|
|
||||||
See :ref:`command-line-args-environment-variables` for details.
|
|
||||||
|
@ -396,6 +396,9 @@ Misc Options
|
|||||||
``--env-system-scripts``
|
``--env-system-scripts``
|
||||||
Set the ``BLENDER_SYSTEM_SCRIPTS`` environment variable.
|
Set the ``BLENDER_SYSTEM_SCRIPTS`` environment variable.
|
||||||
|
|
||||||
|
``--env-system-extensions``
|
||||||
|
Set the ``BLENDER_SYSTEM_EXTENSIONS`` environment variable.
|
||||||
|
|
||||||
``--env-system-python``
|
``--env-system-python``
|
||||||
Set the ``BLENDER_SYSTEM_PYTHON`` environment variable.
|
Set the ``BLENDER_SYSTEM_PYTHON`` environment variable.
|
||||||
|
|
||||||
@ -484,18 +487,18 @@ Arguments are executed in the order they are given. eg:
|
|||||||
Environment Variables
|
Environment Variables
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
:BLENDER_USER_RESOURCES: Top level directory for user files.
|
:BLENDER_USER_RESOURCES: Replace default directory of all user files.
|
||||||
(other ``BLENDER_USER_*`` variables override when set).
|
Other ``BLENDER_USER_*`` variables override when set.
|
||||||
:BLENDER_USER_CONFIG: Directory for user configuration files.
|
:BLENDER_USER_CONFIG: Directory for user configuration files.
|
||||||
:BLENDER_USER_SCRIPTS: Directory for user scripts.
|
:BLENDER_USER_SCRIPTS: Directory for user scripts.
|
||||||
:BLENDER_USER_EXTENSIONS: Directory for user extensions.
|
:BLENDER_USER_EXTENSIONS: Directory for user extensions.
|
||||||
:BLENDER_USER_DATAFILES: Directory for user data files (icons, translations, ..).
|
:BLENDER_USER_DATAFILES: Directory for user data files (icons, translations, ..).
|
||||||
|
|
||||||
:BLENDER_SYSTEM_RESOURCES: Top level directory for system files.
|
:BLENDER_SYSTEM_RESOURCES: Replace default directory of all bundled resource files.
|
||||||
(other ``BLENDER_SYSTEM_*`` variables override when set).
|
:BLENDER_SYSTEM_SCRIPTS: Directory to add more bundled scripts.
|
||||||
:BLENDER_SYSTEM_SCRIPTS: Directory for system wide scripts.
|
:BLENDER_SYSTEM_EXTENSIONS: Directory for system extensions repository.
|
||||||
:BLENDER_SYSTEM_DATAFILES: Directory for system wide data files.
|
:BLENDER_SYSTEM_DATAFILES: Directory to replace bundled datafiles.
|
||||||
:BLENDER_SYSTEM_PYTHON: Directory for system Python libraries.
|
:BLENDER_SYSTEM_PYTHON: Directory to replace bundled Python libraries.
|
||||||
:OCIO: Path to override the OpenColorIO configuration file.
|
:OCIO: Path to override the OpenColorIO configuration file.
|
||||||
:TEMP: Store temporary files here (MS-Windows).
|
:TEMP: Store temporary files here (MS-Windows).
|
||||||
:TMPDIR: Store temporary files here (UNIX Systems).
|
:TMPDIR: Store temporary files here (UNIX Systems).
|
||||||
|
@ -1,13 +1,68 @@
|
|||||||
|
|
||||||
################
|
#######################################
|
||||||
Command Line
|
Using Blender From The Command Line
|
||||||
################
|
#######################################
|
||||||
|
|
||||||
|
The *Console Window*, also called a *Terminal*, is an operating system text window that displays
|
||||||
|
messages about Blender's operations, status, and internal errors.
|
||||||
|
|
||||||
|
When Blender is manually started from a terminal,
|
||||||
|
Blender output is shown in the *Console Window* it is started from.
|
||||||
|
|
||||||
|
Use Cases:
|
||||||
|
|
||||||
|
- For :ref:`rendering animation <command_line-render>`.
|
||||||
|
- For automation and batch processing which require launching Blender
|
||||||
|
with different :doc:`arguments </advanced/command_line/arguments>`.
|
||||||
|
- For Python development, to see the output of the ``print()`` function.
|
||||||
|
- If Blender exits unexpectedly, the messages may indicate the cause or error.
|
||||||
|
- When troubleshooting, to see the output of ``--debug`` messages.
|
||||||
|
|
||||||
|
See: :ref:`command_line-launch-index`
|
||||||
|
for specific instructions on launching Blender from the command line.
|
||||||
|
|
||||||
|
.. tip:: Closing the Blender Console Window
|
||||||
|
|
||||||
|
Closing the *Console Window* will also close Blender, losing any unsaved work.
|
||||||
|
|
||||||
|
|
||||||
|
Launching from the Command Line
|
||||||
|
===============================
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:hidden:
|
||||||
:titlesonly:
|
|
||||||
|
|
||||||
introduction.rst
|
|
||||||
launch/index.rst
|
launch/index.rst
|
||||||
arguments.rst
|
|
||||||
|
- :doc:`launch/linux`
|
||||||
|
- :doc:`launch/macos`
|
||||||
|
- :doc:`launch/windows`
|
||||||
|
|
||||||
|
|
||||||
|
Arguments
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
Arguments <arguments.rst>
|
||||||
|
|
||||||
|
- :ref:`command-line-args-render-options`
|
||||||
|
- :ref:`command-line-args-cycles-render-options`
|
||||||
|
- :ref:`command-line-args-format-options`
|
||||||
|
- :ref:`command-line-args-animation-playback-options`
|
||||||
|
- :ref:`command-line-args-window-options`
|
||||||
|
- :ref:`command-line-args-python-options`
|
||||||
|
- :ref:`command-line-args-network-options`
|
||||||
|
- :ref:`command-line-args-logging-options`
|
||||||
|
- :ref:`command-line-args-debug-options`
|
||||||
|
- :ref:`command-line-args-gpu-options`
|
||||||
|
- :ref:`command-line-args-misc-options`
|
||||||
|
|
||||||
|
|
||||||
|
Workflows
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
|
||||||
render.rst
|
render.rst
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
The *Console Window*, also called a *Terminal*, is an operating system text window that displays
|
|
||||||
messages about Blender's operations, status, and internal errors.
|
|
||||||
|
|
||||||
When Blender is manually started from a terminal,
|
|
||||||
Blender output is shown in the *Console Window* it is started from.
|
|
||||||
|
|
||||||
Use Cases:
|
|
||||||
|
|
||||||
- For :ref:`rendering animation <command_line-render>`.
|
|
||||||
- For automation and batch processing which require launching Blender
|
|
||||||
with different :doc:`arguments </advanced/command_line/arguments>`.
|
|
||||||
- For Python development, to see the output of the ``print()`` function.
|
|
||||||
- If Blender exits unexpectedly, the messages may indicate the cause or error.
|
|
||||||
- When troubleshooting, to see the output of ``--debug`` messages.
|
|
||||||
|
|
||||||
See: :ref:`command_line-launch-index`
|
|
||||||
for specific instructions on launching Blender from the command line.
|
|
||||||
|
|
||||||
.. tip:: Closing the Blender Console Window
|
|
||||||
|
|
||||||
Closing the *Console Window* will also close Blender, losing any unsaved work.
|
|
@ -5,7 +5,7 @@
|
|||||||
###################################
|
###################################
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 2
|
||||||
|
|
||||||
linux.rst
|
linux.rst
|
||||||
macos.rst
|
macos.rst
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
.. _command_line-render:
|
.. _command_line-render:
|
||||||
|
|
||||||
**********************
|
*******************************
|
||||||
Command Line Rendering
|
Rendering From The Command Line
|
||||||
**********************
|
*******************************
|
||||||
|
|
||||||
In some situations we want to increase the render speed,
|
In some situations we want to increase the render speed,
|
||||||
access Blender remotely to render something or build scripts that use the command line.
|
access Blender remotely to render something or build scripts that use the command line.
|
||||||
|
160
manual/advanced/deploying_blender.rst
Normal file
160
manual/advanced/deploying_blender.rst
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
.. _deploying-blender:
|
||||||
|
|
||||||
|
*******************************
|
||||||
|
Deploying Blender in Production
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
It is possible to deploy Blender in environments that are more
|
||||||
|
restricted, use automation or have other special requirements.
|
||||||
|
For example in an animation studio or for school courses.
|
||||||
|
|
||||||
|
This page contains tips setting up Blender in such environments.
|
||||||
|
|
||||||
|
|
||||||
|
Installing Blender
|
||||||
|
==================
|
||||||
|
|
||||||
|
Blender downloads can be extracted to any directory on the system, as
|
||||||
|
a self contained installation. Multiple Blender versions can easily
|
||||||
|
co-exist on the same system, and deployment can be automated using
|
||||||
|
standard file management tools.
|
||||||
|
|
||||||
|
New Blender versions may add, remove or changes functionality that
|
||||||
|
change the results of production files. For a given project, it is
|
||||||
|
advisable to use a single :abbr:`LTS (Long-Term-Support)` version
|
||||||
|
of Blender. LTS versions receive bug fixes for two years.
|
||||||
|
|
||||||
|
|
||||||
|
Working Offline
|
||||||
|
===============
|
||||||
|
|
||||||
|
For security or other reasons, workstation may not have internet access.
|
||||||
|
|
||||||
|
By default Blender does not access the internet, however this can be
|
||||||
|
enabled in the System preferences with the
|
||||||
|
:ref:`Online Access <bpy.types.PreferencesSystem.use_online_access>` option.
|
||||||
|
|
||||||
|
Working offline can be enforced by running with the ``--offline-mode``
|
||||||
|
:ref:`command line argument <command-line-args-network-options>`. Users
|
||||||
|
will then be unable to enable online access in the preferences.
|
||||||
|
|
||||||
|
|
||||||
|
.. _deploying-blender-bundling:
|
||||||
|
|
||||||
|
Bundling Extensions
|
||||||
|
===================
|
||||||
|
|
||||||
|
When working offline or in a more controlled environment, it may be useful
|
||||||
|
to provide a set of extensions to all users. These can be served from the
|
||||||
|
default read-only System repository. This can be located for example on a
|
||||||
|
network drive or in a system directory.
|
||||||
|
|
||||||
|
.. figure:: /images/advanced_deploying-blender_system-extensions.png
|
||||||
|
|
||||||
|
System repository
|
||||||
|
|
||||||
|
The ``$BLENDER_SYSTEM_EXTENSIONS``
|
||||||
|
:ref:`environment variable <command-line-args-environment-variables>`
|
||||||
|
controls the default location. This should point to a directory, within
|
||||||
|
which a ``system`` directory should exist.
|
||||||
|
|
||||||
|
Extensions packages should be extracted in this ``system`` directory,
|
||||||
|
with a resulting path like this:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$BLENDER_SYSTEM_EXTENSIONS/system/my-addon/blender_manifest.toml
|
||||||
|
|
||||||
|
In the Extensions preferences, it's possible to manually set a custom
|
||||||
|
directory of the default System repository and to create multiple
|
||||||
|
repositories.
|
||||||
|
|
||||||
|
|
||||||
|
Bundling Scripts
|
||||||
|
================
|
||||||
|
|
||||||
|
Besides extensions, it's possible to bundle scripts for presets,
|
||||||
|
application templates, legacy add-ons, as well as scripts run on startup.
|
||||||
|
|
||||||
|
Script directories can be manually added in the File Paths preferences.
|
||||||
|
The ``$BLENDER_SYSTEM_SCRIPTS`` can also be used to add a script directory
|
||||||
|
without modifying the preferences.
|
||||||
|
|
||||||
|
These script directories are expected to contain specific directories
|
||||||
|
like ``presets``, ``addons`` and ``startup`` for different types of
|
||||||
|
scripts. See :ref:`blender-directory-path-layout` for a complete list.
|
||||||
|
|
||||||
|
|
||||||
|
Startup Scripts
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The Blender Python API can be used to customize Blender. This includes
|
||||||
|
changing preferences, changing the startup file and adding UI elements.
|
||||||
|
|
||||||
|
For example, a script can enable add-ons for every user.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$BLENDER_SYSTEM_SCRIPTS/startup/enable_addons.py
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
def register():
|
||||||
|
import addon_utils
|
||||||
|
addon_utils.enable("my-addon")
|
||||||
|
|
||||||
|
def unregister():
|
||||||
|
pass
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
register()
|
||||||
|
|
||||||
|
|
||||||
|
Application Templates
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
:ref:`app_templates` can be used to set up Blender for particular
|
||||||
|
tasks or projects, separate from the default configuration. When
|
||||||
|
creating a new file the user can choose the template.
|
||||||
|
|
||||||
|
The files are expected to be placed in the system script directories like this:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/__init__.py
|
||||||
|
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/startup.blend
|
||||||
|
|
||||||
|
|
||||||
|
Legacy Add-ons
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Add-ons that have not been converted to become an extension yet need
|
||||||
|
to be placed in the ``addons`` script directory.
|
||||||
|
|
||||||
|
For example, an add-on could be located at:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$BLENDER_SYSTEM_SCRIPTS/addons/simple_addon.py
|
||||||
|
$BLENDER_SYSTEM_SCRIPTS/addons/complex_addon/__init__.py
|
||||||
|
|
||||||
|
|
||||||
|
VFX Platform
|
||||||
|
============
|
||||||
|
|
||||||
|
Blender follows the `VFX reference platform <https://vfxplatform.com>`_,
|
||||||
|
which means it is able to run on the same systems as other VFX software
|
||||||
|
and exchange image, volume and scene files with them.
|
||||||
|
|
||||||
|
|
||||||
|
Python Version
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Blender and the `by module <https://pypi.org/project/bpy/>`_ are only compatible
|
||||||
|
with a single Python version. This makes it possible for add-ons and VFX software
|
||||||
|
in general to only have to target a single Python version.
|
||||||
|
|
||||||
|
Blender bundles a complete Python installation and does not interact with the
|
||||||
|
system Python by default. This can be changed with the ``--python-use-system-env``
|
||||||
|
:ref:`command line argument <command-line-args-python-options>`, if care is
|
||||||
|
taken to set up a compatible Python version.
|
@ -16,7 +16,7 @@ Most of the time you can get add-ons as part of the :doc:`Extensions <index>` sy
|
|||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
If the Add-on does not activate when enabled,
|
If the Add-on does not activate when enabled,
|
||||||
check the :doc:`Console window </advanced/command_line/introduction>`
|
check the :doc:`Console window </advanced/command_line/index>`
|
||||||
for any errors that may have occurred.
|
for any errors that may have occurred.
|
||||||
|
|
||||||
User-Defined Add-on Path
|
User-Defined Add-on Path
|
||||||
@ -44,10 +44,12 @@ This option is controlled by Preferences, which can be overriding via command-li
|
|||||||
(``--offline-mode`` / ``--online-mode``).
|
(``--offline-mode`` / ``--online-mode``).
|
||||||
|
|
||||||
For better error messages, you can check also for ``bpy.app.online_access_overriden``,
|
For better error messages, you can check also for ``bpy.app.online_access_overriden``,
|
||||||
to determine whether users can turn ``Allow Online Access`` on the preferences, or not.
|
to determine whether users can turn :ref:`Allow Online Access <bpy.types.PreferencesSystem.use_online_access>`
|
||||||
|
on the preferences, or not.
|
||||||
|
|
||||||
Blender itself doesn't block internet access based on this setting. It is up to the add-ons to respect it.
|
Blender itself doesn't block internet access based on this setting. It is up to the add-ons to respect it.
|
||||||
|
|
||||||
|
|
||||||
Bundle Dependencies
|
Bundle Dependencies
|
||||||
===================
|
===================
|
||||||
|
|
||||||
@ -72,6 +74,8 @@ Bundle with `Vendorize <https://pypi.org/project/vendorize>`__
|
|||||||
|
|
||||||
This has the advantage of avoiding version conflicts although it requires some work to setup each package.
|
This has the advantage of avoiding version conflicts although it requires some work to setup each package.
|
||||||
|
|
||||||
|
|
||||||
|
.. This section is reference for legacy add-on installation.
|
||||||
.. _bpy.ops.preferences.addon_install:
|
.. _bpy.ops.preferences.addon_install:
|
||||||
|
|
||||||
Legacy vs Extension Add-ons
|
Legacy vs Extension Add-ons
|
||||||
@ -87,6 +91,7 @@ Preferences.
|
|||||||
All add-on maintainers are urged to convert the add-ons they want to share, so they are future proof and can support
|
All add-on maintainers are urged to convert the add-ons they want to share, so they are future proof and can support
|
||||||
features like updating from the extensions platform.
|
features like updating from the extensions platform.
|
||||||
|
|
||||||
|
|
||||||
Converting a Legacy Add-on into an Extension
|
Converting a Legacy Add-on into an Extension
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
@ -102,6 +107,7 @@ Converting a Legacy Add-on into an Extension
|
|||||||
For testing it is import to :doc:`install the extension from disk </editors/preferences/extensions>` and check if
|
For testing it is import to :doc:`install the extension from disk </editors/preferences/extensions>` and check if
|
||||||
everything is working well. This will get you as close to the final experience as possible.
|
everything is working well. This will get you as close to the final experience as possible.
|
||||||
|
|
||||||
|
|
||||||
Extensions and Namespace
|
Extensions and Namespace
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@ -113,6 +119,7 @@ For example, now instead of ``kitsu`` the module name would be ``bl_ext.{reposit
|
|||||||
|
|
||||||
This has a few implications for preferences and module imports.
|
This has a few implications for preferences and module imports.
|
||||||
|
|
||||||
|
|
||||||
User Preferences and ``__package__``
|
User Preferences and ``__package__``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ usage::
|
|||||||
blender --command extension install-file [-h] -r REPO [-e] [--no-prefs]
|
blender --command extension install-file [-h] -r REPO [-e] [--no-prefs]
|
||||||
FILE
|
FILE
|
||||||
|
|
||||||
Install a package file into a local repository.
|
Install a package file into a user repository.
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
:FILE: The packages file.
|
:FILE: The packages file.
|
||||||
@ -238,6 +238,7 @@ usage::
|
|||||||
blender --command extension build [-h] [--source-dir SOURCE_DIR]
|
blender --command extension build [-h] [--source-dir SOURCE_DIR]
|
||||||
[--output-dir OUTPUT_DIR]
|
[--output-dir OUTPUT_DIR]
|
||||||
[--output-filepath OUTPUT_FILEPATH]
|
[--output-filepath OUTPUT_FILEPATH]
|
||||||
|
[--split-platforms] [--verbose]
|
||||||
|
|
||||||
Build a package in the current directory.
|
Build a package in the current directory.
|
||||||
|
|
||||||
@ -255,6 +256,12 @@ options:
|
|||||||
The package output filepath (should include a ``.zip`` extension).
|
The package output filepath (should include a ``.zip`` extension).
|
||||||
|
|
||||||
Defaults to a name created using the ``id`` from the manifest.
|
Defaults to a name created using the ``id`` from the manifest.
|
||||||
|
--split-platforms Build a separate package for each platform.
|
||||||
|
Adding the platform as a file name suffix (before the extension).
|
||||||
|
|
||||||
|
This can be useful to reduce the upload size of packages that bundle large
|
||||||
|
platform-specific modules (``*.whl`` files).
|
||||||
|
--verbose Include verbose output.
|
||||||
|
|
||||||
.. _command-line-args-extension-validate:
|
.. _command-line-args-extension-validate:
|
||||||
|
|
||||||
@ -284,10 +291,21 @@ Subcommand: ``server-generate``
|
|||||||
usage::
|
usage::
|
||||||
|
|
||||||
blender --command extension server-generate [-h] --repo-dir REPO_DIR
|
blender --command extension server-generate [-h] --repo-dir REPO_DIR
|
||||||
|
[--html]
|
||||||
|
[--html-template HTML_TEMPLATE_FILE]
|
||||||
|
|
||||||
Generate a listing of all packages stored in a directory.
|
Generate a listing of all packages stored in a directory.
|
||||||
This can be used to host packages which only requires static-file hosting.
|
This can be used to host packages which only requires static-file hosting.
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--repo-dir REPO_DIR The remote repository directory.
|
--repo-dir REPO_DIR The remote repository directory.
|
||||||
|
--html Create a HTML file (``index.html``) as well as the repository JSON
|
||||||
|
to support browsing extensions online with static-hosting.
|
||||||
|
--html-template HTML_TEMPLATE_FILE
|
||||||
|
An optional HTML file path to override the default HTML template with your own.
|
||||||
|
|
||||||
|
The following keys will be replaced with generated contents:
|
||||||
|
|
||||||
|
- ``${body}`` is replaced the extensions contents.
|
||||||
|
- ``${date}`` is replaced the creation date.
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
****************************************
|
||||||
|
Creating a Dynamic Extensions Repository
|
||||||
|
****************************************
|
||||||
|
|
||||||
|
If you plan to setup a dynamic extensions repository, read first about :doc:`static repositories <static_repository>`.
|
||||||
|
The expected format for how to list all the packages is the same, and should be used as a starting point.
|
||||||
|
|
||||||
|
Multiple Versions
|
||||||
|
=================
|
||||||
|
|
||||||
|
When Blender fetches the extensions listing it passes the following arguments to make sure only
|
||||||
|
compatible extensions are listed:
|
||||||
|
|
||||||
|
- ``platform``
|
||||||
|
- ``blender_version``
|
||||||
|
|
||||||
|
This means that servers have the chance to handle these arguments to output a single entry
|
||||||
|
per-extension on the listing.
|
||||||
|
|
||||||
|
These arguments are passed as parameters to the server via a query URL:
|
||||||
|
|
||||||
|
:URL: ``https://extensions.blender.org/api/v1/extensions/``
|
||||||
|
:query URL: ``https://extensions.blender.org/api/v1/extensions/?blender_version=4.2.0&platform=linux-x64``
|
||||||
|
|
||||||
|
|
||||||
|
Access Token
|
||||||
|
============
|
||||||
|
|
||||||
|
Some repositories may require authentication. The user can specify an ``access token`` for a repository,
|
||||||
|
which is passed along with the API request from Blender.
|
||||||
|
|
||||||
|
This is passed to the servers via an Authorization header:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
curl -i https://extensions.blender.org/api/v1/extensions/ \
|
||||||
|
-H "Accept: application/json" \
|
||||||
|
-H "Authorization: Bearer abc29832befb92983423abcaef93001"
|
28
manual/advanced/extensions/creating_repository/index.rst
Normal file
28
manual/advanced/extensions/creating_repository/index.rst
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
*********************************
|
||||||
|
Creating an Extensions Repository
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
Third party sites that wish to support extensions in Blender can do so in two ways:
|
||||||
|
|
||||||
|
#. Fork the entire `Extensions Website <https://projects.blender.org/infrastructure/extensions-website>`__
|
||||||
|
as a start point; or
|
||||||
|
#. Host a :doc:`JSON file <static_repository>` listing all the packages of your repository; or
|
||||||
|
#. Serve the JSON file :doc:`dynamically <dynamic_repository>`.
|
||||||
|
|
||||||
|
Repository Types
|
||||||
|
================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Static Repository <static_repository.rst>
|
||||||
|
Dynamic Repository <dynamic_repository.rst>
|
||||||
|
|
||||||
|
Tags and Translations
|
||||||
|
=====================
|
||||||
|
|
||||||
|
If you are planning to use a different set of :doc:`tags <../tags>` than the ones used by Blender Extensions Platform,
|
||||||
|
remember to submit a pull request to
|
||||||
|
`tags.py <https://projects.blender.org/blender/blender/src/scripts/modules/_bpy_internal/extensions/tags.py>`__.
|
||||||
|
|
||||||
|
This way they can be shown translated within Blender.
|
@ -0,0 +1,95 @@
|
|||||||
|
***************************************
|
||||||
|
Creating a Static Extensions Repository
|
||||||
|
***************************************
|
||||||
|
|
||||||
|
To host your own extensions and leverage Blender update system all that is required is a static JSON file on a server,
|
||||||
|
pointing towards download links for the extensions.
|
||||||
|
|
||||||
|
|
||||||
|
JSON
|
||||||
|
====
|
||||||
|
|
||||||
|
To generate a valid JSON file you can use the command-line tool:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
blender --command extension server-generate --repo-dir=/path/to/packages
|
||||||
|
|
||||||
|
This creates an ``index.json`` listing from all the packages found in the specified location.
|
||||||
|
|
||||||
|
See :ref:`server-generate <command-line-args-extension-server-generate>` docs.
|
||||||
|
|
||||||
|
The generated JSON is aligned with the `API <https://developer.blender.org/docs/features/extensions/api_listing/>`__.
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
To test the generated repository, create a new "Remote" repository from the user preferences:
|
||||||
|
|
||||||
|
- **Extensions -> Repositories -> [+] -> Add Remote Repository**
|
||||||
|
- In the **URL** paste the location of the generated JSON.
|
||||||
|
So the example ``/path/to/packages`` would use the:
|
||||||
|
|
||||||
|
- ``file:///path/to/packages/index.json`` on Linux/macOS.
|
||||||
|
- ``file:///C:/path/to/packages/index.json`` on MS-Windows.
|
||||||
|
- ``file://HOST/share/path/to/packages/index.json`` network shares on MS-Windows.
|
||||||
|
|
||||||
|
You may wish to use a web browser to navigate to the file-system location and copy that URL into Blender.
|
||||||
|
|
||||||
|
|
||||||
|
HTML
|
||||||
|
====
|
||||||
|
|
||||||
|
The ``server-generate`` command can optionally create a simple website using the ``--html`` argument.
|
||||||
|
which can be used
|
||||||
|
to view extensions online, the links can dropped into Blender for installation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
For a sample of the HTML code you can use to list all the extensions in the repository, use the ``html`` option
|
||||||
|
when generating the server.
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
blender --command extension server-generate --repo-dir=/path/to/packages --html
|
||||||
|
|
||||||
|
This creates an ``index.html`` file with all the extra URLs parameters ready to use.
|
||||||
|
|
||||||
|
|
||||||
|
Download Links
|
||||||
|
--------------
|
||||||
|
|
||||||
|
In order to support drag and drop for installing from a remote repository,
|
||||||
|
there are a few optional ways to prepare the URLs.
|
||||||
|
|
||||||
|
The only strict requirement is that the download URL must end in ``.zip``.
|
||||||
|
|
||||||
|
You can pass different arguments to the URL to give more clues to Blender about what to do with the dragged URL.
|
||||||
|
|
||||||
|
:repository:
|
||||||
|
Link to the JSON file to be used to install the repository on Blender.
|
||||||
|
It supports relative URLs.
|
||||||
|
:platforms:
|
||||||
|
Comma-separated list of supported platforms.
|
||||||
|
If omitted, the extension will be available in all operating systems.
|
||||||
|
:blender_version_min:
|
||||||
|
Minimum supported Blender version.
|
||||||
|
:blender_version_max:
|
||||||
|
Blender version that the extension does not support, earlier versions are supported.
|
||||||
|
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
The more details you provide, the better the user experience.
|
||||||
|
|
||||||
|
With the exception of the ``repository``, all the other parameters can be extracted from the extensions manifest.
|
||||||
|
Those arguments are to be encoded as part of the URL.
|
||||||
|
|
||||||
|
Expected format:
|
||||||
|
``<URL>.zip?repository=<repository>&blender_version_min=<version_min>&blender_max=<version_max_exclusive>&platforms=<platform1,platform2,...>``
|
||||||
|
|
||||||
|
Example:
|
||||||
|
``https://extensions.blender.org/add-ons/amaranth-toolset/1.0.23/download/add-on-amaranth-toolset-v1.0.23.zip?repository=%2Fapi%2Fv1%2Fextensions%2F&blender_version_min=4.2.0&platforms=linux-x64%2Cmacos-x64``
|
||||||
|
|
||||||
|
*Note that ``%2F`` and ``%2C`` are simply the url-encoded equivalent of ``/`` and ``,`` respectively.*
|
@ -81,7 +81,8 @@ This example is a good starting point to the ``blender_manifest.toml`` that shou
|
|||||||
tags = ["Animation", "Sequencer"]
|
tags = ["Animation", "Sequencer"]
|
||||||
|
|
||||||
blender_version_min = "4.2.0"
|
blender_version_min = "4.2.0"
|
||||||
# Optional: maximum supported Blender version
|
# # Optional: Blender version that the extension does not support, earlier versions are supported.
|
||||||
|
# # This can be omitted and defined later on the extensions platform if an issue is found.
|
||||||
# blender_version_max = "5.1.0"
|
# blender_version_max = "5.1.0"
|
||||||
|
|
||||||
# License conforming to https://spdx.org/licenses/ (use "SPDX: prefix)
|
# License conforming to https://spdx.org/licenses/ (use "SPDX: prefix)
|
||||||
@ -106,31 +107,32 @@ This example is a good starting point to the ``blender_manifest.toml`` that shou
|
|||||||
# "./wheels/jsmin-3.0.1-py3-none-any.whl",
|
# "./wheels/jsmin-3.0.1-py3-none-any.whl",
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
## Optional: add-ons can list which resources they will require:
|
# # Optional: add-ons can list which resources they will require:
|
||||||
## * files (for access of any filesystem operations)
|
# # * files (for access of any filesystem operations)
|
||||||
## * network (for internet access)
|
# # * network (for internet access)
|
||||||
## * clipboard (to read and/or write the system clipboard)
|
# # * clipboard (to read and/or write the system clipboard)
|
||||||
## * camera (to capture photos and videos)
|
# # * camera (to capture photos and videos)
|
||||||
## * microphone (to capture audio)
|
# # * microphone (to capture audio)
|
||||||
##
|
# #
|
||||||
## If using network, remember to also check `bpy.app.online_access`
|
# # If using network, remember to also check `bpy.app.online_access`
|
||||||
## https://docs.blender.org/manual/en/dev/advanced/extensions/addons.html#internet-access
|
# # https://docs.blender.org/manual/en/dev/advanced/extensions/addons.html#internet-access
|
||||||
##
|
# #
|
||||||
## For each permission it is important to also specify the reason why it is required.
|
# # For each permission it is important to also specify the reason why it is required.
|
||||||
## Keep this a single short sentence without a period (.) at the end.
|
# # Keep this a single short sentence without a period (.) at the end.
|
||||||
## For longer explanations use the documentation or detail page.
|
# # For longer explanations use the documentation or detail page.
|
||||||
#
|
#
|
||||||
# [permissions]
|
# [permissions]
|
||||||
# network = "Need to sync motion-capture data to server"
|
# network = "Need to sync motion-capture data to server"
|
||||||
# files = "Import/export FBX from/to disk"
|
# files = "Import/export FBX from/to disk"
|
||||||
# clipboard = "Copy and paste bone transforms"
|
# clipboard = "Copy and paste bone transforms"
|
||||||
|
|
||||||
# Optional: build setting.
|
# Optional: build settings.
|
||||||
# https://docs.blender.org/manual/en/dev/advanced/extensions/command_line_arguments.html#command-line-args-extension-build
|
# https://docs.blender.org/manual/en/dev/advanced/extensions/command_line_arguments.html#command-line-args-extension-build
|
||||||
# [build]
|
# [build]
|
||||||
# paths_exclude_pattern = [
|
# paths_exclude_pattern = [
|
||||||
# "/.git/",
|
|
||||||
# "__pycache__/",
|
# "__pycache__/",
|
||||||
|
# "/.git/",
|
||||||
|
# "/*.zip",
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
Required values:
|
Required values:
|
||||||
@ -147,7 +149,7 @@ Required values:
|
|||||||
|
|
||||||
Optional values:
|
Optional values:
|
||||||
|
|
||||||
:blender_version_max: Maximum version of Blender that can run this.
|
:blender_version_max: Blender version that the extension does not support, earlier versions are supported.
|
||||||
:website: Website for the extension.
|
:website: Website for the extension.
|
||||||
:copyright: Some licenses require a copyright, copyrights must be "Year Name" or "Year-Year Name".
|
:copyright: Some licenses require a copyright, copyrights must be "Year Name" or "Year-Year Name".
|
||||||
:tags: List of tags. See the :doc:`list of available tags <./tags>`.
|
:tags: List of tags. See the :doc:`list of available tags <./tags>`.
|
||||||
@ -159,7 +161,7 @@ Optional values:
|
|||||||
:permissions:
|
:permissions:
|
||||||
Add-ons can list which resources they require. The available options are
|
Add-ons can list which resources they require. The available options are
|
||||||
*files*, *network*, *clipboard*, *camera*, *microphone*.
|
*files*, *network*, *clipboard*, *camera*, *microphone*.
|
||||||
Each permission should be followed by an explanation (short single-sentence with no end pontuation (.)).
|
Each permission should be followed by an explanation (short single-sentence with no end punctuation (``.``)).
|
||||||
|
|
||||||
Optional values for "build":
|
Optional values for "build":
|
||||||
|
|
||||||
@ -183,8 +185,14 @@ Optional values for "build":
|
|||||||
paths_exclude_pattern = [
|
paths_exclude_pattern = [
|
||||||
"__pycache__/",
|
"__pycache__/",
|
||||||
".*",
|
".*",
|
||||||
|
"*.zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Reserved:
|
||||||
|
These values **must not** be declared in a TOML and are reserved for internal use.
|
||||||
|
|
||||||
|
- ``[build.generated]``
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -234,55 +242,5 @@ See :ref:`validate <command-line-args-extension-validate>` docs.
|
|||||||
Third party extension sites
|
Third party extension sites
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Third party sites that wish to support extensions in Blender can do so in two ways:
|
If you want to host the extensions yourself,
|
||||||
|
see the :doc:`Creating an Extensions Repository <./creating_repository/index>` docs.
|
||||||
#. Fork the entire `Extensions Website <https://projects.blender.org/infrastructure/extensions-website>`__
|
|
||||||
as a start point; or
|
|
||||||
#. Host a JSON file listing all the packages of your repository.
|
|
||||||
|
|
||||||
To generate a valid JSON file you can use the command-line tool:
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
blender --command extension server-generate --repo-dir=/path/to/packages
|
|
||||||
|
|
||||||
This creates a listing from all the packages found in the specified location.
|
|
||||||
|
|
||||||
See :ref:`server-generate <command-line-args-extension-server-generate>` docs.
|
|
||||||
|
|
||||||
Example of what the JSON is expected to look like:
|
|
||||||
|
|
||||||
.. code:: json
|
|
||||||
|
|
||||||
{
|
|
||||||
"version": "v1",
|
|
||||||
"blocklist": [],
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"id": "blender_kitsu",
|
|
||||||
"name": "Blender Kitsu",
|
|
||||||
"tagline": "Pipeline management for projects collaboration",
|
|
||||||
"version": "0.1.5-alpha+f52258de",
|
|
||||||
"type": "add-on",
|
|
||||||
"archive_size": 856650,
|
|
||||||
"archive_hash": "sha256:3d2972a6f6482e3c502273434ca53eec0c5ab3dae628b55c101c95a4bc4e15b2",
|
|
||||||
"archive_url": "https://extensions.blender.org/add-ons/blender-kitsu/0.1.5-alpha+f52258de/download/",
|
|
||||||
"blender_version_min": "4.2.0",
|
|
||||||
"maintainer": "Blender Studio",
|
|
||||||
"tags": ["Pipeline"],
|
|
||||||
"license": ["SPDX:GPL-3.0-or-later"],
|
|
||||||
"website": "https://extensions.blender.org/add-ons/blender-kitsu/",
|
|
||||||
"schema_version": "1.0.0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
Just like for the manifest file, the optional fields (e.g., ``blender_version_max``) are either to have a value
|
|
||||||
or should be omitted from the entries.
|
|
||||||
|
|
||||||
For the official Extensions Platform, the ``website`` value is the page of the extension in the online platform.
|
|
||||||
Even if the manifest points to the project specific website.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Any remote repository is expected to follow the latest `API <https://extensions.blender.org/api/swagger/>`__.
|
|
@ -25,3 +25,4 @@ Other third party sites can also be supported, as long as they follow the Extens
|
|||||||
Add-ons <addons.rst>
|
Add-ons <addons.rst>
|
||||||
Python Wheels <python_wheels.rst>
|
Python Wheels <python_wheels.rst>
|
||||||
Command Line Arguments <command_line_arguments.rst>
|
Command Line Arguments <command_line_arguments.rst>
|
||||||
|
Creating a Repository <creating_repository/index.rst>
|
||||||
|
@ -80,3 +80,44 @@ Running
|
|||||||
|
|
||||||
import PIL
|
import PIL
|
||||||
print(PIL.__file__)
|
print(PIL.__file__)
|
||||||
|
|
||||||
|
|
||||||
|
Platform Builds
|
||||||
|
===============
|
||||||
|
|
||||||
|
Wheels can severely impact the size of an extension. To mitigate this, it is possible to build different
|
||||||
|
extension zip files for each unique required platform.
|
||||||
|
|
||||||
|
For this you need to use the ``--split-platforms`` option from the
|
||||||
|
:ref:`build <command-line-args-extension-build>` command.
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
blender --command extension build --split-platforms
|
||||||
|
|
||||||
|
Example
|
||||||
|
-------
|
||||||
|
|
||||||
|
Manifest file excerpt:
|
||||||
|
|
||||||
|
.. code-block:: toml
|
||||||
|
|
||||||
|
id = "my_addon_with_wheels"
|
||||||
|
version = "1.0.0"
|
||||||
|
|
||||||
|
platforms = ["windows-x64", "macos-x64"]
|
||||||
|
wheels = [
|
||||||
|
"./wheels/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl",
|
||||||
|
"./wheels/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl",
|
||||||
|
"./wheels/pillow-10.3.0-cp311-cp311-win_amd64.whl",
|
||||||
|
]
|
||||||
|
|
||||||
|
Generated files from ``--split-platforms``:
|
||||||
|
|
||||||
|
- my_addon_with_wheels-1.0.0-windows_x64.zip
|
||||||
|
- my_addon_with_wheels-1.0.0-macos_x64.zip
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Even though there is a Linux-only wheel present, no Linux zip file is generated.
|
||||||
|
This happens because the ``platforms`` field only has Mac and Windows.
|
||||||
|
@ -17,4 +17,5 @@ This chapter covers advanced use (topics which may not be required for typical u
|
|||||||
limits.rst
|
limits.rst
|
||||||
operators.rst
|
operators.rst
|
||||||
blender_directory_layout.rst
|
blender_directory_layout.rst
|
||||||
|
deploying_blender.rst
|
||||||
appendices/index.rst
|
appendices/index.rst
|
||||||
|
@ -485,7 +485,7 @@ For API documentation on the functions listed above, see:
|
|||||||
Bringing It All Together
|
Bringing It All Together
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
::
|
.. code-block:: python
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Cursor Array",
|
"name": "Cursor Array",
|
||||||
|
@ -3,10 +3,19 @@
|
|||||||
Properties
|
Properties
|
||||||
##############
|
##############
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Mode: Object Mode, Edit Mode and Pose Mode
|
||||||
|
:Panel: :menuselection:`Properties --> Bone`
|
||||||
|
|
||||||
|
When bones are selected (hence in *Edit Mode* and *Pose Mode*), their
|
||||||
|
properties are shown in the *Bone* tab of the Properties.
|
||||||
|
This shows different panels used to control features of each selected bone;
|
||||||
|
the panels change depending on which mode you are working in.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
introduction.rst
|
|
||||||
transform.rst
|
transform.rst
|
||||||
bendy_bones.rst
|
bendy_bones.rst
|
||||||
relations.rst
|
relations.rst
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode, Edit Mode and Pose Mode
|
|
||||||
:Panel: :menuselection:`Properties --> Bone`
|
|
||||||
|
|
||||||
When bones are selected (hence in *Edit Mode* and *Pose Mode*), their
|
|
||||||
properties are shown in the *Bone* tab of the Properties.
|
|
||||||
This shows different panels used to control features of each selected bone;
|
|
||||||
the panels change depending on which mode you are working in.
|
|
@ -18,7 +18,6 @@ Interface
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
interface/adding_removing.rst
|
|
||||||
interface/header.rst
|
interface/header.rst
|
||||||
interface/common.rst
|
interface/common.rst
|
||||||
interface/stack.rst
|
interface/stack.rst
|
||||||
|
@ -1,97 +0,0 @@
|
|||||||
|
|
||||||
****************************
|
|
||||||
Adding/Removing a Constraint
|
|
||||||
****************************
|
|
||||||
|
|
||||||
What is described on this page about Object Constraints can be also be applied on Bone Constraints.
|
|
||||||
|
|
||||||
|
|
||||||
Tab
|
|
||||||
===
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode
|
|
||||||
:Menu: :menuselection:`Properties --> Constraint tab`
|
|
||||||
|
|
||||||
To add a constraint click on the *Add Object Constraint* menu in the Constraints tab.
|
|
||||||
|
|
||||||
.. figure:: /images/animation_constraints_interface_adding-removing_add-menu.png
|
|
||||||
|
|
||||||
To remove a constraint click on the "X" button
|
|
||||||
in the :doc:`header </animation/constraints/interface/header>`.
|
|
||||||
|
|
||||||
|
|
||||||
Menu
|
|
||||||
====
|
|
||||||
|
|
||||||
.. _bpy.ops.object.constraint_add_with_targets:
|
|
||||||
|
|
||||||
Add Constraint (with Targets)
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode and Pose Mode
|
|
||||||
:Menu: :menuselection:`Object --> Constraint --> Add Constraint (with Targets)`
|
|
||||||
|
|
||||||
Adds a constraint to the active object.
|
|
||||||
The type of constraint must be chosen from a pop-up menu,
|
|
||||||
though it can be changed later from the *Add Constraint (with Targets)*
|
|
||||||
:ref:`bpy.ops.screen.redo_last` panel.
|
|
||||||
If there is an other object selected besides the active one,
|
|
||||||
that object will be the constraint target (if the chosen constraint accepts targets).
|
|
||||||
|
|
||||||
When using a bone from another armature as the target for a constraint, the tool
|
|
||||||
will look inside the non-active armature and use its active bone,
|
|
||||||
provided that armature is in Pose Mode.
|
|
||||||
|
|
||||||
|
|
||||||
.. _bpy.ops.object.constraints_copy:
|
|
||||||
|
|
||||||
Copy Constraints to Selected Objects
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode and Pose Mode
|
|
||||||
:Menu: :menuselection:`Object --> Constraint --> Copy Constraints to Selected Objects`
|
|
||||||
|
|
||||||
Copies the active object Constraints to the rest of the selected objects.
|
|
||||||
|
|
||||||
|
|
||||||
.. _bpy.ops.object.constraints_clear:
|
|
||||||
|
|
||||||
Clear Object Constraints
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode and Pose Mode
|
|
||||||
:Panel: :menuselection:`Object --> Constraint --> Clear Object Constraints`
|
|
||||||
|
|
||||||
Removes all Constraints of the selected object(s).
|
|
||||||
|
|
||||||
|
|
||||||
.. _bpy.ops.object.track_set:
|
|
||||||
.. _bpy.ops.object.track_clear:
|
|
||||||
|
|
||||||
Track
|
|
||||||
=====
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: Object Mode
|
|
||||||
:Panel: :menuselection:`Object --> Track`
|
|
||||||
|
|
||||||
These tools add a tracking constraint to the selected objects;
|
|
||||||
the target object of the constraint will be the active object, which won't have a constraint added.
|
|
||||||
|
|
||||||
- :doc:`Damped Track Constraint </animation/constraints/tracking/damped_track>`
|
|
||||||
- :doc:`Track To Constraint </animation/constraints/tracking/track_to>`
|
|
||||||
- :doc:`Lock Track Constraint </animation/constraints/tracking/locked_track>`
|
|
||||||
|
|
||||||
Clear Track
|
|
||||||
Removes all Damped Track, Track To and Lock Track Constraints from the selected objects.
|
|
||||||
Clear and Keep Transformation (Clear Track)
|
|
||||||
Removes all Track Constraint from the selected objects, while keeping the final transform caused by them.
|
|
@ -50,6 +50,23 @@ in the :doc:`Armature chapter </animation/armatures/posing/bone_constraints/inde
|
|||||||
Constraints work in combination with each other to form a Constraint Stack.
|
Constraints work in combination with each other to form a Constraint Stack.
|
||||||
|
|
||||||
|
|
||||||
|
Adding & Removing Constraints
|
||||||
|
=============================
|
||||||
|
|
||||||
|
To add a constraint click on the *Add Object Constraint* menu in the Constraints tab.
|
||||||
|
Alternatively, you can use the :ref:`bpy.ops.object.constraint_add_with_targets` operator.
|
||||||
|
|
||||||
|
To copy constraints from one object to another use :ref:`bpy.ops.object.constraints_copy`.
|
||||||
|
|
||||||
|
Any single constraint can be removed by clicking on the "X" button
|
||||||
|
in the constraint's :doc:`header </animation/constraints/interface/header>`.
|
||||||
|
To remove all constants from an object use :ref:`bpy.ops.object.constraints_clear`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Tracking constraints can be added/removed using the :doc:`Track menu </scene_layout/object/editing/track>`.
|
||||||
|
|
||||||
|
|
||||||
Tips
|
Tips
|
||||||
====
|
====
|
||||||
|
|
||||||
|
@ -5,30 +5,36 @@
|
|||||||
Limit Rotation Constraint
|
Limit Rotation Constraint
|
||||||
*************************
|
*************************
|
||||||
|
|
||||||
An object or bone can be rotated around the X, Y and Z axes.
|
This constraint restricts the rotation of an object or bone to be inside
|
||||||
This constraint restricts the amount of allowed rotations around each axis,
|
specified angular limits. The limits are given as Euler rotation ranges (a min
|
||||||
through lower and upper bounds.
|
and max angle), and a separate range can be given for each of the three axes.
|
||||||
|
|
||||||
It is interesting to note that even though the constraint limits the visual and
|
As with all constraints in Blender, this does not (by default) restrict the
|
||||||
rendered rotations of its owner, its owner's data-block still allows (by default)
|
user-set rotation values of the object/bone as seen in the *Transform* panel.
|
||||||
the object or bone to have rotation values outside the minimum and maximum ranges.
|
When the object/bone is rotated outside the limit range, it will be constrained
|
||||||
This can be seen in the *Transform* panel.
|
to that range in its final displayed/rendered position, but the user-set
|
||||||
When an owner is rotated and attempted to be rotated outside the limit boundaries,
|
rotation values will still be outside that range. If the constraint is removed,
|
||||||
it will be constrained to those boundaries visually and when rendered, but internally,
|
the object/bone will then jump back to match those user-set values.
|
||||||
its rotation values will still be changed beyond the limits. If the constraint is removed,
|
|
||||||
its ex-owner will seem to jump to its internally specified rotation.
|
|
||||||
|
|
||||||
Similarly, if its owner has an internal rotation that is beyond the limit, rotating it back
|
Something unique about the Limit Rotation constraint (as compared to the Limit
|
||||||
into the limit area will appear to do nothing until the internal rotation values are back
|
Location and Limit Scale constraints) is that rotations loop, and therefore the
|
||||||
within the limit threshold (unless you enabled the *Affect Transform* option, see below).
|
meaning of the limit range is subtly different. All constraints in Blender
|
||||||
|
internally work on transform matrices, which can't distinguish between e.g. 180
|
||||||
|
and -180 degrees, or 0, 360, and 720 degrees. In other words, any angles that
|
||||||
|
result in the same visual rotation are indistinguishable to the constraint
|
||||||
|
system.
|
||||||
|
|
||||||
Setting equal the min and max values of an axis,
|
What this means for the Limit Rotation constraint is that when the user-set
|
||||||
locks the owner's rotation around that axis... Although this is possible,
|
rotation is outside of the limit range, the final displayed rotation will snap
|
||||||
using the *Transformation Properties* axis locking feature is probably easier.
|
to the closest *visual* rotation in that range, not the closest numerical angle.
|
||||||
|
For example, if you have a limit range of 0 to 90 degrees then a user-set
|
||||||
|
rotation of 340 degrees will actually snap to *0 degrees* because that is the
|
||||||
|
closer *visual* rotation, even though 340 is numerically closer to 90.
|
||||||
|
|
||||||
This transform does not constrain the bone if it is manipulated by the IK solver.
|
Note that this constraint does not constrain the bone if it is manipulated by
|
||||||
For constraining the rotation of a bone for IK purposes,
|
the IK solver. For constraining the rotation of a bone for IK purposes, see
|
||||||
see :doc:`Inverse Kinematics </animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
:doc:`Inverse Kinematics
|
||||||
|
</animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
||||||
|
|
||||||
|
|
||||||
Options
|
Options
|
||||||
@ -55,13 +61,24 @@ Limit X, Y, Z
|
|||||||
|
|
||||||
Order
|
Order
|
||||||
Allows specifying which :term:`Euler` order to use when applying the limits.
|
Allows specifying which :term:`Euler` order to use when applying the limits.
|
||||||
Defaults to the order of the owner.
|
Defaults to the order of the owner, or XYZ if the owner uses non-Euler
|
||||||
|
rotations.
|
||||||
|
|
||||||
Affect Transform
|
Affect Transform
|
||||||
The constraint is taken into account when the object is manually rotated using
|
The constraint is taken into account when the object is manually rotated using
|
||||||
transformation tools in the editors. This prevents assigning transformation
|
transformation tools in the editors. This prevents assigning transformation
|
||||||
property values (as shown in the *Transform* panel) that exceed the specified limits.
|
property values (as shown in the *Transform* panel) that exceed the specified limits.
|
||||||
|
|
||||||
|
Legacy Behavior
|
||||||
|
For backwards compatibility: make the constraint behave in the semi-broken
|
||||||
|
way it did prior to Blender 4.2. This old behavior does not properly account
|
||||||
|
for the looping nature of rotations, and therefore causes
|
||||||
|
unpredictable/erratic rotation snapping. However, this behavior can still be
|
||||||
|
useful in some specific circumstances when `Owner` is set to local space, and
|
||||||
|
some older rig setups utilize that. However, that behavior is better and more
|
||||||
|
robustly accomplished with drivers directly on the object/bone's rotation
|
||||||
|
properties, so new rigs should favor that approach over using this option.
|
||||||
|
|
||||||
Owner
|
Owner
|
||||||
This constraint allows you to choose in which space evaluate its owner's transform properties.
|
This constraint allows you to choose in which space evaluate its owner's transform properties.
|
||||||
See :ref:`common constraint properties <rigging-constraints-interface-common-space>` for more information.
|
See :ref:`common constraint properties <rigging-constraints-interface-common-space>` for more information.
|
||||||
|
@ -50,6 +50,7 @@ Active Shape Key Index
|
|||||||
and tools that move vertices abort with an error if the active shape key is locked.
|
and tools that move vertices abort with an error if the active shape key is locked.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Operators that always modify all shape keys in exactly the same way, like
|
Operators that always modify all shape keys in exactly the same way, like
|
||||||
:ref:`Apply Object Transforms <bpy.ops.object.transform_apply>`, don't check shape key locks.
|
:ref:`Apply Object Transforms <bpy.ops.object.transform_apply>`, don't check shape key locks.
|
||||||
Neither currently do most edit mode operators that modify topology, because the topology is
|
Neither currently do most edit mode operators that modify topology, because the topology is
|
||||||
|
@ -59,6 +59,14 @@ Performance
|
|||||||
|
|
||||||
This panel helps you tweak the performance of the Compositor.
|
This panel helps you tweak the performance of the Compositor.
|
||||||
|
|
||||||
|
.. _bpy.types.RenderSettings.compositor_device:
|
||||||
|
|
||||||
|
Device
|
||||||
|
The device used for compositing.
|
||||||
|
|
||||||
|
:CPU: Use the CPU for compositing.
|
||||||
|
:GPU: Use the GPU for compositing.
|
||||||
|
|
||||||
.. _bpy.types.RenderSettings.compositor_precision:
|
.. _bpy.types.RenderSettings.compositor_precision:
|
||||||
|
|
||||||
Precision
|
Precision
|
||||||
|
@ -17,6 +17,7 @@ RGB to BW Node
|
|||||||
The *RGB to BW Node* makes a color image black-and-white by outputting its luminance.
|
The *RGB to BW Node* makes a color image black-and-white by outputting its luminance.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can directly connect Color sockets to Value sockets in node graphs,
|
You can directly connect Color sockets to Value sockets in node graphs,
|
||||||
which also converts the image to black-and-white. As such, this node is
|
which also converts the image to black-and-white. As such, this node is
|
||||||
not always necessary.
|
not always necessary.
|
||||||
|
@ -24,6 +24,13 @@ Properties
|
|||||||
==========
|
==========
|
||||||
|
|
||||||
Glare Type
|
Glare Type
|
||||||
|
:Bloom:
|
||||||
|
Simulates the glow around bright objects caused by light scattering in eyes and cameras.
|
||||||
|
|
||||||
|
Size
|
||||||
|
Scale of the glow relative to the size of the image. 9 means the glow can cover the
|
||||||
|
entire image, 8 means it can only cover half the image, 7 means it can only cover quarter
|
||||||
|
of the image, and so on.
|
||||||
:Ghosts:
|
:Ghosts:
|
||||||
Creates a haze over the image.
|
Creates a haze over the image.
|
||||||
:Streaks:
|
:Streaks:
|
||||||
@ -36,15 +43,14 @@ Glare Type
|
|||||||
Fade
|
Fade
|
||||||
Fade out factor for the streaks.
|
Fade out factor for the streaks.
|
||||||
:Fog Glow:
|
:Fog Glow:
|
||||||
Looks similar to *Ghost*. However, it is much smaller in size
|
Simulates the glow around bright objects caused by light scattering in eyes and cameras.
|
||||||
and gives more of an atmospheric haze or "glow" around the image.
|
This is similar to the *Bloom* mode, but is more physically accurate, at the cost of much
|
||||||
|
slower computation time.
|
||||||
.. note::
|
|
||||||
|
|
||||||
Viewport compositing results will vary from CPU compositing due to different algorithms.
|
|
||||||
|
|
||||||
Size
|
Size
|
||||||
Scale of the glow relative to the size of the original bright pixels.
|
Scale of the glow relative to the size of the image. 9 means the glow will cover the
|
||||||
|
entire image, 8 means it will cover half the image, 7 means it will cover quarter of the
|
||||||
|
image, and so on.
|
||||||
:Simple Star:
|
:Simple Star:
|
||||||
Works similar to *Streaks* but gives a simpler shape looking like a star.
|
Works similar to *Streaks* but gives a simpler shape looking like a star.
|
||||||
|
|
||||||
|
@ -32,10 +32,12 @@ Wrapping
|
|||||||
Repeat pixels on the other side when they extend over the image dimensions, making endless translating possible.
|
Repeat pixels on the other side when they extend over the image dimensions, making endless translating possible.
|
||||||
|
|
||||||
None, X Axis, Y Axis, Both Axis
|
None, X Axis, Y Axis, Both Axis
|
||||||
|
Filter
|
||||||
|
Interpolation Methods.
|
||||||
|
|
||||||
.. note::
|
:Nearest: No interpolation, uses nearest neighboring pixel.
|
||||||
|
:Bilinear: Simple interpolation between adjacent pixels.
|
||||||
Individual axis wrapping is only supported in the CPU compositor.
|
:Bicubic: Highest quality interpolation.
|
||||||
|
|
||||||
|
|
||||||
Outputs
|
Outputs
|
||||||
|
@ -171,7 +171,7 @@ html_logo = "../build_files/theme/blender-logo.svg"
|
|||||||
# If given, this must be the name of an image file
|
# If given, this must be the name of an image file
|
||||||
# (path relative to the configuration directory) that is the favicon of
|
# (path relative to the configuration directory) that is the favicon of
|
||||||
# the docs, or URL that points an image file for the favicon.
|
# the docs, or URL that points an image file for the favicon.
|
||||||
html_favicon = "../build_files/theme/favicon.ico"
|
html_favicon = "../build_files/theme/favicon.png"
|
||||||
|
|
||||||
if html_theme == "furo":
|
if html_theme == "furo":
|
||||||
html_css_files = ["css/theme_overrides.css",
|
html_css_files = ["css/theme_overrides.css",
|
||||||
|
@ -105,6 +105,7 @@ Both Render Regions can exist at the same time.
|
|||||||
- .. figure:: /images/editors_3dview_navigate_regions_render-border-2.png
|
- .. figure:: /images/editors_3dview_navigate_regions_render-border-2.png
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Render regions only apply to the viewport when using Cycles, not when using EEVEE.
|
Render regions only apply to the viewport when using Cycles, not when using EEVEE.
|
||||||
However, they always affect the final render.
|
However, they always affect the final render.
|
||||||
|
|
||||||
|
@ -11,6 +11,8 @@ Select Menu
|
|||||||
.. seealso::
|
.. seealso::
|
||||||
:doc:`/interface/selecting`.
|
:doc:`/interface/selecting`.
|
||||||
|
|
||||||
|
.. _bpy.ops.action.select_all:
|
||||||
|
|
||||||
All :kbd:`A`
|
All :kbd:`A`
|
||||||
Selects all keyframes.
|
Selects all keyframes.
|
||||||
None :kbd:`Alt-A`
|
None :kbd:`Alt-A`
|
||||||
@ -32,6 +34,18 @@ Box Select (Axis Range) :kbd:`Alt-B`
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
More :kbd:`Ctrl-NumpadPlus`
|
||||||
|
Expand the selection to include the neighbors (in time) of the currently selected keys.
|
||||||
|
Less :kbd:`Ctrl-NumpadMinus`
|
||||||
|
Deselect keyframes with fewer than two selected neighbors.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
Select Linked :kbd:`L`
|
||||||
|
Select keys that are on the same channel as a key that's already selected.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
Columns on Selected Keys :kbd:`K`
|
Columns on Selected Keys :kbd:`K`
|
||||||
Selects keys that are on the same frame as a key that's already selected.
|
Selects keys that are on the same frame as a key that's already selected.
|
||||||
Column on Current Frame :kbd:`Ctrl-K`
|
Column on Current Frame :kbd:`Ctrl-K`
|
||||||
@ -50,18 +64,6 @@ After Current Frame :kbd:`]`
|
|||||||
Select the keys that lie after (or on) the current frame.
|
Select the keys that lie after (or on) the current frame.
|
||||||
You can also click :kbd:`Shift-Ctrl-LMB` anywhere to the right of the Playhead.
|
You can also click :kbd:`Shift-Ctrl-LMB` anywhere to the right of the Playhead.
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
Select More :kbd:`Ctrl-NumpadPlus`
|
|
||||||
Expand the selection to include the neighbors (in time) of the currently selected keys.
|
|
||||||
Select Less :kbd:`Ctrl-NumpadMinus`
|
|
||||||
Deselect keyframes with fewer than two selected neighbors.
|
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
Select Linked :kbd:`L`
|
|
||||||
Select keys that are on the same channel as a key that's already selected.
|
|
||||||
|
|
||||||
.. _dopesheet-marker-menu:
|
.. _dopesheet-marker-menu:
|
||||||
|
|
||||||
Marker Menu
|
Marker Menu
|
||||||
|
@ -103,20 +103,6 @@ This tab allows you to edit the current node group's inputs and outputs.
|
|||||||
:doc:`/modeling/geometry_nodes/attributes_reference` for its outputs.
|
:doc:`/modeling/geometry_nodes/attributes_reference` for its outputs.
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
""""""""""
|
|
||||||
|
|
||||||
.. _bpy.types.GeometryNodeTree.is_modifier:
|
|
||||||
|
|
||||||
Modifier
|
|
||||||
The node group is used as a :doc:`/modeling/modifiers/generate/geometry_nodes`.
|
|
||||||
|
|
||||||
.. _bpy.types.GeometryNodeTree.is_tool:
|
|
||||||
|
|
||||||
Tool
|
|
||||||
The node group is used as a :doc:`/modeling/geometry_nodes/tools`.
|
|
||||||
|
|
||||||
|
|
||||||
.. _editors-geometry_nodes-tool_context:
|
.. _editors-geometry_nodes-tool_context:
|
||||||
|
|
||||||
Tool Context
|
Tool Context
|
||||||
|
@ -164,6 +164,7 @@ Lets you manually specify, and animate, the frame at which the underlying action
|
|||||||
is sampled.
|
is sampled.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Although the setting is called *Strip Time*, its value is a frame number
|
Although the setting is called *Strip Time*, its value is a frame number
|
||||||
inside the action, not inside the strip. If you have an action going
|
inside the action, not inside the strip. If you have an action going
|
||||||
from frame 1 to frame 50 that's referenced by a strip going from frame
|
from frame 1 to frame 50 that's referenced by a strip going from frame
|
||||||
|
@ -57,6 +57,7 @@ Display Filter
|
|||||||
|
|
||||||
You can search the view for data-blocks,
|
You can search the view for data-blocks,
|
||||||
by using Search field in the header of the *Outliner*,
|
by using Search field in the header of the *Outliner*,
|
||||||
|
You can start a search using :kbd:`Ctrl-F` or clear a search with :kbd:`Alt-F`.
|
||||||
|
|
||||||
|
|
||||||
.. _editors-outliner-interface-filter:
|
.. _editors-outliner-interface-filter:
|
||||||
|
@ -76,7 +76,7 @@ Some extension types do not support this, and will always be shown as enabled.
|
|||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
If the Add-on does not activate when enabled,
|
If the Add-on does not activate when enabled,
|
||||||
check the :doc:`Console window </advanced/command_line/introduction>`
|
check the :doc:`Console window </advanced/command_line/index>`
|
||||||
for any errors that may have occurred.
|
for any errors that may have occurred.
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
interface.rst
|
interface.rst
|
||||||
themes.rst
|
|
||||||
viewport.rst
|
viewport.rst
|
||||||
lights.rst
|
lights.rst
|
||||||
editing.rst
|
editing.rst
|
||||||
@ -26,6 +25,7 @@
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
extensions.rst
|
extensions.rst
|
||||||
|
themes.rst
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
@ -145,6 +145,42 @@ File Browser
|
|||||||
:New Window: A new File Browser editor is opened as a regularly sized temporary window.
|
:New Window: A new File Browser editor is opened as a regularly sized temporary window.
|
||||||
|
|
||||||
|
|
||||||
|
.. _prefs-interface-status_bar:
|
||||||
|
|
||||||
|
Status Bar
|
||||||
|
----------
|
||||||
|
|
||||||
|
Preferences that affect the :doc:`/interface/window_system/status_bar`.
|
||||||
|
|
||||||
|
.. _bpy.types.PreferencesView.show_statusbar:
|
||||||
|
|
||||||
|
.. rubric:: Show
|
||||||
|
|
||||||
|
Scene Statistics
|
||||||
|
Shows information about the data in the active scene.
|
||||||
|
|
||||||
|
- **Collection**: The name of the active :doc:`Collection </scene_layout/collections/index>`.
|
||||||
|
- **Active Object**: The name of the active selected object.
|
||||||
|
- **Geometry**: Information about the current scene depending on the mode and object type.
|
||||||
|
This can be the number of vertices, faces, triangles, or bones.
|
||||||
|
- **Objects**: The number of selected objects and the total count of objects.
|
||||||
|
|
||||||
|
Scene Duration
|
||||||
|
Shows the total amount of time of the playback along with the current frame number and total frame count.
|
||||||
|
The format of the duration text is determined by the
|
||||||
|
:ref:`Timecode Style <bpy.types.PreferencesView.timecode_style>`.
|
||||||
|
|
||||||
|
System Memory
|
||||||
|
Shows an estimate of Blender's RAM consumption. On a single-instance single-machine scenario,
|
||||||
|
this estimate provides a measurement against the hardware limit of the machine.
|
||||||
|
|
||||||
|
Extensions Updates
|
||||||
|
Shows the number of :doc:`extensions </advanced/extensions/index>` with available updates.
|
||||||
|
|
||||||
|
Blender Version
|
||||||
|
Shows the version number of Blender that is currently running.
|
||||||
|
|
||||||
|
|
||||||
.. _prefs-interface-translation:
|
.. _prefs-interface-translation:
|
||||||
|
|
||||||
Language
|
Language
|
||||||
|
@ -23,6 +23,14 @@ Preset Management
|
|||||||
Keymap Presets
|
Keymap Presets
|
||||||
Select the keymap from a list of predefined keymaps.
|
Select the keymap from a list of predefined keymaps.
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.keyconfig_preset_add:
|
||||||
|
|
||||||
|
You add a custom keymap configuration to the preset list by :kbd:`LMB` on the *Add* button ``+``.
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.keyconfig_preset_remove:
|
||||||
|
|
||||||
|
You remove a custom keymap configuration from the preset list by :kbd:`LMB` on the *Remove* button ``-``.
|
||||||
|
|
||||||
.. _bpy.ops.preferences.keyconfig_import:
|
.. _bpy.ops.preferences.keyconfig_import:
|
||||||
|
|
||||||
Import
|
Import
|
||||||
|
@ -71,6 +71,9 @@ Operating System Settings
|
|||||||
|
|
||||||
Make this installation your default Blender (MS-Windows & Linux only).
|
Make this installation your default Blender (MS-Windows & Linux only).
|
||||||
|
|
||||||
|
On Linux, if Blender is installed from a package manager such as Snap,
|
||||||
|
file association is handled by the package manager.
|
||||||
|
|
||||||
Register
|
Register
|
||||||
Make the currently in use Blender installation the default
|
Make the currently in use Blender installation the default
|
||||||
for generating thumbnails and the default for opening blend-files.
|
for generating thumbnails and the default for opening blend-files.
|
||||||
@ -81,9 +84,8 @@ For All Users
|
|||||||
Register Blender for all users, requires escalated privileges.
|
Register Blender for all users, requires escalated privileges.
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
.. admonition:: Linux Registration
|
||||||
|
:class: note
|
||||||
Linux Registration
|
|
||||||
|
|
||||||
Files are setup files under: ``/usr/local`` for all users, otherwise ``~/.local`` is used.
|
Files are setup files under: ``/usr/local`` for all users, otherwise ``~/.local`` is used.
|
||||||
|
|
||||||
@ -92,6 +94,25 @@ For All Users
|
|||||||
- The thumbnailer is installed so blend-file thumbnails will be shown in file managers (**For All Users** only).
|
- The thumbnailer is installed so blend-file thumbnails will be shown in file managers (**For All Users** only).
|
||||||
|
|
||||||
|
|
||||||
|
Network
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. _bpy.types.PreferencesSystem.use_online_access:
|
||||||
|
|
||||||
|
Allow Online Access
|
||||||
|
Allow internet access. Blender may access configured online extension repositories.
|
||||||
|
Installed third party add-ons may access the internet for their own functionality.
|
||||||
|
|
||||||
|
Time Out
|
||||||
|
The time (in seconds) that online operations may wait before timing out.
|
||||||
|
|
||||||
|
Use the systems default when zero.
|
||||||
|
|
||||||
|
Connection Limit
|
||||||
|
The maximum number of simultaneous connections an online operation may make.
|
||||||
|
|
||||||
|
Do not limit the number of connections when zero.
|
||||||
|
|
||||||
.. _prefs-system-memory-and-limits:
|
.. _prefs-system-memory-and-limits:
|
||||||
|
|
||||||
Memory & Limits
|
Memory & Limits
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
.. _bpy.ops.preferences.theme_install:
|
|
||||||
.. _bpy.ops.preferences.reset_default_theme:
|
|
||||||
.. _bpy.types.Theme:
|
.. _bpy.types.Theme:
|
||||||
|
|
||||||
******
|
******
|
||||||
@ -15,12 +13,39 @@ change in the multi-choice list at the left, and adjusting colors as required.
|
|||||||
Notice that changes appear in real-time on your screen. In addition, details such as the dot size
|
Notice that changes appear in real-time on your screen. In addition, details such as the dot size
|
||||||
in the *3D Viewport* or the *Graph Editor* can also be changed.
|
in the *3D Viewport* or the *Graph Editor* can also be changed.
|
||||||
|
|
||||||
Themes use Blender's preset system to save a theme.
|
Preset Management
|
||||||
This will save the theme to an XML file in the ``./scripts/presets/interface_theme/`` subdirectory of one of
|
=================
|
||||||
the :doc:`configuration directories </advanced/blender_directory_layout>`.
|
|
||||||
|
Theme Presets
|
||||||
|
Select the Theme from a list of predefined Themes.
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.interface_theme_preset_add:
|
||||||
|
|
||||||
|
You add a custom theme to the preset list by :kbd:`LMB` on the *Add* button ``+``.
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.interface_theme_preset_remove:
|
||||||
|
|
||||||
|
You remove a custom theme from the preset list by :kbd:`LMB` on the *Remove* button ``-``.
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.interface_theme_preset_save:
|
||||||
|
|
||||||
|
You save a custom theme in the preset list by :kbd:`LMB` on the *Save* button.
|
||||||
|
|
||||||
|
This will save the theme to an XML file in the ``./scripts/presets/interface_theme/`` subdirectory of one of
|
||||||
|
the :doc:`configuration directories </advanced/blender_directory_layout>`.
|
||||||
|
|
||||||
|
.. _bpy.ops.preferences.theme_install:
|
||||||
|
|
||||||
|
Install
|
||||||
|
Load and apply a Blender XML theme file and add it to the list of theme presets.
|
||||||
|
|
||||||
|
.. _bpy.ops.preferences.reset_default_theme:
|
||||||
|
|
||||||
|
Reset
|
||||||
|
Reset to the default theme colors.
|
||||||
|
|
||||||
|
Blender comes bundled with a small selection of themes.
|
||||||
|
|
||||||
.. figure:: /images/editors_preferences_themes_example.png
|
.. figure:: /images/editors_preferences_themes_example.png
|
||||||
|
|
||||||
Blender comes bundled with a small selection of themes.
|
|
||||||
|
|
||||||
This is an example of the theme *Blender Light*.
|
This is an example of the theme *Blender Light*.
|
||||||
|
@ -153,7 +153,12 @@ Playback
|
|||||||
Play In
|
Play In
|
||||||
Which editors to update on each animation frame. If an editor is unchecked,
|
Which editors to update on each animation frame. If an editor is unchecked,
|
||||||
it'll only be updated once playback stops (with some exceptions where it'll
|
it'll only be updated once playback stops (with some exceptions where it'll
|
||||||
update on each frame anyway).
|
update on each frame anyway). When starting playback in either the
|
||||||
|
:doc:`Graph Editor </editors/graph_editor/introduction>`,
|
||||||
|
:doc:`Dope Sheet </editors/dope_sheet/introduction>` or the
|
||||||
|
:doc:`NLA Editor</editors/nla/introduction>`,
|
||||||
|
all editors will play back regardless of the settings.
|
||||||
|
This is a feature requested by animators to easily play back all views.
|
||||||
|
|
||||||
.. _bpy.types.Scene.show_subframe:
|
.. _bpy.types.Scene.show_subframe:
|
||||||
|
|
||||||
|
@ -61,6 +61,8 @@ Shared Vertex
|
|||||||
Select Menu
|
Select Menu
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
.. _bpy.ops.uv.select_all:
|
||||||
|
|
||||||
All :kbd:`A`
|
All :kbd:`A`
|
||||||
Selects all UV elements.
|
Selects all UV elements.
|
||||||
None :kbd:`Alt-A`
|
None :kbd:`Alt-A`
|
||||||
@ -73,15 +75,10 @@ Box Select Pinned :kbd:`Ctrl-B`
|
|||||||
Like *Box Select*, but only selects :ref:`pinned <bpy.ops.uv.pin>` UV vertices.
|
Like *Box Select*, but only selects :ref:`pinned <bpy.ops.uv.pin>` UV vertices.
|
||||||
Circle Select
|
Circle Select
|
||||||
See :ref:`Circle Select <bpy.ops.*.select_circle>`.
|
See :ref:`Circle Select <bpy.ops.*.select_circle>`.
|
||||||
|
Lasso Select
|
||||||
|
See :ref:`Lasso Select <bpy.ops.*.select_lasso>`.
|
||||||
More/Less :kbd:`Ctrl-NumpadPlus`, :kbd:`Ctrl-NumpadMinus`
|
More/Less :kbd:`Ctrl-NumpadPlus`, :kbd:`Ctrl-NumpadMinus`
|
||||||
Expands/contracts the selection to/from the adjacent elements.
|
Expands/contracts the selection to/from the adjacent elements.
|
||||||
Select Pinned :kbd:`Shift-P`
|
|
||||||
Selects all pinned UVs.
|
|
||||||
Select Linked
|
|
||||||
Linked :kbd:`Ctrl-L`
|
|
||||||
Selects all elements that are connected to the currently selected ones.
|
|
||||||
Shortest Path
|
|
||||||
Selects the path between two selected elements. (See below)
|
|
||||||
|
|
||||||
.. _bpy.ops.uv.select_similar:
|
.. _bpy.ops.uv.select_similar:
|
||||||
|
|
||||||
@ -125,6 +122,13 @@ Select Similar :kbd:`Shift-G`
|
|||||||
Threshold
|
Threshold
|
||||||
Tolerance for values that are almost, but not quite the same. A higher threshold will select more elements.
|
Tolerance for values that are almost, but not quite the same. A higher threshold will select more elements.
|
||||||
|
|
||||||
|
Select Linked
|
||||||
|
Linked :kbd:`Ctrl-L`
|
||||||
|
Selects all elements that are connected to the currently selected ones.
|
||||||
|
Shortest Path
|
||||||
|
Selects the path between two selected elements. (See below)
|
||||||
|
Select Pinned :kbd:`Shift-P`
|
||||||
|
Selects all pinned UVs.
|
||||||
Select Split :kbd:`Y`
|
Select Split :kbd:`Y`
|
||||||
"Detaches" the selected faces so they can be moved elsewhere without affecting their neighbors.
|
"Detaches" the selected faces so they can be moved elsewhere without affecting their neighbors.
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ Cursor
|
|||||||
(works with all tools) or adjust the 2D Cursor Location in :menuselection:`Sidebar --> View`.
|
(works with all tools) or adjust the 2D Cursor Location in :menuselection:`Sidebar --> View`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
By default, the 2D Cursor is only shown while dragging it. To make it permanently
|
By default, the 2D Cursor is only shown while dragging it. To make it permanently
|
||||||
visible, enable the *2D Cursor* :doc:`overlay </editors/video_sequencer/preview/display/overlays>`.
|
visible, enable the *2D Cursor* :doc:`overlay </editors/video_sequencer/preview/display/overlays>`.
|
||||||
|
|
||||||
|
@ -18,6 +18,13 @@ see `Asset Catalogs on the Blender Developer Documentation <https://developer.bl
|
|||||||
|
|
||||||
.. figure:: /images/asset-browser-catalogs.png
|
.. figure:: /images/asset-browser-catalogs.png
|
||||||
:width: 640px
|
:width: 640px
|
||||||
|
:figclass: only-light
|
||||||
|
|
||||||
|
Example file system and catalog structures.
|
||||||
|
|
||||||
|
.. figure:: /images/asset-browser-catalogs_dark.png
|
||||||
|
:width: 640px
|
||||||
|
:figclass: only-dark
|
||||||
|
|
||||||
Example file system and catalog structures.
|
Example file system and catalog structures.
|
||||||
|
|
||||||
|
@ -72,6 +72,8 @@ Open Recent
|
|||||||
Displays a list of recently opened blend-files.
|
Displays a list of recently opened blend-files.
|
||||||
Hovering over items will show a preview, and information about the blend-file.
|
Hovering over items will show a preview, and information about the blend-file.
|
||||||
Select any of the file names in the list to open that blend-file.
|
Select any of the file names in the list to open that blend-file.
|
||||||
|
When :kbd:`RMB` on a listed item, a context menu will appear; One of the available options is *Open File Location*,
|
||||||
|
which will open that location in an OS file explorer or Finder window.
|
||||||
|
|
||||||
Clear Recent Files List
|
Clear Recent Files List
|
||||||
Removes all items from the list.
|
Removes all items from the list.
|
||||||
|
@ -207,7 +207,7 @@ Pack
|
|||||||
- |none|
|
- |none|
|
||||||
- Particle settings.
|
- Particle settings.
|
||||||
Used by particle systems.
|
Used by particle systems.
|
||||||
* - :doc:`Light Probe </render/eevee/light_probes/introduction>`
|
* - :doc:`Light Probe </render/eevee/light_probes/index>`
|
||||||
- |tick|
|
- |tick|
|
||||||
- |none|
|
- |none|
|
||||||
- Help achieve complex real-time lighting in EEVEE.
|
- Help achieve complex real-time lighting in EEVEE.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
*******
|
****************
|
||||||
Collada
|
Collada (Legacy)
|
||||||
*******
|
****************
|
||||||
|
|
||||||
.. warning::
|
.. important::
|
||||||
|
|
||||||
COLLADA I/O support is now considered as a legacy feature in Blender, and will be removed
|
COLLADA I/O support is now considered as a legacy feature in Blender, and will be removed
|
||||||
in a future release.
|
in a future release.
|
||||||
@ -21,6 +21,10 @@ So it may be possible that your particular usage scenario is not yet supported.
|
|||||||
Collada Exporter
|
Collada Exporter
|
||||||
================
|
================
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Menu: :menuselection:`File --> Export Collada (.dae) (Legacy)`
|
||||||
|
|
||||||
.. figure:: /images/files_import-export_collada_export.png
|
.. figure:: /images/files_import-export_collada_export.png
|
||||||
:align: right
|
:align: right
|
||||||
|
|
||||||
@ -74,15 +78,22 @@ Include Shape Keys
|
|||||||
Global Orientation
|
Global Orientation
|
||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Todo.
|
Apply
|
||||||
|
Rotate all root objects to match the global orientation settings otherwise set the global orientation per Collada
|
||||||
|
asset.
|
||||||
|
|
||||||
|
Forward / Up Axis
|
||||||
|
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
|
||||||
|
between applications default up and forward axes.
|
||||||
|
|
||||||
|
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||||
|
For example, it is common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||||
|
|
||||||
|
|
||||||
Texture Options
|
Texture Options
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Only Selected UV Map
|
|
||||||
When your mesh contains multiple UV layers, then Blender exports all layers by default.
|
|
||||||
This option allows you to only export the active (selected) UV layer.
|
|
||||||
Copy
|
Copy
|
||||||
When you export images either material based image textures,
|
When you export images either material based image textures,
|
||||||
then the exporter creates absolute file references in the export file.
|
then the exporter creates absolute file references in the export file.
|
||||||
@ -90,6 +101,9 @@ Copy
|
|||||||
But if the *Copy* option is enabled, the exporter will create copies of the images instead and
|
But if the *Copy* option is enabled, the exporter will create copies of the images instead and
|
||||||
place the copies besides the export file. In that case the file references are made relative.
|
place the copies besides the export file. In that case the file references are made relative.
|
||||||
|
|
||||||
|
Only Selected UV Map
|
||||||
|
When your mesh contains multiple UV layers, then Blender exports all layers by default.
|
||||||
|
This option allows you to only export the active (selected) UV layer.
|
||||||
|
|
||||||
Geometry
|
Geometry
|
||||||
--------
|
--------
|
||||||
@ -183,6 +197,10 @@ Keep Bind Info
|
|||||||
Collada Importer
|
Collada Importer
|
||||||
================
|
================
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:Menu: :menuselection:`File --> Export Collada (.dae) (Legacy)`
|
||||||
|
|
||||||
.. figure:: /images/files_import-export_collada_import.png
|
.. figure:: /images/files_import-export_collada_import.png
|
||||||
:align: right
|
:align: right
|
||||||
|
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
|
.. _bpy.ops.wm.gpencil_export_pdf:
|
||||||
|
|
||||||
***********************************************
|
*****************************
|
||||||
Portable Document Format (PDF) as Grease Pencil
|
Export Grease Pencil as (PDF)
|
||||||
***********************************************
|
*****************************
|
||||||
|
|
||||||
This format is use for interchanging PDFs between applications,
|
The Portable Document Format (PDF) is use for interchanging PDFs between applications,
|
||||||
it support the export of Grease Pencil animation creating one page in the PDF document for each keyframe selected.
|
it support the export of Grease Pencil animation creating one page in the PDF document for each keyframe selected.
|
||||||
|
|
||||||
.. warning:: The exporter only works in Object Mode.
|
.. warning:: The exporter only works in Object Mode.
|
||||||
|
|
||||||
|
|
||||||
Export Options
|
Options
|
||||||
==============
|
=======
|
||||||
|
|
||||||
The following options are available when exporting to PDF:
|
The following options are available when exporting to PDF:
|
||||||
|
|
||||||
@ -40,4 +41,4 @@ Fill
|
|||||||
Normalize
|
Normalize
|
||||||
When enabled, Export strokes with constant thickness.
|
When enabled, Export strokes with constant thickness.
|
||||||
|
|
||||||
.. note:: The export of the Grease Pencil strokes is doing always from camera view.
|
.. note:: The export of the Grease Pencil strokes is always from camera view.
|
||||||
|
@ -1,17 +1,23 @@
|
|||||||
|
|
||||||
***********************************************
|
**********************************
|
||||||
Scalable Vector Graphics (SVG) as Grease Pencil
|
Import/Export SVG as Grease Pencil
|
||||||
***********************************************
|
**********************************
|
||||||
|
|
||||||
This format is use for interchanging vector based illustrations between applications
|
The Scalable Vector Graphics (SVG) format is use for interchanging vector based illustrations between applications
|
||||||
and is supported by vector graphics editors such as Inkscape, and modern browsers among others.
|
and is supported by vector graphics editors such as Inkscape, and modern browsers among others.
|
||||||
|
|
||||||
.. warning:: The exporter only works in Object Mode.
|
.. warning:: The exporter only works in Object Mode.
|
||||||
|
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.gpencil_import_svg:
|
||||||
|
|
||||||
Import
|
Import
|
||||||
======
|
======
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:menu: :menuselection:`File --> Import --> SVG as Grease Pencil`
|
||||||
|
|
||||||
Options
|
Options
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@ -22,9 +28,15 @@ Scale
|
|||||||
Generated strokes scale.
|
Generated strokes scale.
|
||||||
|
|
||||||
|
|
||||||
|
.. _bpy.ops.wm.gpencil_export_svg:
|
||||||
|
|
||||||
Export
|
Export
|
||||||
======
|
======
|
||||||
|
|
||||||
|
.. reference::
|
||||||
|
|
||||||
|
:menu: :menuselection:`File --> Export --> Grease Pencil as SVG`
|
||||||
|
|
||||||
Options
|
Options
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -20,14 +20,14 @@ these can be enabled in the Preferences through the use of :doc:`Add-ons </edito
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
import_export/alembic.rst
|
alembic.rst
|
||||||
import_export/collada.rst
|
collada.rst
|
||||||
import_export/usd.rst
|
usd.rst
|
||||||
import_export/obj.rst
|
obj.rst
|
||||||
import_export/ply.rst
|
ply.rst
|
||||||
import_export/stl.rst
|
stl.rst
|
||||||
import_export/grease_pencil_svg.rst
|
grease_pencil_svg.rst
|
||||||
import_export/grease_pencil_pdf.rst
|
grease_pencil_pdf.rst
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
@ -106,72 +106,99 @@ Import Options
|
|||||||
|
|
||||||
The following options are available when importing from USD:
|
The following options are available when importing from USD:
|
||||||
|
|
||||||
Data Types
|
|
||||||
Cameras
|
General
|
||||||
Import cameras (perspective and orthographic).
|
-------
|
||||||
Curves
|
|
||||||
Import curve primitives, including USD basis and NURBS curves.
|
|
||||||
(Note that support for Bézier basis is not yet fully implemented.)
|
|
||||||
Lights
|
|
||||||
Import lights. Does not currently include USD dome, cylinder or geometry lights.
|
|
||||||
Materials
|
|
||||||
Import materials.
|
|
||||||
Meshes
|
|
||||||
Import meshes.
|
|
||||||
Volumes
|
|
||||||
Import USD OpenVDB field assets.
|
|
||||||
Shapes
|
|
||||||
Imports USD primitive shapes (cubes, spheres, cones, ect) as Blender meshes.
|
|
||||||
Skeletons
|
|
||||||
Imports USD skeletons as Blender's :doc:`/animation/armatures/index`.
|
|
||||||
Blend Shapes
|
|
||||||
Imports USD skeletons as Blender's :doc:`/animation/shape_keys/index`.
|
|
||||||
|
|
||||||
Path Mask
|
Path Mask
|
||||||
Import only the subset of the USD scene rooted at the given primitive.
|
Import only the subset of the USD scene rooted at the given primitive.
|
||||||
|
|
||||||
Scale
|
|
||||||
Value by which to scale the imported objects in relation to the world's origin.
|
|
||||||
|
|
||||||
Mesh Data
|
|
||||||
UV Coordinates
|
|
||||||
Read mesh UV coordinates.
|
|
||||||
Color Attributes
|
|
||||||
Convert the USD mesh ``displayColor`` values to Blender's Color Attributes.
|
|
||||||
Mesh attributes
|
|
||||||
Read USD ``Primvars`` as mesh attributes.
|
|
||||||
Validate Meshes
|
|
||||||
Check the imported mesh for corrupt data and fix it if necessary.
|
|
||||||
When disabled, erroneous data may cause crashes displaying or editing the meshes.
|
|
||||||
This option will make the importing slower but is recommended, as data errors are not always obvious.
|
|
||||||
|
|
||||||
Include
|
Include
|
||||||
Subdivision
|
|
||||||
Create Subdivision Surface modifiers based on the USD ``SubdivisionScheme`` attribute.
|
|
||||||
Scene Instancing
|
|
||||||
Import USD scene graph instances as collection instances, otherwise they are imported as copies.
|
|
||||||
Visible Primitives Only
|
Visible Primitives Only
|
||||||
Do not import invisible USD primitives. Only applies to primitives with a non-animated
|
Do not import invisible USD primitives. Only applies to primitives with a non-animated
|
||||||
`visibility <https://graphics.pixar.com/usd/release/glossary.html#USDGlossary-Visibility>`__ attribute.
|
`visibility <https://graphics.pixar.com/usd/release/glossary.html#USDGlossary-Visibility>`__ attribute.
|
||||||
Primitives with animated visibility will always be imported.
|
Primitives with animated visibility will always be imported.
|
||||||
|
|
||||||
|
Set Frame Range
|
||||||
|
Update the scene's start and end frame to match those of the USD stage.
|
||||||
|
Create Collection
|
||||||
|
Add all imported objects to a new collection.
|
||||||
|
Relative Path
|
||||||
|
Select the file relative to the blend-file.
|
||||||
|
|
||||||
|
Scale
|
||||||
|
Value by which to scale the imported objects in relation to the world's origin.
|
||||||
|
Light Intensity Scale
|
||||||
|
Scale for the intensity of imported lights.
|
||||||
|
|
||||||
|
Custom Properties
|
||||||
|
Behavior when importing USD attributes as :ref:`Custom Properties <files-data_blocks-custom-properties>`.
|
||||||
|
|
||||||
|
:None: Does not import USD custom attributes.
|
||||||
|
:User:
|
||||||
|
Imports USD attributes in the ``userProperties`` namespace as custom properties.
|
||||||
|
The namespace will be stripped from the property names.
|
||||||
|
:All Custom:
|
||||||
|
Imports all USD custom attributes as custom properties.
|
||||||
|
Namespaces will be retained in the property names.
|
||||||
|
|
||||||
|
|
||||||
|
Object Types
|
||||||
|
------------
|
||||||
|
|
||||||
|
Cameras
|
||||||
|
Import cameras (perspective and orthographic).
|
||||||
|
Curves
|
||||||
|
Import curve primitives, including USD basis and NURBS curves.
|
||||||
|
(Note that support for Bézier basis is not yet fully implemented.)
|
||||||
|
Lights
|
||||||
|
Import lights. Does not currently include USD dome, cylinder or geometry lights.
|
||||||
|
Materials
|
||||||
|
Import materials.
|
||||||
|
Meshes
|
||||||
|
Import meshes.
|
||||||
|
Volumes
|
||||||
|
Import USD OpenVDB field assets.
|
||||||
|
Point Clouds
|
||||||
|
Imports USD ``UsdGeomPoints`` as a :doc:`/modeling/point_cloud` object.
|
||||||
|
USD Shapes
|
||||||
|
Imports USD primitive shapes (cubes, spheres, cones, ect) as Blender meshes.
|
||||||
|
|
||||||
|
USD Purpose
|
||||||
|
Render
|
||||||
|
Include primitives with purpose ``render``.
|
||||||
|
Proxy
|
||||||
|
Include primitives with purpose ``proxy``.
|
||||||
Guide
|
Guide
|
||||||
Include primitives with
|
Include primitives with
|
||||||
`purpose <https://graphics.pixar.com/usd/release/glossary.html#USDGlossary-Purpose>`__ ``guide``.
|
`purpose <https://graphics.pixar.com/usd/release/glossary.html#USDGlossary-Purpose>`__ ``guide``.
|
||||||
Proxy
|
|
||||||
Include primitives with purpose ``proxy``.
|
|
||||||
Render
|
|
||||||
Include primitives with purpose ``render``.
|
|
||||||
|
|
||||||
Options
|
|
||||||
Set Frame Range
|
|
||||||
Update the scene's start and end frame to match those of the USD stage.
|
|
||||||
Relative Path
|
|
||||||
Select the file relative to the blend-file.
|
|
||||||
Create Collection
|
|
||||||
Add all imported objects to a new collection.
|
|
||||||
|
|
||||||
Light Intensity Scale
|
Geometry
|
||||||
Scale for the intensity of imported lights.
|
--------
|
||||||
|
|
||||||
|
UV Coordinates
|
||||||
|
Read mesh UV coordinates.
|
||||||
|
Color Attributes
|
||||||
|
Convert the USD mesh ``displayColor`` values to Blender's Color Attributes.
|
||||||
|
Mesh Attributes
|
||||||
|
Read USD ``Primvars`` as mesh attributes.
|
||||||
|
Subdivision
|
||||||
|
Create Subdivision Surface modifiers based on the USD ``SubdivisionScheme`` attribute.
|
||||||
|
|
||||||
|
Validate Meshes
|
||||||
|
Check the imported mesh for corrupt data and fix it if necessary.
|
||||||
|
When disabled, erroneous data may cause crashes displaying or editing the meshes.
|
||||||
|
This option will make the importing slower but is recommended, as data errors are not always obvious.
|
||||||
|
|
||||||
|
|
||||||
|
Rigging
|
||||||
|
-------
|
||||||
|
|
||||||
|
Shape Keys
|
||||||
|
Imports USD blend shapes as Blender's :doc:`/animation/shape_keys/index`.
|
||||||
|
Armatures
|
||||||
|
Imports USD skeletons as Blender's :doc:`/animation/armatures/index`.
|
||||||
|
|
||||||
|
|
||||||
Materials
|
Materials
|
||||||
@ -184,6 +211,9 @@ Import All Materials
|
|||||||
Import USD Preview
|
Import USD Preview
|
||||||
Convert USD Preview Surface shaders to Principled BSDF shader networks.
|
Convert USD Preview Surface shaders to Principled BSDF shader networks.
|
||||||
|
|
||||||
|
Create World Material
|
||||||
|
Converts the first discovered USD dome light to a :doc:`world background shader </render/lights/world>`.
|
||||||
|
|
||||||
Set Material Blend
|
Set Material Blend
|
||||||
If the *Import USD Preview* option is enabled, the material blend method will automatically be set based on
|
If the *Import USD Preview* option is enabled, the material blend method will automatically be set based on
|
||||||
the ``opacity`` and ``opacityThreshold`` shader inputs, allowing for visualization of transparent objects.
|
the ``opacity`` and ``opacityThreshold`` shader inputs, allowing for visualization of transparent objects.
|
||||||
@ -225,6 +255,13 @@ File Name Collision
|
|||||||
:Overwrite: Overwrite existing files.
|
:Overwrite: Overwrite existing files.
|
||||||
|
|
||||||
|
|
||||||
|
Particles and Instancing
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Scene Instancing
|
||||||
|
Import USD scene graph instances as collection instances, otherwise they are imported as copies.
|
||||||
|
|
||||||
|
|
||||||
Exporting to USD Files
|
Exporting to USD Files
|
||||||
======================
|
======================
|
||||||
|
|
||||||
@ -271,23 +308,65 @@ Export Options
|
|||||||
|
|
||||||
The following options are available when exporting to USD:
|
The following options are available when exporting to USD:
|
||||||
|
|
||||||
Selection Only
|
|
||||||
When checked, only selected objects are exported.
|
|
||||||
Instanced objects, for example collections that are instanced in the scene,
|
|
||||||
are considered 'selected' when their instancer is selected.
|
|
||||||
|
|
||||||
Visible Only
|
General
|
||||||
Only exports objects that are not :doc:`hidden </scene_layout/object/editing/show_hide>`.
|
-------
|
||||||
Invisible parents of exported objects are exported as empty transforms.
|
|
||||||
|
|
||||||
Animation
|
Root Prim
|
||||||
When checked, the entire scene frame range is exported.
|
If set, add a transform primitive with the given path to the stage as the parent of all exported data.
|
||||||
When unchecked, only the current scene frame is exported.
|
|
||||||
|
Include
|
||||||
|
Selection Only
|
||||||
|
When checked, only selected objects are exported.
|
||||||
|
Instanced objects, for example collections that are instanced in the scene,
|
||||||
|
are considered 'selected' when their instancer is selected.
|
||||||
|
Visible Only
|
||||||
|
Only exports objects that are not :doc:`hidden </scene_layout/object/editing/show_hide>`.
|
||||||
|
Invisible parents of exported objects are exported as empty transforms.
|
||||||
|
Animation
|
||||||
|
When checked, the entire scene frame range is exported.
|
||||||
|
When unchecked, only the current scene frame is exported.
|
||||||
|
|
||||||
|
Blender Data
|
||||||
|
Custom Properties
|
||||||
|
Exports :ref:`Custom Properties <files-data_blocks-custom-properties>`
|
||||||
|
as USD attributes in the ``userProperties`` namespace.
|
||||||
|
Blender Names
|
||||||
|
Author USD custom attributes containing the original Blender object and object data names.
|
||||||
|
|
||||||
|
Allow Unicode
|
||||||
|
Preserves UTF-8 encoded characters when writing USD prim and property names
|
||||||
|
(requires software utilizing USD 24.03 or greater when opening the resulting files).
|
||||||
|
|
||||||
|
File References
|
||||||
|
Relative Paths
|
||||||
|
Use relative paths to reference external files (i.e. textures, volumes) in the exported USD file,
|
||||||
|
otherwise use absolute paths.
|
||||||
|
|
||||||
|
Convert Orientation
|
||||||
|
Convert orientation axis to a different convention to match other applications.
|
||||||
|
Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
|
||||||
|
For example, its common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.
|
||||||
|
|
||||||
|
Forward / Up Axis
|
||||||
|
By mapping these to different axes you can convert rotations between applications default up and forward axes.
|
||||||
|
|
||||||
|
Use Settings for
|
||||||
|
Determines the whether to use *Viewport* or *Render* visibility of collection, modifiers,
|
||||||
|
or any other property that can be set for both the *Viewport* and *Render*.
|
||||||
|
|
||||||
|
|
||||||
|
Object Types
|
||||||
|
------------
|
||||||
|
|
||||||
Hair
|
Hair
|
||||||
When checked, parent hair strands are exported as a curve system.
|
When checked, parent hair strands are exported as a curve system.
|
||||||
Hair strand colors are not exported.
|
Hair strand colors are not exported.
|
||||||
|
|
||||||
|
|
||||||
|
Geometry
|
||||||
|
--------
|
||||||
|
|
||||||
UV Maps
|
UV Maps
|
||||||
When checked, includes UV coordinates for exported meshes.
|
When checked, includes UV coordinates for exported meshes.
|
||||||
The name of the UV map in USD is the same as the name in Blender.
|
The name of the UV map in USD is the same as the name in Blender.
|
||||||
@ -297,52 +376,44 @@ UV Maps
|
|||||||
Normals
|
Normals
|
||||||
When checked, includes normals for exported meshes. This includes custom loop normals.
|
When checked, includes normals for exported meshes. This includes custom loop normals.
|
||||||
|
|
||||||
Materials
|
|
||||||
Exports material information of the object.
|
|
||||||
By default the exporter approximates the :doc:`/render/shader_nodes/shader/principled`
|
|
||||||
node tree by converting it to USD's Preview Surface format.
|
|
||||||
If *To USD Preview Surface* is disabled, the material is set to the viewport materials of meshes.
|
|
||||||
|
|
||||||
Additional material properties are set in the *Material* grouping of options.
|
Rigging
|
||||||
|
-------
|
||||||
|
|
||||||
When a mesh has multiple materials assigned, a geometry subset is created for each material.
|
Shape Keys
|
||||||
The first material (if any) is always applied to the mesh itself as well
|
Export shape keys as USD blend shapes.
|
||||||
(regardless of the existence of geometry subsets),
|
|
||||||
because the Hydra viewport does not support materials on subsets.
|
|
||||||
See `USD issue #542 <https://github.com/PixarAnimationStudios/USD/issues/542>`__
|
|
||||||
for more information.
|
|
||||||
|
|
||||||
Rigging
|
Absolute shape keys are not supported.
|
||||||
Armatures
|
|
||||||
Export :doc:`Armatures </animation/armatures/index>` and meshes with
|
|
||||||
:doc:`Armature Modifiers </modeling/modifiers/deform/armature>` as USD skeletons and skinned meshes.
|
|
||||||
|
|
||||||
Limitations:
|
Armatures
|
||||||
|
Export :doc:`Armatures </animation/armatures/index>` and meshes with
|
||||||
|
:doc:`Armature Modifiers </modeling/modifiers/deform/armature>` as USD skeletons and skinned meshes.
|
||||||
|
|
||||||
- Modifiers in addition to Armature modifiers will not be applied.
|
Limitations:
|
||||||
- Bendy bones are not supported.
|
|
||||||
Only Deform Bones
|
|
||||||
Only export :ref:`deform bones <bpy.types.Bone.use_deform>` and their parents.
|
|
||||||
Shape Keys
|
|
||||||
Export shape keys as USD blend shapes.
|
|
||||||
|
|
||||||
Absolute shape keys are not supported.
|
- Modifiers in addition to Armature modifiers will not be applied.
|
||||||
|
- Bendy bones are not supported.
|
||||||
|
|
||||||
|
Only Deform Bones
|
||||||
Root Prim
|
Only export :ref:`deform bones <bpy.types.Bone.use_deform>` and their parents.
|
||||||
If set, add a transform primitive with the given path to the stage as the parent of all exported data.
|
|
||||||
|
|
||||||
Use Settings for
|
|
||||||
Determines the whether to use *Viewport* or *Render* visibility of collection, modifiers,
|
|
||||||
or any other property that can be set for both the *Viewport* and *Render*.
|
|
||||||
|
|
||||||
|
|
||||||
Materials
|
Materials
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Additional options when *Materials* are enabled for export.
|
Exports material information of the object.
|
||||||
|
By default the exporter approximates the :doc:`/render/shader_nodes/shader/principled`
|
||||||
|
node tree by converting it to USD's Preview Surface format.
|
||||||
|
If *To USD Preview Surface* is disabled, the material is set to the viewport materials of meshes.
|
||||||
|
|
||||||
To USD Preview Surface
|
When a mesh has multiple materials assigned, a geometry subset is created for each material.
|
||||||
|
The first material (if any) is always applied to the mesh itself as well
|
||||||
|
(regardless of the existence of geometry subsets),
|
||||||
|
because the Hydra viewport does not support materials on subsets.
|
||||||
|
See `USD issue #542 <https://github.com/PixarAnimationStudios/USD/issues/542>`__
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
USD Preview Surface Network
|
||||||
When exporting materials, approximate a :doc:`/render/shader_nodes/shader/principled`
|
When exporting materials, approximate a :doc:`/render/shader_nodes/shader/principled`
|
||||||
node tree to by converting it to USD's Preview Surface format.
|
node tree to by converting it to USD's Preview Surface format.
|
||||||
If disabled, the material is set to the viewport materials of meshes.
|
If disabled, the material is set to the viewport materials of meshes.
|
||||||
@ -352,6 +423,11 @@ To USD Preview Surface
|
|||||||
Not all nodes are supported; currently only Diffuse,
|
Not all nodes are supported; currently only Diffuse,
|
||||||
Principle, Image Textures, and UVMap nodes are support.
|
Principle, Image Textures, and UVMap nodes are support.
|
||||||
|
|
||||||
|
Convert World Material
|
||||||
|
Convert the :doc:`world material </render/lights/world>` to a USD dome light.
|
||||||
|
Currently works for simple materials, consisting of an environment texture connected to a background shader,
|
||||||
|
with an optional vector multiply of the texture color.
|
||||||
|
|
||||||
Export Textures
|
Export Textures
|
||||||
Export textures referenced by shader nodes to a "textures"
|
Export textures referenced by shader nodes to a "textures"
|
||||||
folder which in the same directory as the USD file.
|
folder which in the same directory as the USD file.
|
||||||
@ -360,14 +436,6 @@ Overwrite Textures
|
|||||||
Allow overwriting existing texture files when exporting textures.
|
Allow overwriting existing texture files when exporting textures.
|
||||||
|
|
||||||
|
|
||||||
File References
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Relative Paths
|
|
||||||
Use relative paths to reference external files (i.e. textures, volumes) in the exported USD file,
|
|
||||||
otherwise use absolute paths.
|
|
||||||
|
|
||||||
|
|
||||||
Experimental
|
Experimental
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -13,4 +13,4 @@
|
|||||||
linked_libraries/index.rst
|
linked_libraries/index.rst
|
||||||
asset_libraries/index.rst
|
asset_libraries/index.rst
|
||||||
media/index.rst
|
media/index.rst
|
||||||
import_export.rst
|
import_export/index.rst
|
||||||
|
@ -8,5 +8,4 @@
|
|||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
link_append.rst
|
link_append.rst
|
||||||
library_proxies.rst
|
|
||||||
library_overrides.rst
|
library_overrides.rst
|
||||||
|
@ -70,6 +70,47 @@ data-blocks of different hierarchies, like a parenting relationships between two
|
|||||||
of a same character.
|
of a same character.
|
||||||
|
|
||||||
|
|
||||||
|
Animation & Overrides
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Due to current design of animation data in Blender, what is editable in overrides' animations can
|
||||||
|
change greatly depending on whether animation data was already defined in the linked reference
|
||||||
|
data-block. Animation data is created for a datablock if it gets animated by keyframes, or
|
||||||
|
through drivers.
|
||||||
|
|
||||||
|
In general, an overrides can do much more with its animation data if no animation data exists
|
||||||
|
in its linked reference data-block.
|
||||||
|
|
||||||
|
**Keyframes (a.k.a. F-Curves)**
|
||||||
|
|
||||||
|
:doc:`Keyframed animation </animation/keyframes/introduction>` belongs to another data-block
|
||||||
|
(an Action one). So it is possible to assign a purely local Action data-block replacing
|
||||||
|
the one linked from the library. This will completely replace the keyframed animation
|
||||||
|
from the linked data though, and not override it in any way.
|
||||||
|
|
||||||
|
Overridden Action data-blocks only support a very limited amount of editing.
|
||||||
|
For example, an existing F-Curve can be muted, but its keyframes cannot be edited,
|
||||||
|
and no new F-Curve can be added.
|
||||||
|
|
||||||
|
**Drivers**
|
||||||
|
|
||||||
|
If the linked reference data has animation data, then its overrides only have
|
||||||
|
limited possibilities to edit the existing :doc:`drivers </animation/drivers/introduction>`.
|
||||||
|
For example, it will be possible to change the exisitng target of a driver,
|
||||||
|
but it won't be possible to add new drivers, or new targets to an existing driver.
|
||||||
|
|
||||||
|
If the linked reference data has no animation data, then its overrides will create a new one
|
||||||
|
when they get some drivers defined. Drivers can then be fully edited, added or removed,
|
||||||
|
just as with purely local data-blocks.
|
||||||
|
|
||||||
|
**NLA**
|
||||||
|
|
||||||
|
The :doc:`NLA editor </editors/nla/introduction>` data also belongs to the animation data
|
||||||
|
of a data-block. However, this data does support some greater level of edition in overrides,
|
||||||
|
including moving or resizing existing strips from the linked data,
|
||||||
|
and adding new local strips.
|
||||||
|
|
||||||
|
|
||||||
Resyncing Overrides
|
Resyncing Overrides
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
|
|
||||||
*******
|
|
||||||
Proxies
|
|
||||||
*******
|
|
||||||
|
|
||||||
Proxies were the historical way in Blender to allow some local editing of linked data-blocks.
|
|
||||||
This was mostly aimed at character animation.
|
|
||||||
|
|
||||||
They are now fully deprecated as of Blender 3.0, replaced by the new
|
|
||||||
:doc:`Library Overrides </files/linked_libraries/library_overrides>`.
|
|
||||||
|
|
||||||
Existing proxies in older blend-files will be converted to library overrides when
|
|
||||||
opening it in Blender 3.2 and later.
|
|
@ -29,7 +29,9 @@ Link
|
|||||||
|
|
||||||
*Link* creates a reference to the data in the source file such that
|
*Link* creates a reference to the data in the source file such that
|
||||||
changes made there will be reflected in the referencing file the next time it is reloaded.
|
changes made there will be reflected in the referencing file the next time it is reloaded.
|
||||||
But linked data is not editable (to some extent, see :doc:`/files/linked_libraries/library_proxies`).
|
But linked data is usually not editable.
|
||||||
|
:doc:`Library Overrides </files/linked_libraries/library_overrides>` can be created from
|
||||||
|
linked data to allow some level of local editing, animation, etc.
|
||||||
|
|
||||||
In the :doc:`File Browser </editors/file_browser>`,
|
In the :doc:`File Browser </editors/file_browser>`,
|
||||||
navigate to the external source blend-file and select the data-block you want to reuse.
|
navigate to the external source blend-file and select the data-block you want to reuse.
|
||||||
|
@ -4,10 +4,82 @@
|
|||||||
About Blender
|
About Blender
|
||||||
#################
|
#################
|
||||||
|
|
||||||
|
Welcome to Blender! Blender is a free and open-source 3D creation suite.
|
||||||
|
|
||||||
|
With Blender, you can create 3D visualizations such as
|
||||||
|
still images, 3D animations and VFX shots. You can also edit videos.
|
||||||
|
It is well suited to individuals and small studios who
|
||||||
|
benefit from its unified pipeline and responsive development process.
|
||||||
|
|
||||||
|
Being a cross-platform application, Blender runs on Linux, macOS, as well as Windows systems.
|
||||||
|
It also has relatively small memory and drive requirements compared to other 3D creation suites.
|
||||||
|
Its interface uses OpenGL to provide a consistent experience across all supported hardware and platforms.
|
||||||
|
|
||||||
|
.. figure:: /images/getting-started_about_introduction_screenshot.jpg
|
||||||
|
|
||||||
|
|
||||||
|
Who uses Blender?
|
||||||
|
=================
|
||||||
|
|
||||||
|
Blender has a wide variety of tools making it suitable for almost any sort of media production.
|
||||||
|
Professionals, hobbyists, and studios around the world use it for creating animations, game assets,
|
||||||
|
motion graphics, TV shows, concept art, story-boarding, commercials, and feature films.
|
||||||
|
|
||||||
|
Check out the `User Stories page <https://www.blender.org/get-involved/user-stories/>`__
|
||||||
|
on the Blender website for more examples.
|
||||||
|
|
||||||
|
|
||||||
|
Key Features
|
||||||
|
============
|
||||||
|
|
||||||
|
- Blender is a fully integrated 3D content creation suite, offering a broad range of essential tools, including
|
||||||
|
:doc:`Modeling </modeling/introduction>`,
|
||||||
|
:doc:`Rendering </render/introduction>`,
|
||||||
|
:doc:`Animation & Rigging </animation/introduction>`,
|
||||||
|
:doc:`Video Editing </video_editing/index>`,
|
||||||
|
:doc:`VFX </movie_clip/index>`,
|
||||||
|
:doc:`Compositing </compositing/introduction>`,
|
||||||
|
:doc:`Texturing </editors/uv/introduction>`,
|
||||||
|
and many types of :doc:`Simulations </physics/introduction>`.
|
||||||
|
- It is cross platform, with an OpenGL GUI that is uniform on all major platforms
|
||||||
|
(and customizable with Python scripts).
|
||||||
|
- It has a high-quality 3D architecture, enabling fast and efficient creation workflow.
|
||||||
|
- It boasts active community support. See `blender.org/community <https://www.blender.org/community>`__
|
||||||
|
for an extensive list of sites.
|
||||||
|
- It can be installed into and run from any directory without modifying the system.
|
||||||
|
|
||||||
|
You can download the latest version of Blender `here <https://www.blender.org/download/>`__.
|
||||||
|
|
||||||
|
.. figure:: /images/getting-started_about_introduction_postprocessing.jpg
|
||||||
|
|
||||||
|
A rendered image being post-processed.
|
||||||
|
|
||||||
|
Blender makes it possible to perform a wide range of tasks, and it may seem daunting
|
||||||
|
when first trying to grasp the basics. However, with a bit of motivation and the right learning material,
|
||||||
|
it is possible to familiarize yourself with Blender after a few hours of practice.
|
||||||
|
|
||||||
|
This manual is a good start, though it serves more as a reference.
|
||||||
|
There are also many online video tutorials from specialized websites.
|
||||||
|
|
||||||
|
Despite everything Blender can do, it remains a tool. Great artists do not create masterpieces
|
||||||
|
by pressing buttons or manipulating brushes, but by learning and practicing subjects
|
||||||
|
such as human anatomy, composition, lighting, animation principles, etc.
|
||||||
|
|
||||||
|
3D creation software such as Blender have an added technical complexity and
|
||||||
|
jargon associated with the underlying technologies.
|
||||||
|
Terms like UV maps, materials, shaders, meshes, and "subdivs" are the media of the digital artist,
|
||||||
|
and understanding them, even broadly, will help you to use Blender to its best.
|
||||||
|
|
||||||
|
So keep reading this manual, learn the great tool that Blender is, and keep your mind open to
|
||||||
|
other artistic and technological areas -- and you, too, can become a great artist.
|
||||||
|
|
||||||
|
|
||||||
|
Further Reading
|
||||||
|
===============
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
introduction.rst
|
|
||||||
history.rst
|
history.rst
|
||||||
license.rst
|
license.rst
|
||||||
community.rst
|
community.rst
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
Welcome to Blender! Blender is a free and open-source 3D creation suite.
|
|
||||||
|
|
||||||
With Blender, you can create 3D visualizations such as
|
|
||||||
still images, 3D animations and VFX shots. You can also edit videos.
|
|
||||||
It is well suited to individuals and small studios who
|
|
||||||
benefit from its unified pipeline and responsive development process.
|
|
||||||
|
|
||||||
Being a cross-platform application, Blender runs on Linux, macOS, as well as Windows systems.
|
|
||||||
It also has relatively small memory and drive requirements compared to other 3D creation suites.
|
|
||||||
Its interface uses OpenGL to provide a consistent experience across all supported hardware and platforms.
|
|
||||||
|
|
||||||
.. figure:: /images/getting-started_about_introduction_screenshot.jpg
|
|
||||||
|
|
||||||
|
|
||||||
Who uses Blender?
|
|
||||||
=================
|
|
||||||
|
|
||||||
Blender has a wide variety of tools making it suitable for almost any sort of media production.
|
|
||||||
Professionals, hobbyists, and studios around the world use it for creating animations, game assets,
|
|
||||||
motion graphics, TV shows, concept art, story-boarding, commercials, and feature films.
|
|
||||||
|
|
||||||
Check out the `User Stories page <https://www.blender.org/get-involved/user-stories/>`__
|
|
||||||
on the Blender website for more examples.
|
|
||||||
|
|
||||||
|
|
||||||
Key Features
|
|
||||||
============
|
|
||||||
|
|
||||||
- Blender is a fully integrated 3D content creation suite, offering a broad range of essential tools, including
|
|
||||||
:doc:`Modeling </modeling/introduction>`,
|
|
||||||
:doc:`Rendering </render/introduction>`,
|
|
||||||
:doc:`Animation & Rigging </animation/introduction>`,
|
|
||||||
:doc:`Video Editing </video_editing/index>`,
|
|
||||||
:doc:`VFX </movie_clip/index>`,
|
|
||||||
:doc:`Compositing </compositing/introduction>`,
|
|
||||||
:doc:`Texturing </editors/uv/introduction>`,
|
|
||||||
and many types of :doc:`Simulations </physics/introduction>`.
|
|
||||||
- It is cross platform, with an OpenGL GUI that is uniform on all major platforms
|
|
||||||
(and customizable with Python scripts).
|
|
||||||
- It has a high-quality 3D architecture, enabling fast and efficient creation workflow.
|
|
||||||
- It boasts active community support. See `blender.org/community <https://www.blender.org/community>`__
|
|
||||||
for an extensive list of sites.
|
|
||||||
- It has a small executable, which is optionally portable.
|
|
||||||
|
|
||||||
You can download the latest version of Blender `here <https://www.blender.org/download/>`__.
|
|
||||||
|
|
||||||
.. figure:: /images/getting-started_about_introduction_postprocessing.jpg
|
|
||||||
|
|
||||||
A rendered image being post-processed.
|
|
||||||
|
|
||||||
Blender makes it possible to perform a wide range of tasks, and it may seem daunting
|
|
||||||
when first trying to grasp the basics. However, with a bit of motivation and the right learning material,
|
|
||||||
it is possible to familiarize yourself with Blender after a few hours of practice.
|
|
||||||
|
|
||||||
This manual is a good start, though it serves more as a reference.
|
|
||||||
There are also many online video tutorials from specialized websites.
|
|
||||||
|
|
||||||
Despite everything Blender can do, it remains a tool. Great artists do not create masterpieces
|
|
||||||
by pressing buttons or manipulating brushes, but by learning and practicing subjects
|
|
||||||
such as human anatomy, composition, lighting, animation principles, etc.
|
|
||||||
|
|
||||||
3D creation software such as Blender have an added technical complexity and
|
|
||||||
jargon associated with the underlying technologies.
|
|
||||||
Terms like UV maps, materials, shaders, meshes, and "subdivs" are the media of the digital artist,
|
|
||||||
and understanding them, even broadly, will help you to use Blender to its best.
|
|
||||||
|
|
||||||
So keep reading this manual, learn the great tool that Blender is, and keep your mind open to
|
|
||||||
other artistic and technological areas -- and you, too, can become a great artist.
|
|
@ -13,28 +13,32 @@ a couple of initial preferences to configure how you interact with Blender.
|
|||||||
These options can always be changed later in the :doc:`Preferences </editors/preferences/index>`.
|
These options can always be changed later in the :doc:`Preferences </editors/preferences/index>`.
|
||||||
|
|
||||||
|
|
||||||
Import Existing Settings
|
Import Preferences From Previous Version
|
||||||
========================
|
========================================
|
||||||
|
|
||||||
This is where you can copy settings from an older version of Blender.
|
This is where you can copy preferences from an older version of Blender.
|
||||||
Doing so will copy preferences and startup files from the previous version of Blender and then loads them.
|
Doing so will copy preferences and startup files from the previous version of Blender and then loads them.
|
||||||
|
|
||||||
The settings need to be imported from previous versions because the configuration files of each Blender version
|
The preferences need to be imported from previous versions because the configuration files of each Blender version
|
||||||
are stored in separate folders. Refer to the :doc:`/advanced/blender_directory_layout` page
|
are stored in separate folders. Refer to the :doc:`/advanced/blender_directory_layout` page
|
||||||
for the location of these folders.
|
for the location of these folders.
|
||||||
|
|
||||||
If you would like to start fresh with the new version, continue to `Create New Settings`_.
|
If you would like to start fresh with the new version, continue to `Create New Preferences`_.
|
||||||
|
|
||||||
|
|
||||||
Create New Settings
|
Create New Preferences
|
||||||
===================
|
======================
|
||||||
|
|
||||||
Language
|
Language
|
||||||
The language used in the user interface.
|
The language used in the user interface.
|
||||||
The list is broken up into categories determining how complete the translations are.
|
The list is broken up into categories determining how complete the translations are.
|
||||||
More language preferences can be set in the :ref:`Translation Preferences <prefs-interface-translation>`.
|
More language preferences can be set in the :ref:`Translation Preferences <prefs-interface-translation>`.
|
||||||
|
|
||||||
Shortcuts
|
Theme
|
||||||
|
Choose between a light or dark theme for Blender.
|
||||||
|
Themes can be customized more in the :doc:`Preferences </editors/preferences/themes>`.
|
||||||
|
|
||||||
|
Keymap
|
||||||
Presets for the default :doc:`keymap </editors/preferences/keymap>` for Blender.
|
Presets for the default :doc:`keymap </editors/preferences/keymap>` for Blender.
|
||||||
Note that this manual assumes that you use the "Blender" keymap.
|
Note that this manual assumes that you use the "Blender" keymap.
|
||||||
|
|
||||||
@ -49,10 +53,10 @@ Shortcuts
|
|||||||
and is intended for people who use many different such applications.
|
and is intended for people who use many different such applications.
|
||||||
Read more about this keymap :doc:`here </interface/keymap/industry_compatible>`.
|
Read more about this keymap :doc:`here </interface/keymap/industry_compatible>`.
|
||||||
|
|
||||||
Select With
|
Mouse Select
|
||||||
Controls which mouse button, either right or left, is used to select items in Blender.
|
Controls which mouse button, either right or left, is used to select items in Blender.
|
||||||
|
|
||||||
Spacebar
|
Spacebar Action
|
||||||
Controls the action of :kbd:`Spacebar`.
|
Controls the action of :kbd:`Spacebar`.
|
||||||
These and other shortcuts can be modified in the :doc:`keymap preferences </editors/preferences/keymap>`.
|
These and other shortcuts can be modified in the :doc:`keymap preferences </editors/preferences/keymap>`.
|
||||||
|
|
||||||
@ -66,12 +70,8 @@ Spacebar
|
|||||||
Opens up the :doc:`Menu Search </interface/controls/templates/operator_search>`.
|
Opens up the :doc:`Menu Search </interface/controls/templates/operator_search>`.
|
||||||
This option is good for someone who is new to Blender and is unfamiliar with its menus and shortcuts.
|
This option is good for someone who is new to Blender and is unfamiliar with its menus and shortcuts.
|
||||||
|
|
||||||
Theme
|
Save New Preferences
|
||||||
Choose between a light or dark theme for Blender.
|
Saves the preferences set above and opens the regular :ref:`splash`.
|
||||||
Themes can be customized more in the :doc:`Preferences </editors/preferences/themes>`.
|
|
||||||
|
|
||||||
Save New Settings
|
|
||||||
Saves the settings set above and opens the regular :ref:`splash`.
|
|
||||||
|
|
||||||
|
|
||||||
Saving Defaults
|
Saving Defaults
|
||||||
|
@ -27,6 +27,9 @@ Shortcut
|
|||||||
A keyboard or mouse shortcut associated to the tool.
|
A keyboard or mouse shortcut associated to the tool.
|
||||||
Value
|
Value
|
||||||
The value of the property.
|
The value of the property.
|
||||||
|
|
||||||
|
Hovering over a color property will display a large swatch preview of the color
|
||||||
|
and the color's hexadecimal, RGBA, and HSVA values.
|
||||||
Library
|
Library
|
||||||
Source file of the active object. See also :doc:`/files/linked_libraries/index`.
|
Source file of the active object. See also :doc:`/files/linked_libraries/index`.
|
||||||
Disabled (red)
|
Disabled (red)
|
||||||
|
@ -23,6 +23,9 @@ You may also associate blend-files with Blender so that when selected from the f
|
|||||||
they will automatically open in Blender.
|
they will automatically open in Blender.
|
||||||
These settings are typically found in conjunction with the Window Manager settings. (Gnome or KDE.)
|
These settings are typically found in conjunction with the Window Manager settings. (Gnome or KDE.)
|
||||||
|
|
||||||
|
To make the installation and configuration fully self-contained, set up a
|
||||||
|
:ref:`Portable Installation <portable-installation>`.
|
||||||
|
|
||||||
|
|
||||||
Install from Package Manager
|
Install from Package Manager
|
||||||
============================
|
============================
|
||||||
|
@ -7,6 +7,11 @@ Check the :doc:`Downloading Blender </getting_started/installing/index>`
|
|||||||
page to find the minimum requirements and the different versions that are available
|
page to find the minimum requirements and the different versions that are available
|
||||||
for Blender (if you have not done so yet).
|
for Blender (if you have not done so yet).
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
|
||||||
|
Blender supports both Intel and Apple Silicon architectures on macOS.
|
||||||
|
Make sure to download a variant that is compatible with your CPU's architecture.
|
||||||
|
|
||||||
|
|
||||||
Install from DMG
|
Install from DMG
|
||||||
================
|
================
|
||||||
@ -18,12 +23,8 @@ Then drag ``Blender.app`` into the Applications folder.
|
|||||||
Depending on the Security and Privacy preferences of your Mac,
|
Depending on the Security and Privacy preferences of your Mac,
|
||||||
macOS will request your approval before opening Blender for the first time.
|
macOS will request your approval before opening Blender for the first time.
|
||||||
|
|
||||||
.. tip:: How to Make a Portable Installation
|
To make the installation and configuration fully self-contained, set up a
|
||||||
|
:ref:`Portable Installation <portable-installation>`.
|
||||||
To keep all configuration files and installed add-ons inside the Blender application bundle,
|
|
||||||
create a folder named ``config`` in the :ref:`LOCAL directory <blender-directory-layout>`.
|
|
||||||
|
|
||||||
.. parsed-literal:: ./Blender.app/Contents/Resources/|BLENDER_VERSION|/config/
|
|
||||||
|
|
||||||
|
|
||||||
Updating on macOS
|
Updating on macOS
|
||||||
|
@ -9,6 +9,11 @@ for Blender (if you have not done so yet).
|
|||||||
|
|
||||||
Download the zip-file or Windows Installer File.
|
Download the zip-file or Windows Installer File.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
|
||||||
|
Blender supports both x64 and arm64 architectures on Windows.
|
||||||
|
Make sure to download a variant that is compatible with your CPU's architecture.
|
||||||
|
|
||||||
|
|
||||||
Install from Windows Installer File
|
Install from Windows Installer File
|
||||||
===================================
|
===================================
|
||||||
@ -30,11 +35,8 @@ manually by clicking *Make Default* on the System tab of the
|
|||||||
:doc:`Preferences </editors/preferences/system>`. Alternatively, you can run ``blender -r``
|
:doc:`Preferences </editors/preferences/system>`. Alternatively, you can run ``blender -r``
|
||||||
from the :doc:`Command Line </advanced/command_line/arguments>`.
|
from the :doc:`Command Line </advanced/command_line/arguments>`.
|
||||||
|
|
||||||
.. tip:: How to Make a Portable Installation
|
To make the installation and configuration fully self-contained, set up a
|
||||||
|
:ref:`Portable Installation <portable-installation>`.
|
||||||
To keep all configuration files and installed add-ons in the executable folder,
|
|
||||||
create a folder named ``config`` in the :ref:`LOCAL directory <blender-directory-layout>`
|
|
||||||
of the unzipped folder.
|
|
||||||
|
|
||||||
|
|
||||||
Install from Microsoft Store
|
Install from Microsoft Store
|
||||||
|
@ -915,9 +915,13 @@ This page lists definitions for terms used in Blender and this manual.
|
|||||||
See :term:`Vertex`, :term:`Edge`, and :term:`Face`.
|
See :term:`Vertex`, :term:`Edge`, and :term:`Face`.
|
||||||
|
|
||||||
Transform
|
Transform
|
||||||
|
Transformation
|
||||||
The combination of location, rotation, and scale.
|
The combination of location, rotation, and scale.
|
||||||
Can be expressed in :term:`World Space` or :term:`Local Space`.
|
Can be expressed in :term:`World Space` or :term:`Local Space`.
|
||||||
|
|
||||||
|
Transformation Matrix
|
||||||
|
A matrix that is used to represent the :term:`Transformation` of an item.
|
||||||
|
|
||||||
Triangle
|
Triangle
|
||||||
:term:`Face` with exactly three :term:`Vertices <Vertex>`.
|
:term:`Face` with exactly three :term:`Vertices <Vertex>`.
|
||||||
|
|
||||||
|
BIN
manual/images/3dprint_checks.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_checks.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_degenerate.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_degenerate.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_distorted.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_distorted.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_hollow_in_out.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_hollow_in_out.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_intersect.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_intersect.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_overhang.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_overhang.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_solid.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_solid.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_suzanne.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_suzanne.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_thickness.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_thickness.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_basics_advanced-panel.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_basics_advanced-panel.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-nose-bones.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-nose-bones.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-nose-landmarks.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-nose-landmarks.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-pivot-position.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-eyes-pivot-position.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-jaw-ear-bones.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-jaw-ear-bones.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-landmarks.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-landmarks.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-lips-merge-point.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-lips-merge-point.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-mouth-teeth-positions.png
(Stored with Git LFS)
Normal file
BIN
manual/images/addons_rigging_rigify_bone-positioning_face-mouth-teeth-positions.png
(Stored with Git LFS)
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user