Skip to content

Nextr Rig UI Debugger

nextr3d edited this page Jul 22, 2021 · 5 revisions

Nextr Rig UI Debugger

This script allows you to easily create Nextr Rig UI's

UI showcase

The workflow for now is to open and run this script manually from the text editor.

Collections

This script should be able to handle adding all of the necessary collections for the main script. It's as easy as selecting the armature to which you want to add the UI. Click the Enable Nextr Rig button which will generate some needed custom properties. Than all you have to do click the buttons to create all of the collections(If your character doesn't have hair you don't need the collection).

Rig Layers

Rig Layers

The eye button determines if the layer is visible in the UI.

You can set a custom name.

Rig Layer index is the index of the rig layer. It starts from 0 and goes to 31. The first row is 0 - 15 and second is 16 - 31.

Rig Layer UI Row is the position of the rig layer's button in the UI. If more rig layers have the same number they will be on one row.

example

In the example above you can see that the third rig layers should be in the third row but it's in the second one, that's because there is no second layer so it will not render an empty space.

Attributes

Attributes allow you to add almost any element from the Blender's UI to the Character UI. It's very useful for adding for example color selectors from some material (Iris color, you don't need to select the Eye object, go to it's material and change it there).

These attributes can also be synced which basically means that attributes with the same data type can read the value from the UI. Useful when you have the same type of modifier on multiple objects and you want them to be either enable or disabled at the same time.

All of the things above are done by right clicking the desired control and either clicking Add Attribute or Sync to Attribute. You can later change this in the Debugger UI.

Attribute Groups

Attribute groups

You can organize attributes into groups for better and more organized UI. You can rename them, change their order and set an icon. You can find icon names via the Icon Viewer add-on included with blender. If the name of the icon can't be find no icon will be showed and it's going to warn you that This icon does not exist

Visibility of attributes

Attributes can change their visibility in the UI either driven by a data path which is than compared to the expression you can specify or by a bone and checking if the bone is selected or not (useful for IK/FK toggles visible only when arm is selected).

Data Path

UI Data Paths

This UI is very similar to the UI used to setup drivers. You must select the type ID-Block, than select the actual ID-Block and in the Data Path input insert the Data Path which you get by right clicking the property of which you want to get the property and click the Copy Data Path.

The expression can be any valid python expression. In the picture you can see ==2 this expression is going to result in the attribute being visible only when bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[1].default_value equals to 2.

Here are some possible expressions:

  • ==True - visible only when the value is 1 or True
  • >=0 - visible only when the value is greater or equal to 0

Bone

UI Bones

Alternative to Data Paths is visibility driven by bones. It's very useful if you want some attributes hidden by the users selection context for example show only IK/FK switch when you select hand.

You just have to select the armature and than the bone and decide if the attribute should be visible when the bone is or is not selected.

Current limitation is that you can't move attributes between panels!

Links

Links Preview

The UI has a section called Link in which you can put buttons allowing the user to very easily navigate the the website of your choice. For example to your social media if the Character is shared publicly. To a wiki page regarding your character/it's features/etc.

Link Section and Links

The Debugger allows you to put an icon and text of your choice on the button which when pressed will open the default browser and navigate to the website you set. There are no checks if the website is valid and the behavior when it is not depends on the browser

Clone this wiki locally