Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

animationしているものの修正について #4

Open
TsuPMC opened this issue Apr 17, 2019 · 17 comments
Open

animationしているものの修正について #4

TsuPMC opened this issue Apr 17, 2019 · 17 comments

Comments

@TsuPMC
Copy link

TsuPMC commented Apr 17, 2019

Timelineでanimationさせたobjectに対して 例えば(animationで変形が入った)キメのposeの顔を調整したい 場合にこのToolが使えるかなーと試してみたのですが そもそもUnity上でanimationでobjectが変形したり元の位置から移動しているmeshに対してモーフターゲットを生成しても「objectの元の位置でanimation変形前の形状にしかモーフターゲットは生成できない」でしょうか
Unityの仕様な気もしているのですが…

@TsuPMC
Copy link
Author

TsuPMC commented Apr 17, 2019

すみません、上記ですが
「animationでobjectが変形したり元の位置から移動しているmesh」をそのフレームで複製してモーフターゲットにすることができました
が、また違うところで躓いているのでまたご質問させていただくかと思います
失礼いたしました

@i-saint
Copy link
Contributor

i-saint commented Apr 19, 2019

ボーンで変形してる Mesh に関しては問題なく編集できるはずです。(内部的には、skinning された頂点に対して編集を適用、逆 skinning をかけて結果を Mesh に格納、とやってます)
Blendshape は考慮していないので、0% ではない Blendshape がある場合はおかしなことになると思います。(全て 0% なら大丈夫なはず)
以上を踏まえた上で、バグが疑わしい挙動などあればその旨指摘していただけると幸いです。

@TsuPMC
Copy link
Author

TsuPMC commented Apr 22, 2019

お疲れ様です
2017.4.25f1でとりあえず試しています
TimelineでアニメートされたobjectをコピーしてBlendshapeターゲットにすることはできました
で、Skinned Mesh RendererのBlendShapesの値を0-100の間で色々操作すればblendshapeもできたのですが、シーンを保存して再び開くともうSkinned Mesh RendererのBlendShapesの値を変えてもBlendShapeが有効になりません
何か操作方法が間違っているのか、おわかりになりますでしょうか

@i-saint
Copy link
Contributor

i-saint commented Apr 22, 2019

fbx などのファイルからインポートしたモデルはシーンを開く度に再生成が行われるので、独立した Mesh にする必要があります。readme の説明を参照ください。https://github.com/unity3d-jp/BlendShapeBuilder#%E6%B3%A8%E6%84%8F%E7%82%B9

@TsuPMC
Copy link
Author

TsuPMC commented Apr 22, 2019

それも行ったつもりなのですが…
やったこと
①TimelineでアニメートされたobjectをコピーしてBlendshapeターゲットにした(Framesにこのコピーしたobjectを設定した)
②Generate New AssetでExportして元のmeshのSkinnedMeshRendererのMeshを②に差し替えた
③blendshapeターゲットを編集して②をUpdate MeshしてBlendShapeの値を変えて変化することを確認
④シーンを保存した
⑤再び④を開くがBlendShapeの値を変えても無反応
なのでございます

ちなみにこの場合
「Timelineでアニメートされたobjectをコピーした」ものはobjectの階層から出すとか出さないとか関係ありますか?それともそもそも①②あたりのオペレートを何か間違っていますでしょうか

@i-saint
Copy link
Contributor

i-saint commented Apr 22, 2019

Mesh が正しく保存されているかを確認したいです。
②で生成して blendshape を編集した Mesh を単体でシーン内に配置し、blendshape の値を変えて意図した通りに動きますでしょうか。
この時点で既におかしいのであれば BlendShapeBuilder 側の問題が疑われます。

BlendShapeBuilder はあくまで Mesh の内容を編集するだけです。Timeline やアニメーションなどには一切関与しません。なので

「Timelineでアニメートされたobjectをコピーした」ものはobjectの階層から出すとか出さないとか関係ありますか?

これはほとんどの場合関係ないはずです。Timeline に Mesh の内容を変えるものがあれば関係しますが、それ用の特殊なスクリプトがない限りは起きないことだと思います。

@TsuPMC
Copy link
Author

TsuPMC commented Apr 23, 2019

お疲れ様です
色々試していくつかわかったこととわからないことがありました
うまく説明できないのでサンプルデータを作成して解説エクセルを作りました
BlendShapeBuilderSampleCube.xlsx

サンプルデータはここに載せられないようなのでメールでお送りさせていただきます

ご覧いただければ幸いです

@i-saint
Copy link
Contributor

i-saint commented Apr 24, 2019

解説ありがとうございます。しかし、これはオペレーションの問題であり、このオペレーションに合うように BlendShapeBuilder を改良できるかはちょっとわかりません。

それはそれとして、Unity 2018 や 2019 でも動作するパッケージをリリースしました。今上がっているパッケージをお試しいただけると幸いです。
(ディレクトリの構成が変わっているので、古いのはディレクトリごと削除してからインポートすることを推奨です)

@TsuPMC
Copy link
Author

TsuPMC commented Apr 25, 2019

承知いたしました
Unity内でBlendShapeが作れるというツールですものね
使い方がトリッキーだったようです
「animation後直接頂点編集をする」というのはまた別途考えます
ありがとうございました
2018対応リリースもありがとうございました ダウンロードして試してみます

@TsuPMC
Copy link
Author

TsuPMC commented Apr 25, 2019

「animationしているmeshの特定のフレームのmeshの形からBlendShapeTargetを編集したい」ですが
教えていただいたオペレートで可能になったのですがこのやり方だとFBXのmeshが変形してしまうという事態になるようです もちろんFBXをreimportすれば作成したBlendShapeシーンに影響は出ないのですがFBXのmeshのreimportを忘れるといろんなカットで元データが変形しているという事態になりかねないので危険だなぁと思った次第

Unity2018.2.9f1で作成したsample detaをUpさせていただきます
何かこうしたら良いなどアドバイスをいただけるとありがたいです
よろしくお願いいたします

BlendShapeTest.zip

@i-saint
Copy link
Contributor

i-saint commented Apr 26, 2019

現状のままですと、忘れずに reimport するように徹底する以外ないと思います。
しかしこれは '+' ボタンが意図通りに機能しないのが諸悪の根源であり、確かにここは改良すべきポイントだと思うので、対応しようと思います。(ボーンを持つ場合はポーズまで一致させつつコピーさせます)

@i-saint
Copy link
Contributor

i-saint commented Apr 26, 2019

パッケージを更新しました。
https://github.com/unity3d-jp/BlendShapeBuilder/releases/download/20190425/BlendShapeBuilder.unitypackage

主な変更点は 2 点で、

  • 上記の通り、"Frames" の "+" ボタンを押した時、ボーンを持つオブジェクトについてはポーズまで一致させつつコピーするようにしました。
  • FBX 由来の Mesh など、編集不可能な Mesh については、"Add BlendshapeBuilder" ボタンを押したタイミングでコピーを作成して MeshRenderer / SkinnedMeshRenderer の mesh を差し替えるようにしました。

よって、"Add BlendshapeBuilder" して Frames の "+"、追加された frame に対して "Edit"、編集後 "Update Mesh"、シーンを保存、とやれば以降シーンを開き直しても編集結果が残っているはずです。("Generate New Asset" が必須ではなくなった)
元々これで完結する使い方を想定しておりました。

@TsuPMC
Copy link
Author

TsuPMC commented Apr 26, 2019

ありがとうございます
試してみます!

i-saint added a commit that referenced this issue Apr 26, 2019
@TsuPMC
Copy link
Author

TsuPMC commented May 8, 2019

お疲れ様です
お時間が空いてしまって申し訳ありません
確認させていただきました
シンプルなモデルでは
「"Add BlendshapeBuilder" して Frames の "+"、追加された frame に対して "Edit"、編集後 "Update Mesh"、シーンを保存、とやれば以降シーンを開き直しても編集結果が残っているはずです」
がUnity2018.2.9fでも確認できました

複雑なモデルだと下記のような不具合が出ています
「Editしたとたん元のshapeと異なった形状になってしまう(animationが反映されていないというような大きな不一致ではなく、微妙に頂点がズレるという不一致です)」
モデルに問題があるのかをまず調査中です

@i-saint
Copy link
Contributor

i-saint commented May 8, 2019

Blensshape が入っていませんでしょうか。Blendshape は考慮していないので、0% ではない Blendshape がある場合はそのようになると思われます。
ただ、申し訳ないですが、それが原因だったとしても直近で対応はできないと思います。

@TsuPMC
Copy link
Author

TsuPMC commented May 9, 2019

BlendShapeではないようです
テストしていたobjectはmayaでBlendShapeを仕込んでいたmeshではなく、念のためfbx出力時のBlendShapeチェックも外し、fbxのinspectorからもImportBlendShapesのチェックも外しましたがEditボタンを押すと微妙に頂点がズレます…
もう少しじっくり見てみないとわかりませんが…
直近でご対応いただけないのは理解しておりますので大丈夫です
こちらでももう少しよく調べてみます

@TsuPMC
Copy link
Author

TsuPMC commented May 9, 2019

ところでUnityで操作の履歴ってどこかで見れないものでしょうか
mayaのscriptEditorで表示されるような…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants