Face-Map 2.8 Proposal #51675
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
16 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#51675
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Update
Currently this project is postponed until we have a working Python-Widget API which will use face-maps in a generic way.
After this face-maps can be used as just one of the possible inputs for manipulators.
This means we don't need to depend on each face-map referencing a bone.
There is now a working proof of concept addon in contrib:
This design task is to outline the design for face-map usage in Blender2.8.
Note that there are lots of possible uses of face-maps, where they could be used as programmable widgets but that's out of scope for this document which focuses on getting initial planning, so it can be merged into 2.8 branch for continued development.
Motivation
The aim in having face-maps is to allow people to manipulate the rig quickly without having to select objects & switch modes, select the correct bone layers... etc.
Instead, users can make immediate adjustments.
Who Would Use This?
Face-maps have a similar purpose control bones.
Where a rigger exposes only a subset of bones for animators.
These would typically be used by animators and layout artists.
Someone who isn't experienced with Blender should be able to open a character file and manipulate it easily.
Proposed Functionality
Face-maps can be accessed from Object Mode, so users don't need to first select armatures before posing them and can make adjustments.
*
Edit: we may end up changing the method used to detect which face-maps to display, the main goal is to allow tweaking face-maps from multiple objects at once - exactly how these are chosen may change.Usage
(renaming a bone, toggling a modifier, changing layers... etc).
Development Plan
Currently an open topic - at which step would we consider merging into 2.8 acceptable.
Feature Complete
Open Topics
These are issues that can be addressed as we reach them, I don't think we need to make a decision now.
Noting the issues since it seems likely we will need to handle them before 2.8x release.
Test File: Vincent28.blend
Changed status to: 'Open'
Added subscriber: @ideasman42
Added subscriber: @dfelinto
Added subscriber: @JulienDuroure
Added subscriber: @JoshuaLeung
Hmm... it's a bit unclear atm what is intended here regarding what modes these will be available in. On one hand, it sounds like you're saying that facemaps will always be available in object mode, but then, in the next paragraph/section, you mention stuff about these activating corresponding bones and allowing tools like keyframing/breakdowner/pose-library/motion paths/etc. to be used as if the bone was selected.
Pros of Object-mode facemaps:
Cons of Object-mode facemaps:
Except for pure shapekey-only rigs, you'll likely end up having some bones anyway as part of the charater's rig. So, unless facemaps is really useful for anything other than selecting parts of a character to animate it, I'd be tempted to make it so that:
Anyway, that is just a dump of how I think this should work (though we'll probably need to have a good hard look at this object/pose mode split at some point in the future...)
To the first point, face-maps will be available in object mode. Clicking on a face-map associated with a bone will activate that armature.
As for mesh selection, this could be handled as with existing manipulator widgets.
Left click to activate the manipulator, right click to select the mesh.
There is then a conflict with 3D cursor placement.
While I wanted to avoid adding more options, face-maps might end up needing to be a toggle if we can't co-exist well enough with other object mode operators.
Right, this is currently the case. (no plans on changing)
Currently this is pre-calculated based on armature modifers, not sure there is much benefit to making the user manually set this up?
Even in the case of indirectly used armatures (armature -> mdef -> mesh), we could detect this.
By the sounds of it this means: All visible armatures in pose-mode will have their face-maps available, no matter their selection state.
Seems like it could work well - one downside is that you might end up needing to manually switch out of pose-mode when you'd otherwise just click away.
This particular aspect fo face maps is fairly open to change as we go AFAICS.
Yes, its noted in the proposal - even though we don't need to set-this in stone early on, we might want to choose how we would implement. (should the bone toggle the face-map, does the face-map choose the associated data type?)
As long as we support multiple objects face-maps being active at once - exactly which are active at any time can be tweaked based on user-feedback.
Edited the proposal to clarify some points you raised.
Thanks for the feedback!
Added subscriber: @Djay
Added subscriber: @BassamKurdali
Added subscriber: @AdamPreisler
Hi,
I noticed there are FaceMaps now which are not only useful for animators but really for any modeller who wants to save certain face selections (some checkerboard selections weren't possible with vertex groups).
I was actually using "Mark Freestyle Face" for this in the past even though I wasn't using Freestyle at all. Because it let me mark anything through a simple shortcut Ctrl+F and select it again with Shift+G.
While FaceMaps are great it's a shame we can't use them in the Shader Editor in any way.
In fact I thought it would be super cool if there could be an RGB FaceMap allowing us to assign RGB color to faces that we can later use in Shader Editor to color different parts of the model according to that.
I know it can be made through vertex colors if you split the mesh at the seams but that might be too excessive at times?
Added subscriber: @MetinSeven-1
I'd very much love to see the Face Map functionality also being used for a ZBrush-like polygroup workflow in Sculpt Mode (and Edit Mode). That would be very welcome and useful.
Added subscriber: @michaelknubben
I agree with @AdamPreisler and @MetinSeven-1, to limit these to animation would be a mistake in my opinion. Many tools and modifiers would benefit from having Face Groups in addition to the current Vertex Groups.
Added subscriber: @xan2622
Added subscriber: @Wahooney
Agreeing with @michaelknubben, @AdamPreisler and @MetinSeven. Adding Edge Groups would also be very useful (and consolidating Edge Bevel Weights, Edge Crease Weights, etc. into the system), and being able to chose between Face, Edge, Vertex Groups in modifiers would make procedural modelling much better (ie. Mask, Array, Mirror, etc.)
Removed subscriber: @MetinSeven-1
Added subscriber: @DanielGrauer
Added subscriber: @dstk421
Great initiative. This face-map proposal was similar to the way we used to animate faces on Premo system (dreamworks). These face-map selections would drive a complex control-less facial rig underneath. Very intuitive and fast.
Here is a Siggraph link to a paper showing the underneath facial rig controls to set what each facial-set would move. There is a very interesting short video in the link after the text, that shows how to setup your macros.
https://dl.acm.org/doi/10.1145/2791261.2791262
since there are also Face Sets now for sculpting, i would like to propose that Face Maps might be renamed to something that represents better what the usage is, maybe Bone Map or Pose Map would be more fitting and also avoid the confusion between Face Mapsand Face Sets in the future.
Added subscriber: @laurentlabede
Added subscriber: @RedMser
Added subscriber: @TakeshiFunahashi
I hope please not restrict Face Map usage only for bone related things..
Because I currently use Face Map to keep material assignment... So even though I change or tweak material slot name, or merge them sometimes, I can keep each surface assignment as Face map Name.
I suppose blender will not offer way to set name for surface group which set material... (material name change >>> assigned surface group name change), So to keep surface group isolated from material name, I need to use Face Map.
Actually I may prefer to use Face map as grouping way for Faces.
We use vertex group for modifier, or rig weight map, or simply just group as user need to easy return current selections temporally.
So I feel face map is face grouping function, which blender had not offered before. (select vert/edge/Face, then save and re-use as I need for same structure mesh)
Of course it is good to add new function which can use face map, but when it is used for specific prupose, I hope there should be way to save face map as data and can set Fake User. toggle / swap Face map for each purpose... (To auto generate rig we use "Rig-Face-map set", for shape key we use" Shape key-Face map set"
. For materal assign gorup, we use Mat Face-map which isolated from material slot)
Then I may request even though at current there is no clear direction about face map, the tool is already used for user for their prupose, then I hope someone will add Fake User, then can save it as blend file, and hope to see transfer "Face map" from Active to Selected, anytime I need for same structure figure (vertex order, vertex coount)
At current we can set only one Face Map for each mesh (object data), and there is no way to keep multi face map , save and re-use. and as described, one face can only set one Face map group.. (it is not same as vertex group,,,, we can add any vertex group without break bone weight map for posing)
as far as I know, the face maps have been deleted, probably this task is no longer needed