UuuNyaa / blender_mmd_tools

MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance.
GNU General Public License v3.0
2.25k stars 109 forks source link

Organize UI #11

Closed UuuNyaa closed 2 years ago

UuuNyaa commented 2 years ago

Organize the UI in a way that is easy to understand, since there are many functions that users do not know/familiar.

MMD Tools on Sidebar (Utilities for Model Creation, Hide/Show with Preferences)

image

MMD Tools on Sidebar (Utilities for Scene Creation)

image

image

3D Viewport (Move from Sidebar)

image

image

nagadomi commented 2 years ago

Overall, I think it is better than before (I checked https://github.com/UuuNyaa/blender_mmd_tools/commit/96f8826bba2cfbac18e578d24729773a2f1f6792). The following is my personal opinion.

change_mmd_ik_loop_factor should also be placed in Model Setup panel.

change_mmd_ik_loop_factor is the operator to fix IK not working fine on Blender. Currently, it is placed in Object Properties.

IK Toggle button (PoseBone.mmd_ik_toggle)

I don't know if Misc Tab > MMD Display will be removed in the future, but I think it needs to be placed somewhere.

If the IK On/Off state is used in the VMD, the keyframes are inserted into this property. Without the button, IK On/Off state will not be visible except in the Graph Editor.

Global Translation

This operator is at the top of Model Setup panel, but I think it should be at the bottom. Because I think this operator is not used very often. (However, I can read Japanese, so I don't know if users who can't read Japanese often use this operator.)

Also, this operator panel cannot be reset after executing a preset. I think it needs a reset/reload button.

Convert Materials for Cyclces

I'm not sure if this feature is still needed in mmd_tools, but it would be useful to have Convert materials to Principled BSDF to create the base materials for Blender.

Model Setup > Visibility > Reset

This button executes separete_by_materials. It's probably a bug.

UuuNyaa commented 2 years ago

change_mmd_ik_loop_factor should also be placed in Model Setup panel.

I'll accept it.

IK Toggle button (PoseBone.mmd_ik_toggle)

This UI is slow to calculate, so I hesitated to display it all the time. However, I'll try to display it somehow.

Global Translation

You're right. The Model Setup panel is intended for use cases where the model is just to use in Blender. Do you think people who are not model creators will use the translation in the first place?

Convert Materials for Cyclces

I will cut down on the unnecessary features (eg. render switch) and place the button under the Material:.

Model Setup > Visibility > Reset

Sorry, I haven't implemented it yet.

nagadomi commented 2 years ago

This UI is slow to calculate

It is possible to add a bool property to the panel class that controls whether the button is displayed. like:

layout.prop(self, "show_ik_toggle_buttons") # bool property, default false
if self.show_ik_toggle_buttons:
   # add ik toggle buttons to the panel
   # ..

Do you think people who are not model creators will use the translation in the first place?

I've never used this feature. I recall that this feature was originally intended to convert bone names, shapekey names and material names into English for users who cannot read Japanese.

listelin commented 2 years ago

Preferences: Enable MMD model Creation Features Option is very nice. Thank you!

But, when Enable MMD model Creation Features : OFF, Global Translation button still appears. Is this bug?

UuuNyaa commented 2 years ago

@nagadomi

It is possible to add a bool property to the panel class that controls whether the button is displayed. like:

Thank you for the information. I did not know that layout.prop can refer to python instance members. (I thought that only Custom Properties added to ID, Bone or PoseBones could be referenced)

Global Translation this feature was ... for users who cannot read Japanese

I'm sure there are users like that. Recently I learned that some model creators are needing for a translation feature during export.

So, there are two translation use cases:

  1. used by model creators when exporting (Blender names to Japanese MMD names)
  2. used by model users when importing (Japanese Blender Names to English Blender Names)

@listelin Therefor, even if Enable MMD model Creation Features is off, some translation feature will remain (use case 2)

nagadomi commented 2 years ago

panel class I did not know that layout.prop can refer to python instance members.

I was confusing it with Operator panel/class. However, it is possible to use the preferences property or scene's custom property or selected model's custom property instead.

UuuNyaa commented 2 years ago

I'm almost done organizing the UI. ( c437485f25b92243632d41338f579148ade09b9a )

You can enable the pre-release UI by following steps in this video. https://user-images.githubusercontent.com/70152495/146657980-a28f60e9-7143-4b12-993d-b97de355213b.mp4

The next step is to write a manual for the new UI.

UuuNyaa commented 2 years ago

Released as v2.0.0 :partying_face: