Coder Social home page Coder Social logo

mustard2 / mustardui Goto Github PK

View Code? Open in Web Editor NEW
284.0 7.0 29.0 650 KB

Custom UI for Blender human models. It features automatic outfits switch, custom properties support, armature panel creation, and much more.

Home Page: https://mustard3d.eu

License: MIT License

Python 100.00%
blender blender-python python blender-models-ui blender-addon blender-plugin blender-scripts

mustardui's Introduction

MustardUI

MustardUI is a Blender script that provides an intuitive and easy-to-use user interface for human models.

Note: do not download the file from the Code button, use the .zip file on the latest release instead.

Features

The main features are:

  • Configuration panel to create your UI without writing a single line of Python code
  • Automatic Outfit and Hair recognition, with possible manual additions
  • Full outfit support: possibility to combine parts from different outfits, automatic mask/armature layers switcher for the body and the hair on outfit selection, and many other functionalities
  • Settings like Subsurface Scattering and Normals Auto Smooth can be toggled on/off for all model parts in one click
  • Any Blender property can be added with a simple right-click to Body, Outfit and Hair panels
  • Diffeomorphic Daz Morphs support for Daz based models
  • Simplify button to quickly turn off modifiers and settings that can decrease Viewport performance
  • Various other tools for animators (physics panel, lattice tool, and many others)

Installation and Configuration

Download the latest version from the Releases page.

For creators of models, be sure to follow the Developer Guide!

Tutorial

You can provide the users of the UI this tutorial (MustardUI section).

Note for Developers/Users

Feel free to open new Issues, both for bugs and new features proposals. Also, all comments are very welcome!

mustardui's People

Contributors

cl3m3c7 avatar coderestricted avatar mustard2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mustardui's Issues

[Orphan Data Issues] Outfits

At the moment removing a character (armature, outfits, etc..) doesn't actually delete them from the file because the data are linked.

I will create a tool to do this automatically.

As a workaround, in the outliner go in Blender data and manually remove the objects. It is very important if you want to remove a character and its MustardUI instance to delete both the Armature object AND the armature data (so one item in Objects and one in Armature).

Name of Material Normals not explicative

The Material Normals name in the Body settings is not intuitive.
This should be changed with something like Eevee Optimized Normals, and have the opposite effect (optimizing when enabled, using standard normal nodes when disabled).

Update documentation to 0.21

Documentation is outdated and refers to 0.21. In particular custom/additional properties for body and outfits are not how they are implemented in MustardUI 0.21.

Check issue #11 for more informations.

UI might break when deleting outfits collections

The UI outfit tab might become unusable after deleting outfits from the outliner instead of from the outfit list in Configuration mode.

As a workaround:

  • go in Configuration mode
  • delete outfits from the Outfits List
  • close Configuration mode
  • safely delete collections

Change name in Clean menu

Change JCMs to Corrective shape keys, as the name might not be understood by people not aware of Daz morphs structure and naming conventions.

Outdated documentation

The documentation is outdated. Missing stuffs:

  • how to add custom properties
  • how to add particle physics hair in the UI

UI check for Diffeomorphic version

Some models require Diffeomorphic 1.6.1 to work properly.
A check will be implemented to check this minimum Diffeomorphic version constraint.

Outfit collection deletion

Deleting a collection which was selected as an outfit collection might break the configuration menu in 0.20.0.

This will be fixed in the new version.

Workaround: go in the console and check which collection gives you the following error (12 in this example) with the command:

>>> D.objects['Judy'].data.MustardUI_RigSettings.outfits_collections[12].collection.name

(change the object 'Judy' with your armature name).
The error you will get is:

Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'name'

Remove the collection (in this example with index 12) with

>>> D.objects['Judy'].data.MustardUI_RigSettings.outfits_collections.remove(12)

No UI script generation

Hi there,

I'm using the last release 0.23 and the blender version 3.2, and don't seem to be able to generate the UI script that I find in other models done with mustardUI.

I don't know what I'm doing wrong. I suppose it should generate on ending the ui configuration but nothing happens. I still have the n-panel with the options and properties that I added, but no script file. Neither do I have an error or warning message in the console, info or log.

And while I link the collection with the rig, I do not have the access to the custom properties.

So I'm a bit lost on how to help with further info.

If you need something, tell me.

