スキンウェイトからなくなってるインフルエンスジョイントの追加方法

スキンウェイト 全く抜け落ちた インフルエンスの追加方法

インフルエンス オブジェクトを追加するには
0,バインドポーズにします

2,オブジェクトが作用するスキン メッシュを選択します。
3,インフルエンスジョイントをCtrl押しながら追加選択します。
4,スキン > 影響を編集 > インフルエンスの追加(Skin > Edit Influences > Add Influences) > □ を選択します。

5,インフルエンスの追加オプション(Add Influence options)設定で、
  ウェイトのロッキング:オン にします。
6,適用をクリックします。

7,スキンウェイトペイントツールのインフルエンスの欄に追加されます。

8、ロックを解除してスキンウェイトペイントします。

追加したインフルエンスにウェイトをペイントするとモデルが壊れる

バインド ポーズ以外でスムーズ スキンしたジオメトリにインフルエンス オブジェクトを追加すると、バインド ポーズに戻ったときにわずかに異なるスキン結果となります。たとえば、バインド ポーズでないジオメトリにインフルエンス オブジェクトを追加すると、その領域のウェイト値の再配分によってインフルエンス オブジェクトの配置場所で変形が生じることがあります

https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/JPN/Maya/files/GUID-1BEC5727-E97F-40A1-9F26-1B1E6A4E8848-htm.html

より。

スキン>バインドポーズにしてみたらずれてた
バインドポーズにしてからやり直したら大丈夫だった。

ハイポリモデルのスキニングのためのLOWケージモデルの作り方をやってみた。

#CageModel #QuadDrow #SkinWeight #MayaCageModel #MayaQuadDrow #MayaSkinWeight

・エッジのデリート エッジ選択してShift押しながら右クリックメニューで左下のDelete Edge

・インサートエッジループ 選択しないでフェース上でShift押しながら右クリックメニューで下のInsert Edge Loop Tool

・マルチカット  選択しないでフェース上でShift押しながら右クリックメニューで左のMulch Cut でエッジをクリック

・マルチカット  選択しないでフェース上でShift押しながら右クリックメニューで左のMulch Cut で 何もないところからドラッグするとエッジができる。

・コラプス(エッジのマージ)  Ctrl を押しながら 右クリ 左下 Edge Ring Utils >左の To Edge Ring and Collapse

ハイポリ読み込んで
フェース削除して腕だけにして
キューブをヒジにあてて大体腕が収まるサイズにして
長さ分割10
手の甲上面分割3
横向き分割2
ぐらいにして
上下面消して、筒にして
ハイポリ選択して磁石アイコンのマグネットUツールをクリックすると吸着がスタート
Cube選択して頂点モードにして
ウィンドウ右上のモデリングツールキットを表示して
「四角ポリゴン描画」をクリックする
「B」をクリックしてグラデーションが表示され
「Shift」押しながら「マウス左ドラッグ」で一瞬で吸着される。
全部吸着されるまで「Shift」押しながら「マウス左ドラッグ」
「B」をクリックして普通選択へ戻し
「四角ポリゴン描画」をクリックして戻り
モデリングツールキットの「フェース選択」をクリック
ヒジの4つのフェースを選択して
メッシュの編集>押し出し(Extrude)でスケールして
ヒジのメッシュを増やす
あとはまた
「B」をクリックして普通選択へ戻し
「四角ポリゴン描画」をクリックして戻り
ヒジに多めにポリゴンがくるようにたぐりよせる
伸びたほうにオブジェクトモードでマルチカット  選択しないでShift押しながら右クリックメニューで左のMulch Cut で 何もないところからドラッグするとエッジができる。
腕終わり!!

ーーーーーーからだーーーーーーーーー
ハイポリからフェース削除して胴体だけにして
cube作って
上面分割6 頭つけれるように
正面分割4
横面分割3

頭用に用意した中央2面のフェースを削除
腕用に用意した中央上1面のフェースを削除

ハイポリ選択して磁石アイコンのマグネットUツールをクリックすると吸着がスタート
Cube選択して頂点モードにして
ウィンドウ右上のモデリングツールキットを表示して
「四角ポリゴン描画」をクリックする
「B」をクリックしてグラデーションが表示され
「Shift」押しながら上半身の上側を「マウス左ドラッグ」で一瞬で吸着される。(下の方は体がないので変なところに吸着しやすい)

肩パッドらへんをマルチカットでブツリする
オブジェクトモードでフェース上でマルチカットメニューだし  なにも選択しないでShift押しながら右クリックメニューで左のMulch Cut で ポイントをクリックしてエッジを作る、エッジデリートつかう。
肩の周りのメッシュが格子状にすすみつつ
ループ状になるように
穴の筒が三角で終わってるところのエッジを四角に格子になるようにしていく

※マウスホイールで寄ってペイント作業しないと範囲がでかすぎて頂点が変に吸着するのがポイント
Bなしの 四角ポリゴンの描画で
「Shift」押しながら「マウス左ドラッグ」で
肩の筒を平たんにしていく

平たんにした後も多角形になってる部分
脇の下の前後ろ面を90度が下になるようにマルチカット

あとは平たんにしていって

肩の筒にエッジループを足す
エッジモードでインサートエッジループ 選択しないでフェース上でShift押しながら右クリックメニューで下のInsert Edge Loop Tool

あとは脇の下の三角を四角になるように背中からマルチカットするで、、平たんにしたら流れが変わるので
三角が消えるように縦にマルチカット 平たんにしたら
背中のどうでもいいとこに三角が移動するのでコラプスで

つぶしたい縦のエッジを3つ選択して
コラプス(エッジのマージ)  Ctrl を押しながら 右クリ 左下 Edge Ring Utils >左の To Edge Ring and Collapse
平たんにして
ボディの完成!!
ーーーーーボディとハンドの結合編ーーーーー
ボディとハンドをCombineしてとりあえず結合する
すると
 「四角ポリゴンの描画」で「Shift」押しながら
結合部分をマウスで触るとグリーンにハイライトされて
結合用のフェースが表示されるのでクリックすると
面が張られる。
とりあえずクアッドになるように面を張れるところはじゃんじゃんはっていき
あとの三角もとりあえず結合する。
そうしたら
全身モデル選択してにマグネット吸着を切り替える

平たんにする

一旦、三角ができるがコラプスで消していく。
エッジは多めにあとからスライドして多くできるので大丈夫
結合の完成!

ーーーーーー独自のコツ ロングスカート編ーーーーーー

最初にやった分割数だとバグりすぎるので、できるだけ少なくというか
足りないぐらいでいい。あとでエッジループ足す前提。
幅の分割4
高さ6
深度3
で上下のメッシュ消して筒にする
上下のラインとマス以外の部分を「Shift」押しながら「マウス左ドラッグ」であわせていき
上下のラインはエッジからエッジダブルクリックでエッジループから選択項目の変換で
頂点にして縮小するとハイポリに合う、さらに上下を縮小スケールで平行にならぶ
・インサートエッジループ 選択しないでフェース上でShift押しながら右クリックメニューで下のInsert Edge Loop Tool
でだんだん足りてきたら
法線のせいでエッジが立って見えてるかもしれないので
エッジからエッジダブルクリックでエッジループから選択項目の変換で
頂点にしてメッシュ表示>法線>平均 すると面がスムーズに見える。

ーーーーーー以下参考リンクーーーーーーーーー

使っていたPC
hp z640
HP WorkStation Z640 E5-2643 v3 3.40GHz 2CPU メモリ32~GB HDD 2TB NVIDIA Quadro K2200
現在69,800円

human model 3dで検索すると出てくる。今回使ったモデル
https://www.turbosquid.com/ja/3d-models/realistic-male-body-basemesh-model-1609555
高いのも1777ドルっておい
https://www.turbosquid.com/ja/3d-models/male-female-anatomy-body-3d-max/602826

解剖学3Dデータのサンプル
https://www.teamlabbody.com/
無料 human data
https://always3d.com/freesozai-3danatomyman/

