MCprep icon indicating copy to clipboard operation
MCprep copied to clipboard

Updated UX for vivy support

Open TheDuckCow opened this issue 7 months ago • 1 comments

There's a few areas that could be smoother for the setup of Vivy before it rolls out to all users.

Consider this proposal a draft placement where I'm going to edit my thoughts once I have the idea of the flow down a bit better. The end goal is that we'll move to a blend file based template solution, will fallbacks to a native built in approach (which will also be selected by default).

Some initial thoughts:

  • Ensure the native/built in "template" which will be generated in code is always present in the dropdown for prep materials. We'll need to consider what it means to retain (or not) the many customizations we have today for materials
  • We might want to consider using edit linked library's addon function instead of our own for "Edit vivy materials", since right now it immediately opens the file and doesn't give you an option to 'return', and doesn't prompt you to save or recognize if you're already in the vivy material blend. These things are already handled by the edit linked library, if we can leverage its functionality (or at worst, copy some of the code relevant it already has so we don't totally re-invent the wheel).
  • The authoring of maps workflow and defining materials could be smoother. I need to think on this more, but at a minimum I think that the generate materials functionality from the materials tab should be the starting point to creating a texture template that people can work from
  • I find it a bit confusing the mapping of the template materials to what actually gets imported from the vivy blend - I think simplifying it so the name of the template is just the name of the material in that blend file, reducing the need for extra mapping. We should include UI for
  • I'd vote in favor of actually removing the bulk json editor, I feel it's a bit complicated and is more to maintain. Instead, let's just make it very straight forward and 'idiot proof' in the main UI itself.
  • We might want a function for e.g. "add to vivy template" even if you're in another file. Could into the steps of edit linked library if we can carry along the source blend file we are leaving along with the material name from the blend, so we can import that into the vivy template (clearing image datablocks ofc). That seems like a more usual workflow for users. Better yet, could even be done in a background instance of blender so they never have to leave the file they are in (maybe).
  • Another open note that i want to rethink more about the refinement logic (or at least UX) some more, no specific proposal in mind yet.

These are just some initial thoughts, happy to hear more from you @StandingPadAnimations

TheDuckCow avatar Apr 07 '25 02:04 TheDuckCow

Some thoughts I have currently (will go further in-depth when I get the chance):

  • We may have to visit some ideas for extending Vivy as-is at the moment for a built-in template, so we have feature parity with the existing prep materials system, such as:
    • Proper system around animated textures (though this would require a lot of thought behind it)
      • Currently handled through the diffuse pass, but maybe we should have a separate option?
      • How should frame controls be handled?
    • Sync materials
      • Maybe consolidate with Vivy's codebase as they're sort of similar, perhaps even make sync materials an abstraction on top of Vivy?
  • Editing libraries definitely needs to be easier. I'll take a look at Edit Linked Libraries for reference (seems to be a single file, so it shouldn't be too difficult to reference). I think we'll have to copy the code as it's now an extension, not bundled with Blender.
  • I agree that the current workflow needs to be smoother, though I'm not sure how we could while also making sure more mundane stuff can't be accidentally messed up. When it comes to nudging users to Vivy, I think we could move towards an eventual Sync materials -> Full Vivy system pathway, but currently I'm honestly not sure of a good way to nudge users to Vivy, but in a way that's "related" to what they're doing.
    • I also do want to push users towards the idea of multiple "Vivy libraries" (a library being a folder with the material blend and JSON files), and choosing them on a per-file basis (which actually can be currently done under the Advanced tab, though I forgot to mention it during out meeting a few weeks back)
  • The idea behind allowing separate names from the underlying Blender templates is to allow flexibility with naming conventions. Maybe we could however use the material name as the default in the UI (though users may choose to change it if they want)
  • I'm a bit on the fence with removing the bulk JSON editor for now. On one hand, it can be pretty confusing for some, but on the other hand, I'm of the opinion that it lower level stuff should be exposed to making advanced editing easier. Text editing is an option though, so maybe we could have some form of "Direct edit" option for direct editing in text, and then have further abstractions for common operations.
    • If we do further abstract common operations however, how should those look in the UI?
  • I do definitely want to have some further discussion with getting users nudged to Vivy, haven't really thought much on how we could do that.
  • I did have some ideas last year for refining (pun unintended) the material JSON structure to something more tree-like (which could theoretically allow for configuring with nodes), but it never really went anywhere.

StandingPadAnimations avatar Apr 07 '25 05:04 StandingPadAnimations