Hello,
If you don't mind, I have a few more questions / suggestions regarding AnyPortrait.
1- During vertices editing (e.g. during a MorphController key edit), I would like to move the pivot point so I can rotate the selected vertices around the point of my choice rather than around the selection center. Is it possible? If not, this would be a nice addition.
2- Can we scale the animation keys instead of moving them?
For example, if you select multiple keys in a unity animation, it shows two vertical bars that allow the user to stretch the animation. Something similar in ap would be a useful addition I believe.
3- Is It safe to change a bone’s scale to make it shorter or longer? Editing a bone's length using the Length field is very impractical otherwise, when there are child bones attached.
4- Is it possible to have part of a meshA behind a meshB, but another part of meshA in front of meshB? For example, if a character has an animation where their elbow is behind the chest, but their hand in front of it, where both the elbow and hand are the same mesh.
5- What is the proper use case for Mesh groups? At first, I viewed them as a convenient way to organize my ap character’s meshes (like folders), but I realize now that groups come with strong restrictions that make me reluctant to use them:
a) During an animation, I cannot use Extra Option to move a mesh depth out of its Mesh group
b) If I use a control parameter (eg morph controller) inside a mesh group, I cannot anymore remove the affected mesh from its mesh group or I will lose the data. => is there any reason to use a controller in a child mesh group rather than in the root group?
I didn't find documentation explaining mesh groups in details, sorry if I missed it.
Hi!
Thanks so much for your suggestions!
We will respond to your suggestions one by one.
1. The rotation center of vertices, or Pivot, is arbitrarily set by us as the overall average position, so we can modify it.
Since we have to improve Gizmo, it will take some time, but we don't think it will be too difficult.
We will review and incorporate it into future updates.
(There are many other issues, so the priority may be slightly pushed back.)
2. There were several suggestions for scaling keyframes, so we were wondering how to implement them, and Unity's approach seemed the best.
This issue has been under review, and we will probably implement it the way you suggested.
3. Rigging/Transform process the “change in scale” of the bone, so the “Default Scale” of a bone is not a big problem.
So, it is also possible to change the Default Scale of a bone without editing the "Length" property.
However, Bone's scale is a fairly sensitive issue in any engine.
This is because it may cause unintended distortion in animation, IK, etc.
So, if possible, it is recommended to keep the Bone Scale at (1, 1).
If you want to "change the Length of the parent Bone to point towards the position of the child Bone", try using the "Snap to Child Bone" function in the Bone properties UI.
4. It is impossible for any part of the mesh to be shown in front or behind another mesh.
Although AnyPortrait is a 2D animation tool, it has several restrictions on the rendering order because it is placed in Unity's 3D space.
So, if possible, images with different rendering orders should be distinguished as different meshes.
(After dividing into different meshes, you can freely change the rendering order using “Extra Option” etc.)
5. I think our explanation of "Sub Mesh Group" was not sufficient.
The Sub Mesh Group does not function as a “Folder” but rather controls sub-meshes in batches.
If you've ever used an illustration program like Photoshop or Clip Studio, you're easy to understand what Sub Mesh Group does.
In programs like Photoshop, there are “Layer” and “Group”.
Images are displayed in order according to the order in which “Layers” are placed, and “Layers” can be grouped using “Group.”
If you apply an effect to a “Group”, the effect is applied to all “Layers” within it.
The special limitation here is that external Layers cannot intervene in the order in which the Layers within the Group are displayed.
AnyPortrait's Sub Mesh Group has almost the same characteristics as Photoshop's "Group".
Let us explain question (b) a little more.
For example, it may be more efficient to control only many distinguishable meshes, such as a character's "Face", separately.
So in this case, it is more efficient to add a modifier to the "Face" Mesh Group and edit it separately.
(e.g. "Eye direction", "Blinking", "Mouth shape", "Head direction", etc.)
Or, if there are a lot of meshes and bones, it may be a good idea to add bones and rigging to the Sub Mesh Group and control them in the Transform of the Root Mesh Group.
However, as you said, due to some limitations of the Sub Mesh Group, in most cases, a good way to avoid problems is to place all Modifiers in the Root Mesh Group and edit them.
We will guide you through several manuals related to the usage and limitations of Sub Mesh Group.
[ Duplicating / Migrating Sub-Objects ]
https://rainyrizzle.github.io/en/AdvancedManual/AD_DuplicateMigratingSubObj.html
[ Color Only Modifier ]
( > "The case that you need Color Only modifier" )
https://rainyrizzle.github.io/en/AdvancedManual/AD_ColorOnlyModifier.html
[ Creating a character in multiple directions ]
https://rainyrizzle.github.io/en/AdvancedManual/AD_MultipleDirectionCharacter.html
Thank you so much for all the suggestions!
We would like to apply all suggestions as quickly as possible, but since we are currently working on things such as modifying some core logic, the priority may be slightly lower.
Please understand this in advance.
If you have any good ideas or need anything, please let us know!
Thank you.