Shape Key disabled with Morph disabled

Since the shape keys are disabled with the Morph enable/disable button, an option to choose if shape keys should be enabled/disabled with the button might be added.

Fbx with rigged bones

I exported fbx successfully, when I reimported no bones or armatures show? How do I fix it?

Changing outfit

Changing outfits in version 0.20.0 might lead to an error, if the armature panel is not activated.
This would not prevent the correct switch of outfit, but only generates an error after the swapping.

This will be fixed in the new version.

Workaround: create the armature panel in the Configuration menu, even if you don't want to add layers.

Hair meshes render visibility option

Discussed in #34

Originally posted by mokujinh April 5, 2022
Adding a shortcut "hide for render" option for hair meshes could be really interesting if you plan to add helmets and/or hats for models as extra outfits. The current version of the script has an option to hide hair meshes and armatures but only for the viewport.

Update documentation

Documentation should be updated with 0.23 and 0.23.1 new features and changes.

Library linked rig workflow

I have found that most if not all of the properties and operators in the UI are not library-overridable.
Meaning, when one links the rig in another file, and makes either a proxy or a library override, this UI is simply disabled because the properties it controls are not editable.

  • the layers visibilities
  • the setting checkboxes, with masks, etc

meaning that this UI is only friendly to appending the rig. Which, in all regards, is functional and makes things work, but it also means a lot of data duplication.

Outfit specific custom properties

Possibility to add custom properties that are specific to one outfit.

For instance, one outfit needs a linked custom property on the body that should be removed as soon as you switch to another model.

Error when enabling/disabling morphs

An error when enabling/disabling drivers might prevent morphs to be correctly switched on/off.

To solve this, add a new check (if != None) for animation_data.drivers in enable/disable drivers operators.

Complete custom properties support

In a new upcoming version you will be able to add almost every property (animatable and not) to MustardUI with a simple right click on any Blender properties (similar to https://github.com/Mustard2/MenuCreator , but better and more efficient).

What to expect soon:

  • complete new UI and custom properties implementations (now with drivers instead of custom functions, for better efficiency)
  • possibility to sort the custom properties
  • smart custom properties import, so that if you miss the MustardUI naming of the properties you will import those in one click too
  • all animatable properties (except for boolean, this is a Blender limitation) will allow to change description, max/min to any valye, default value
  • the outfits will have not only single pieces properties, but now you will have new custom properties that will affect all outfits pieces (for instance a texture set)
  • full support for hair (in 0.20.20 there was an initial implementation based on the same outfits implementation)
  • and much more

If someone wants to test it, I'm always looking for volunteers. :)

Undo and Redo

Is there a way that I can undo the Mustard config if ever down the line I want to add more outfits or settings?

Custom property rebuild fails

Custom property rebuild operator fails when it has to remove several custom properties.

Fixed in upcoming 0.22.3.

Performance Loss After Adding Outfits

Prior to adding outfit collections to MustardUI my viewport FPS is 60-62. After adding 12 outfits to MustardUI, viewport FPS drops to 50-52. If I delete the outfits from MustardUI, I do not gain the ~10 FPS back. All clothing is disabled in viewport and no custom properties were added.

It's a 'permanent' loss I've not been able to figure out how to recover from. Even if I remove MustardUI from my blend ("UI Removal"), unregister script, save, reload, etc -- I never gain that 10 FPS back.

I have tested this multiple times with backups and the same thing happens every time.

Any suggestions?

One-click Optimization function (a.k.a. Simplify for MustardUI models)

I would like to create a new function to optimize the models in one click.

There are currently some things that are still not convincing me:

  • should it be tweakable (options to choose which things to disable)?
  • from the UI perspective, where shuold I put it? Which UI section? Should I create a new panel?

Add global triangulate option

Some outfits use this option to get better shadows in some cases.

Since triangulate is computationally expensive, this can be added as a new global outfit property.

Auto Blink animation Tool

A new tool to animate blinking given a shape key or a custom property (e.g. a morph from Diffeomorphic).

Hair icon name changed in Blender 3.2

The icon name is changed in Blender 3.2, from "HAIR" to something else.

I will not provide support for not officially released Blender versions, if you have problems open the script and remove all occurrences of icon="HAIR". I will fix it in the main release of Blender 3.2, or find a workaround.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.