unity3d-jp / MeshSync

A package for synchronizing meshes/models editing in DCC tools into Unity in real time.
Other
1.55k stars 174 forks source link

要望:同名マテリアル検出とアサイン機能 #43

Closed TsuPMC closed 5 years ago

TsuPMC commented 5 years ago

これは要望になるのでこちらに記載してもいいものかわかりませんが マテリアルリストで検出されたのと同名のマテリアルをUnity Project内から検出して(フォルダを指定して検出とかでもいい)同名があれば自動アサインとか可能にならないでしょうか

i-saint commented 5 years ago

了解しました。実装も難しくないと思われます。

TsuPMC commented 5 years ago

ありがとうございます!

i-saint commented 5 years ago

実装してみました。可能であれば、意図した挙動になっているか試していただけると幸いです。Assets\UTJ\MeshSync\Runtime\Scripts\MeshSyncServer.cs を↓の中身で上書きすれば有効になります。 MeshSyncServer.zip

TsuPMC commented 5 years ago

早速ありがとうございます MeshSyncServer.csを上書きすると下記エラーが出てHierarchyでMeshSyncServerがcreateできなくなりました

20180918版エラー Assets/UTJ/MeshSync/Scripts/MeshSyncServer.cs(24,18): error CS0260: Missing partial modifier on declaration of type `UTJ.MeshSync.MeshSyncServer'. Another partial declaration of this type exists

20181130版エラー Assets/UTJ/MeshSync/Scripts/MeshSyncServer.cs(2266,13): error CS0103: The name `DeployStreamingAssets' does not exist in the current context

ご教示くださいますでしょうか

i-saint commented 5 years ago

申し訳ありません、先の MeshSyncServer.cs には本件以外の変更も含まれていたのを失念しておりました。 こちらでお試しください。20181130 版を前提としています。 MeshSyncServer.zip

TsuPMC commented 5 years ago

確認させていただきました 無事、自動アサイン可能になりました どうもありがとうございます!

TsuPMC commented 5 years ago

もう一つご相談が… animationを作成する際、mayaではアセットをリファレンスしていることが多いのですが、リファレンスはネームスペースを付けて名前管理をしているのが常です https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/JPN/Maya/files/GUID-DD72DBEC-4B6D-4473-A4C5-CDA80DB8FAEB-htm.html なので、添付画面のようにSyncするマテリアル名にも全てネームスペースがついてしまうのですが、:の後ろの名前で検出して自動アサインなんてできないでしょうか :は複数ある場合もあります その場合は文字列を左から検出して最後の:より左がネームスペースになります image

image

i-saint commented 5 years ago

了解いたしました。Maya 側にネームスペース省略オプションを追加しようと思います。 一つ疑問があるのですが、このオプションはマテリアルだけ大丈夫でしょうか。ノード名にも適用したほうがいいでしょうか。

(アニメーションの件でもネームスペースの話がありましたが、Maya のネームスペースについて馴染みがないため、いまいち問題が把握できておらずにいます)

TsuPMC commented 5 years ago

>一つ疑問があるのですが、このオプションはマテリアルだけ大丈夫でしょうか。ノード名にも適用したほうがいいでしょうか

それもお願いできますか? それができると願ったりかなったりなのです image

どうぞよろしくお願いいたします

i-saint commented 5 years ago

了解いたしました。

i-saint commented 5 years ago

ネームスペース除去オプションを追加いたしました。デフォルトで有効になっています。 Maya プラグイン側のみの変更になります。こちらを試していただけると幸いです。 UnityMeshSync_Maya_Windows.zip

TsuPMC commented 5 years ago

時間が空いてしまって申し訳ないです これから試させていただき、またご報告させていただきますのでよろしくお願いいたします

TsuPMC commented 5 years ago

試させていただきました きれいなデータ(ネームスペースが一つ)ではネームスペース除去できてました

ただ厳密なことを申しますとネームスペースが多重になっている場合があるので(これはきれいなデータではないのですが往々にしてこういうことが起こるのです)、全てのネームスペースが除去できていることが望ましいのです namespace001

「文字列を左から検出して最後の:より左がネームスペース」なのでそれを除去 みたいな処理ができませんでしょうか

ネームスペースが多重になっている場合: ●多重リファレンス(オブジェクトをリファレンスしているシーンをリファレンスしている)みたいなことをしている ●リファレンスは1回しかされてないが、以前付けたネームスペースを取り忘れている

もうずうずうしくお願いばかりしておりましてすみません ご検討いただければ幸いです

i-saint commented 5 years ago

ご指摘ありがとうございます。 多重ネームスペース除去にも対応いたしました。試していただけますと幸いです。 UnityMeshSync_Maya_Windows.zip

Maya は UTJ 社内には日常的に使ってる者がおらず、本件のように私達だけでは気付けない問題が多いです。なので実際に制作現場で使っている方々からのフィードバックはとても貴重で、助かっております。

TsuPMC commented 5 years ago

確認させていただきました ネームスペースが何重になっていても消せることが確認できました お早いご対応に感謝申し上げます どうもありがとうございました

i-saint commented 5 years ago

https://github.com/unity3d-jp/MeshSync/releases/tag/20190315