3d model anatomyで検索すると出てくる。
https://free3d.com/ja/3d-model/character-male-anatomy-body-base-highpoly-3953.html
https://free3d.com/ja/3d-model/character-female-anatomy-body-base-7442.html

ゲームのスキンウェイトのポイントの解説
https://area.autodesk.jp/column/tutorial/maya_atoz/skin_weights_1/

UE4 IK Two Bone IKノード Paraglider アセットで手をグライダーにかける方法

UE4 IK Two Bone IKノード Paraglider アセットで手をグライダーにかける方法

モデルを変更した結果
Paragliderのプロジェクトに入れたら問題が出てきた。
UE4のジョイント名でないとr_handからik_hand、lowerarm_lが探せないエラー

LogAnimation: Warning: FBoneReference::Initialize BoneIndex for Bone ‘lowerarm_l’ does not exist in Skeleton ‘motion_000_000_all_unkeyReduction_fbx_Skeleton’


lowerarm_lだけならTwo Bone IKノードのJointTarget>JointTarget>lowerarm_lを別のヒジジョイント名に変えるだけでOKだ。


そんなことは後で知ったので
Mayaでjointの名前を変更した。>大変だったが必要なのは
root>ik_hand_root>ik_hand_r と
root>(hipあってもなくてもいい)>pelvis >spine_01>spine_2>spine_03>clavicle_r>upperarm_r>lowerarm_r>hand_r
の流れだった。
実はヒジのジョイント名だけでいいかもしれない
あとはちゃんとik_hand がhandジョイントにコンストレインされて同じように動いていることかもしれない。

いがいと、ジョイント名が変わっても
ジョイント位置+メッシュ頂点位置でスキンウェイトコピーが反応してくれて大丈夫だった

「余裕がないとかからない」ので
ThirdPersonCharactor_BPのビューポートでParagliderComponent_BPの位置を
位置
z:109.897697
から
z:85にして近づけたら
グライダーとモデルの間隔がせばまって届くようになった。

スキンウェイトに詳しくなりたい2 deformerWeights コマンド

https://area.autodesk.jp/column/tutorial/maya_atoz/save-load-skin-weight/にあった最新のスキンウェイトのコピー方法

//XMLexport
deformerWeights -export -deformer “group_mesh|Mesh|Genesis8FemaleSkin” -format “XML” -path “C:/Download/Game/UE4_SK_Mannequin_Motions/scenes/OneTimeLine/” “Genesis8FemaleSkin.xml”;

//XMLimport
deformerWeights -import -method “index” -deformer “group_meshHIK|Mesh|Genesis8FemaleSkin” -path “C:/Download/Game/UE4_SK_Mannequin_Motions/scenes/OneTimeLine/” “Genesis8FemaleSkin.xml”;
skinCluster -e -forceNormalizeWeights “group_meshHIK|Mesh|Genesis8FemaleSkin”; // オプション設定でNormalize weightsがオンだった場合この行も実行。

Maya2016でだと
// エラー: line 1: 無効なフラグ ‘-format’ // になる。
Maya2020で試した
// エラー: line 2: 有効なデフォーマが見つかりません。 //

なんだろ。

モデルがわるかった。スキンバインドが壊れてた。ジョイント曲げても反応なし

スキンウェイトに詳しくなりたい copySkinWeights コマンド

スキンウェイトに詳しくなりたい
スキンウェイトの世界は自動化がまだ追いついてないっぽい。
スキンウェイトのコピーの中身は

copySkinWeights -sourceSkin skinCluster1 -destinationSkin skinCluster2 -noMirror;
http://me.autodesk.jp/wam/maya/docs/Maya2010/Commands/copySkinWeights.html

cmds.copySkinWeights( sourceSkin=’skinCluster1′, destinationSkin=’skinCluster2′, noMirror=True
http://me.autodesk.jp/wam/maya/docs/Maya2010/CommandsPython/copySkinWeights.html

解決できないエラー(モデルがわるかった。スキンバインド全体が壊れてた。)
cmds.copySkinWeights( sourceSkin=’group_mesh|Mesh|Genesis8FemaleSkin’, destinationSkin=’group_meshHIK|Mesh|Genesis8FemaleSkin’, noMirror=True )

エラー: line 1: RuntimeError: file line 1: skinCluster ノードは -sourceSkin/-ss フラグとともに指定する必要があります。 #

解決できないエラー(一般的)(モデルがわるかった。スキンバインド全体が壊れてた。)
copySkinWeights -noMirror -surfaceAssociation closestPoint -influenceAssociation closestJoint;
// 警告: line 0: スキン オブジェクトではないので ‘Genesis8FemaleSkinShape’ をスキップします。 //
// エラー: line 0: 1 つのソース スキンと 1 つの目的のスキン、もしくはソースと目的のスキン上のコンポーネントを選択する必要があります。 //

ーーーーーーーーーーーーーーーーー
Maya2020でも解決できていない様子、(モデルがわるかった。スキンバインド全体が壊れてた。)

copySkinWeights -noMirror -surfaceAssociation closestPoint -influenceAssociation closestJoint;
// 警告: line 0: スキン オブジェクトではないので ‘Genesis8FemaleSkinShape’ をスキップします。 //
// エラー: line 0: 1 つのソース スキンと 1 つの目的のスキン、もしくはソースと目的のスキン上のコンポーネントを選択する必要があります。 //

cmds.copySkinWeights( sourceSkin=’group_mesh|Mesh|Genesis8FemaleSkin’, destinationSkin=’group_meshHIK|Mesh|Genesis8FemaleSkin’, noMirror=True )
エラー: RuntimeError: file line 1: skinCluster ノードは -sourceSkin/-ss フラグとともに指定する必要があります。 #

copySkinWeightsはそのコマンドの処理の中で、skinClusterコマンドを使っているみたいで
その引数部分にsourceSkinがうまくわたせてないみたいに見える。

モデルがわるかった。スキンバインド全体が壊れてた。


これも関係ありそう。
skinClusterは、一度に1つのジオメトリのみをバインドします。したがって、複数のジオメトリをバインドするには、複数のskinClusterコマンドを発行する必要があります。

https://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/Commands/skinCluster.html

一旦1つの裸ジオメトリのスキンウェイトにしておいてそれを複数の服にコピーしていく流れをやったらいいのかもな。
ーーーーーーーーーーーーーーーーーーーーー

ダメだった。
cmds.copySkinWeights( sourceSkin=’group_mesh|Mesh|Genesis8FemaleSkin’, destinationSkin=’group_meshHIK|Mesh|Genesis8FemaleSkin’, noMirror=True )
エラー: line 1: RuntimeError: file line 1: skinCluster ノードは -sourceSkin/-ss フラグとともに指定する必要があります。 #

copySkinWeights -noMirror -surfaceAssociation closestPoint -influenceAssociation closestJoint;
// 警告: line 0: スキン オブジェクトではないので ‘Genesis8FemaleSkinShape’ をスキップします。 //
// エラー: line 0: 1 つのソース スキンと 1 つの目的のスキン、もしくはソースと目的のスキン上のコンポーネントを選択する必要があります。 //

メッシュを追加するたびにスキンウェイトをやりなおす?その必要はないスキンウェイトのコピーはメッシュ単位。

メッシュを追加するたびにスキンウェイトをやりなおす?その必要はないスキンウェイトのコピーはメッシュ単位。

スキンウェイトの情報は.mb/.maシーンデータに入っているからシーンごと読み込むことが重要だ。

1,OldシーンにNewシーンを読み込んでOldキャラとNewキャラをそれぞれグループ化して並べる
2,見にくいけど、グループの座標は同じにしてから、
3,OldキャラとNewキャラを順に選択して、Skin > Edit Smooth Skin > Copy Skin Weights を実行したらうまくいった。

ついでに追加したメッシュが体に添うようなスキニーパンツやフィットしたスーツなら
体から服にスキンをコピーしてあげればびったり添う

曲げても平気

こんなに曲げても大丈夫

明日python書く予定は未定。