koyu

こんにちは、いつもSpineにお世話になっています。
楽しいツールをありがとうございます。

Tool for replace weight from one bone to antoher: p59755
Allow transferring weights from one bone to another · #301 · EsotericSoftware/spine-editor

メッシュに設定したウェイトの数値をそのまま、別のボーンに移し替える機能が欲しいと、感じています。
この機能は上記のURLでもリクエストされています。
なので、このトピックを通じて私もリクエストに+1を追加したいと思います。

そしてリクエストの追加だけでは根拠が薄いので、
なぜこの機能が必要なのかを下記にプレゼンテーションさせてください。


■この機能が必要な状況の一例。

capture2.gif


私はこのように、メッシュ変形を用いて正面~横90度までを表現できる、鎧のすね当てを作りました。
そして左足の鎧は、新しくパーツを作るのではなく、右足のコピーを使うことにしました。

capture3.gif


しかし、コピーしたメッシュは、コピー元の右足のボーン(shin_front)にバインドされているので、
当然右足の脛ボーンやコントールボーンに連動して動いてしまいます。
メッシュ変形を左足の脛(shin_back)やコントロールボーンで制御する必要があります。
ここで問題が発生します。


左足のボーンにウェイトを移し替える方法が、
頂点を一つずつ、手動で数値を入力する以外に見つかりません。
上記のすね当ては19の頂点があるので、頂点のウェイト数値確認→手入力を19回も繰り返さなければならず、大変な手間です。


capture_ss2 82.png
 → 
capture_ss3 83.png


また、頂点のウェイト入力自体も大変です。
右脛(shin_front)から左脛(shin_back)へ数値をそのまま置き換え、他の値は変えたくないが、
単純にshin_backの数値を62%へと変更するとこのようになります。
contro_leg_armorなどの数値も連動して変化するため、以前と同じウェイト割合を再現することが難しいです。


頂点数が多い複雑なパーツほど、ボーン構成を後から変更することは、大変な手間がかかってしまいます。
この問題の本質は、メッシュ変形のために調整したウェイトのボーン構成は、「一度作るとやり直しができない」ところにあると思います。

実際のところ、この問題は思ったよりも多くの状況で直面します。
腕や足など、左右のパーツのコピーだけでなく、
すでに作ったメッシュ変形を、後から別のボーンで制御したい状況はどうしても発生します。
(最初から完璧なボーン構成でウェイトを設定できればベストなのですが…)

capture4.gif


■メッシュ変形の制御ボーンを追加したい事例
体の軸回転を一つのボーンで制御して作っていましたが、途中から「上半身だけ回転できる」ほうがポーズのバリエーションに幅が出ることに気づきました。
この場合、下半身の制御ボーンを追加し、腰から下のウェイトを移し替える必要があります。

近い将来に、この機能が実装されることを望んでいます。
何卒お願いいたします。


------ English:DeepL translation ------

[Feature Request] I would like to be able to transfer the weight of a mesh from one bone to another.

Hi, I'm always grateful to Spine for your help.
Thanks for the fun tool.

Tool for replace weight from one bone to antoher: p59755
Allow transferring weights from one bone to another · #301 · EsotericSoftware/spine-editor

I feel that I would like to have the ability to transfer the weight values that I have set for a mesh to another bone.
This feature has also been requested at the URL above.
So through this topic I would like to add a +1 to the request as well.

And since adding the request alone is not enough of a basis for the request.
Please allow me to present why this feature is needed

An example of a situation where this feature is needed.
capture2.gif


I made the shin guards for the armor like this, which can be represented from front to 90 degrees sideways using the mesh deformation.
And for the left leg armor, I decided to use a copy of the right leg instead of making a new part.

capture3.gif


However, the copied mesh is bound to the bone of the right foot (shin_front) from which it was copied, so
Naturally, it will move in conjunction with the shin bone and control bone of the right leg.
The mesh deformation needs to be controlled by the left tibia (shin_back) and control bone.
Here's the problem.


There is a way to transfer the weight to the left leg bone.
I can't find it except by manually entering the numbers for each vertex one by one.
The above shin guards have 19 vertices, so I have to check the vertex weights and manually input the numbers 19 times, which is a lot of work.

capture_ss2 82.png
->
capture_ss3 83.png


Also, the vertex weight input itself is a challenge.
Replacing the value from the right shin (shin_front) to the left shin (shin_back) as it is, although I don't want to change any of the other values.
If we simply change the value of shin_back to 62%, we get this.
Because the values of contro_leg_armor and other parts also change in tandem, it is difficult to reproduce the same percentage of weight as before.


The more complex the part with more vertices, the more difficult it is to change the bone configuration afterwards.
I think the essence of the problem lies in the fact that the bone configuration of the weights adjusted for mesh deformations cannot be redone once they are made".

In fact, this problem is faced in more situations than you might think.
Not only do I have to copy the left and right parts of the arms, legs, etc.
There will inevitably be a situation where you want to control the mesh deformation you've already created with another bone later on.
(It would be best if we could set the weights in a perfect bone configuration from the start.

capture4.gif

Example of adding a control bone for mesh deformation
I was making this with a single bone to control the axial rotation of the body, but halfway through I realized that there would be more variation in the pose if I could only rotate the upper body.
In this case, we would need to add a control bone for the lower body and transfer the weights from the waist down.

I hope to have this feature implemented in the near future.
I apologize for the length of my request.
Thank you very much for your patience.
You do not have the required permissions to view the files attached to this post.
User avatar
koyu
  • Posts: 35

Ezomodas

私もこれが気になります…。
Ezomodas
  • Posts: 1

Misaki

機能についてのご意見、及び詳細なユースケースをご共有いただきありがとうございます!

ウェイトの移行に関しましては、挙げていただいた#301のissueチケットにあります通り、
4.1.13-betaにてSwapボタンを追加し、4.1.16-betaでウェイトのロック機能を追加したことにより、
すでに対応が完了しております。

この新しい機能を使って、以下のように移行が可能です:
    1.複製後のメッシュアタッチメントを選択して、新しく割り当てたいボーンをバインドします(つまり、一度古いバインド対象と新しいバインド対象の両方がバインドされた状態にします)

    2.ウェイトを入れ替えたいボーンを選択します
    Swapボタンは、ボーンが2つだけ選択されている場合に使用できます。ボーンが1つだけ選択されている、または3つ以上選択されている場合には使用できません
    swap-button.png

    3.Swapボタンを押下して入れ替えます

    4.ウェイトの移行が完了したら、古いバインド対象を選択してRemove(取り除く)ボタンで除外します

挙げていただいた例はメッシュアタッチメント全体でのウェイトの移行ですのでこの操作は不要ですが、もし一部の頂点だけウェイトを入れ替えたい場合は、先に入れ替えを行いたい頂点を選択してからSwapボタンを使用すれば選択中の頂点だけ入れ替えることができます。

また、ウェイトの移行について念の為補足となりますが、
メッシュアタッチメントのみを複製した場合は元々のウェイト設定が維持されますが、
親ボーンごと複製した場合は、新しいボーンに対してウェイトが設定されますので、Swapボタンを使用して移行する必要はありません。これについては以下のTipsで紹介されています。
Spine Tips: 46 duplicate limb

4.1-betaでは多くのユーザーから強いリクエストがあった様々な改善が追加されておりますので、
現在、正式リリースに向けた開発が優先的に進んでいます。
まだ具体的なリリース日は決まっておりませんが、今しばらくお待ちいただければ幸いです。

もしこの新しい機能について何かご質問や更にご意見があればお気軽に投稿してください!
どうぞ、よろしくお願いいたします。
You do not have the required permissions to view the files attached to this post.
User avatar
Misaki

Misaki
  • Posts: 756


Return to 日本のSpine ユーザー