• Editor
  • Linked mesh in different Slot

Related Discussions
...

Hi, I would like to know if there is a way to make linked mesh in different Slot.
I created a mesh for left arm weights it with "L_arm" bone
=> Then I copy that bone and resize -1 to mirror and make "R_arm" along with copy mesh for right arm.

  • But the problem is when I test the moverment of "L_arm", and do some fix on the weights of "L_arm" 's Mesh,
    Since the change didn't automatically apply to "R_arm" 's Mesh, I have to redo it again for "R_arm"'s Mesh which is tiresome.
  • If we even have one, "the linked mesh in different" Slot should not copy the deform keyframe from the original mesh too,(May be we can have option to let it copy or not copy deform keyframe)
    For example: when I deform my left arm mesh in animation, I dont want my right arm to mimic the same deform since right arm usually in different pose from left arm during animation.

Currently a linked mesh cannot be moved to another slot, as you found. We plan to do that, here is the issue to track the feature:
Allow linked meshes to be moved to a different slot · #195 · EsotericSoftware/spine-editor
This may not make it into the next version, which already has a lot, but should be in the version after.

Linked meshes have a checkbox to inherit the deform keys, so unchecking this would give you what you need (once we can allow the linked mesh to be in a different slot).

Nate :

Currently a linked mesh cannot be moved to another slot, as you found. We plan to do that, here is the issue to track the feature:
Allow linked meshes to be moved to a different slot · #195 · EsotericSoftware/spine-editor
This may not make it into the next version, which already has a lot, but should be in the version after.

Linked meshes have a checkbox to inherit the deform keys, so unchecking this would give you what you need (once we can allow the linked mesh to be in a different slot).

Sound good, As you can see if we have this feature, it would help us cut off 50% of the rigging work (only need to weights and modify one arms and one legs for the whole body, the same goes for anything have left and right component)

  • Nate 回复了此帖

    Yeah, I agree it is important. I've added a note to the issue.

    6 天 后
    Nate :

    Yeah, I agree it is important. I've added a note to the issue.

    Just some side note: if you do it please let the linked mesh in different Slot be able to be weights in different bone too, since in my example "L_arm" bone is different from "R_arm"bone. May be make some linked bone too.

    Ah, I'm afraid a linked mesh will always share weights with the source mesh. A linked mesh has the same mesh vertices and weights as the source mesh, but can have a different image. I think it doesn't make sense to use linked meshes for the left and right arms.

    Nate :

    Ah, I'm afraid a linked mesh will always share weights with the source mesh. A linked mesh has the same mesh vertices and weights as the source mesh, but can have a different image. I think it doesn't make sense to use linked meshes for the left and right arms.

    Even with the same weights and vertices, Linked mesh in different Slot still a good feature too, for example:

    • spider with 8 legs, 4 left legs can be linked mesh together since they still using the same weights with "Left Legs" bone
    • A set of hair with strain being linked mesh using different image, it help cut off the weights time too.
    • The possibility of this feature is still endless.... so hope we 'll have it even if those mesh sharing the same weights and vertices
    3 年 后

    Hi, Nate! Is this feature still part of the plan? We are currently doing a project where we need to separate a character's lineart and the color into different slots. This would be super helpful because now we can deform both the lineart and the color at the same time with ease.

    There are some challenges to doing it. Sorry we haven't gotten to it yet! I'm not sure we'll be able to get it into 4.2, but we'll try.

    6 个月 后

    I just want to chime in and say this is a feature I strongly would like to be added to Spine. It's been requested for a very long time. Could we get an insight on the challenges of fulfilling this feature?

    • Nate 回复了此帖

      Nate I see. From what I understand, the key issue is the Query Behavior with active Keyframes in the Timeline.

      Your two suggestions are still sound.

      To reduce Query, it may be a good idea to save the Slot reference by name. What about Skins, though? We're bound to have these Linked Meshes for different Skins.

      I think the Deform Inheritance checkbox is fine, in case we want to keep the performance as optimal as possible. I personally have abstained from using Deform Keys. Besides, the biggest purpose of Linked Mesh in Different Slot is so we are able to readjust the Weights of our source Mesh.

      There are lots of "In Mesh" visual ideas just waiting for a convenience feature like this! Tattoos, skin-tight clothing, accessories.

      • Nate 回复了此帖
        • 已编辑

        skarasuko From what I understand, the key issue is the Query Behavior with active Keyframes in the Timeline.

        When a deform timeline is applied, it checks the attachment in a single slot. If the deform timeline is for that attachment, it changes the vertices.

        If the deform timeline could be applied to attachments in other slots, it would need to check those too. Disabling inherit timelines when a linked mesh is not in the same slot as the source mesh is probably the best solution.

        skarasuko the biggest purpose of Linked Mesh in Different Slot is so we are able to readjust the Weights of our source Mesh.

        A linked mesh uses the vertices and weights of its source mesh. Even if the linked mesh could be in a different slot, it would not work differently. The vertices and weights for a linked mesh are shared with the source mesh and cannot be modified separately. To do that, duplicate the mesh instead of using a linked mesh.

        The mesh vertices define the position of the mesh in relation to the bound bones, or the slot's bone if none are bound. If a linked mesh could be placed in a different slot, it would appear in the exact same position as the source mesh and other linked meshes because it uses the same vertices and weights.

        If no bones are bound and the linked mesh's slot is under a different bone, the linked mesh would be positioned relative to the slot's bone. That could make it appear in a different position, but that behavior may be somewhat surprising. If you changed the vertices or weights, the source mesh and all linked meshes change because the vertices and weights are shared.

        Can you describe your use case more? I'm not sure a linked mesh in another slot is what you really want. In 4.2 the Weld feature can help you reuse weights for attachments like tattoos, clothing, etc.

        In the post above by Huy137 I don't think linked meshes would help. If you setup the left arm with a mesh and weights, a linked mesh uses the same weights, so it'll be bound to the left arm bones. That doesn't help you with the right arm at all. I am wondering if there is any real use cases for linked meshes in other slots?

        In 4.2 you can duplicate the left arm and Spine can duplicate all the bones, attachments, and constraints. You could then use that for the right arm, but changes to one side will not affect the other.

          Nate For me, it's about mitigating some inconveniences and save time. Particularly, so I don't have to Duplicate, Move to Slot, and modify the Attachment Path for each edit of the source Mesh.

          For example, a "Leg" Slot contains 8 frames of the character's leg. I duplicate the Slot and make it the "Socks" Slot. There may be, in the middle of production, a mesh shape that is unsatisfactory or I need to change the Bones or Weights slightly. The problem is, if I delete the attachment in "Socks" Slot, the Attachment Key data can be lost, unless there is a Skin Placeholder.

          So, there's a lot of consideration and steps. To be fair, I didn't try out Weld but this doesn't eliminate most of the steps I mentioned and it may be unpredictable if the original mesh has been significantly changed.

          You have a leg slot with 8 attachments: 1 source mesh, 7 linked meshes. You want to create 8 more linked meshes and put them in a sock slot, is that right?

          If you did that your sock images would need to be the same size as your leg images. That's a little suboptimal because exture packing won't be able to cut off blank pixels that are used in a mesh. Also your leg images need to be large enough to accommodate the sock (which is typically slightly larger than the ankle it goes on).

          There may be others, but for this use case it probably makes most sense for the sock to be its own image and to use Weld to copy the weights of the leg mesh. If you changed the leg mesh later, you may want to weld again.

            Nate For clarification, I have a Leg Slot with 8 Attachments, each are different frames (rotations) of the leg, which I change depending on the perceived angle of the character sprite. So, theoretically, I have 8 "Individual Mesh" linking to the Sock Slot.

            And yes, the specific use case I have does have caveats which I've already considered. That's why I always export my images with a few px of padding and use it as reference for saving an overlaying layer like the socks. And I try not to wrap my vertices too close to the image.

            You do have a point about the new Weld feature, which I'll eventually see what results I will get after trying it out for the first time. But it's still a lot of dragging around if I do the old duplicate method or clicking to modify the vertices of the "Sock" (for example) Mesh before Welding.