MAYA: Simple Reference Option
Quote from Magnus on 12. November 2018, 19:47Hi Richard,
I was hoping that it would be possible to have the option to make prism use Maya's native referencing system without creating flattened selection sets for each asset.
There are two reasons why:
- Performance
- File size
I made a video to show you a practical example of why this is important:
https://app.hyfy.io/v/abda0fGFPjn/I forgot to mention that if you want to update the asset, you can use the "replace reference" function in the reference editor. It will make sure to update everything. Maya also keeps track of reference edits in a mel file ("list reference edits") so you don't need the selection sets when dealing with references in my opinion.
We are having a lot of problems with slow scenes after moving to prism from open pipeline. OP just links to the reference node of each asset and call the built in functions to update ("replace reference") and delete ("remove reference). It makes the scenes light and fast.
Fingers crossed that this is possible to add in the near future. Looking forward to hear your, and others, thoughts about the suggestion.
Best,
Magnus
Hi Richard,
I was hoping that it would be possible to have the option to make prism use Maya's native referencing system without creating flattened selection sets for each asset.
There are two reasons why:
- Performance
- File size
I made a video to show you a practical example of why this is important:
https://app.hyfy.io/v/abda0fGFPjn/
I forgot to mention that if you want to update the asset, you can use the "replace reference" function in the reference editor. It will make sure to update everything. Maya also keeps track of reference edits in a mel file ("list reference edits") so you don't need the selection sets when dealing with references in my opinion.
We are having a lot of problems with slow scenes after moving to prism from open pipeline. OP just links to the reference node of each asset and call the built in functions to update ("replace reference") and delete ("remove reference). It makes the scenes light and fast.
Fingers crossed that this is possible to add in the near future. Looking forward to hear your, and others, thoughts about the suggestion.
Best,
Magnus
Quote from Magnus on 13. November 2018, 16:09Hi again,
I might have misunderstood the functionality of the importer on a very basic level, but I can't figure out how to use it properly. I'm curious to know if this is the expected behaviour, or if there's something wrong with my set-up.
In this recording I'm showing an example with updating a model asset in a rig file. Basically prism makes a new reference node when updating the asset, instead if updating the reference that is already there:
https://app.hyfy.io/v/abkoPg4Kmjn/
Hi again,
I might have misunderstood the functionality of the importer on a very basic level, but I can't figure out how to use it properly. I'm curious to know if this is the expected behaviour, or if there's something wrong with my set-up.
In this recording I'm showing an example with updating a model asset in a rig file. Basically prism makes a new reference node when updating the asset, instead if updating the reference that is already there:
Quote from SciMunk on 13. November 2018, 19:29Hi Magnus, looking at the video, it seem your problem a more early, normally, when you import a task with prism, it create a reference file and a maya Set, which we don't see at the beginning of your video, maybe because of a bug happening before.
when everything work correctly, hitting 'import new version' will update the current reference, which isn't present in the first place, you then tried to reimport the file using the browser which basically recreate the reference and the set from scratch.
you'd probably want to fix these weird error you keep getting because they seem to be the actual problem, prism actually work the way you want it to work as described by your first post.
Hi Magnus, looking at the video, it seem your problem a more early, normally, when you import a task with prism, it create a reference file and a maya Set, which we don't see at the beginning of your video, maybe because of a bug happening before.
when everything work correctly, hitting 'import new version' will update the current reference, which isn't present in the first place, you then tried to reimport the file using the browser which basically recreate the reference and the set from scratch.
you'd probably want to fix these weird error you keep getting because they seem to be the actual problem, prism actually work the way you want it to work as described by your first post.
Quote from Magnus on 13. November 2018, 22:26Right! That makes sense, thanks @scimunk- well spotted 🙂
I think the first post is still valid though. I managed get the filesize down from 95mb to about 300kb by refencing the normal way, so prism is definately adding a lot of data to the scene on import. I still keep my fingers crossed that we can have the option to use the «old school» way of referencing without anything added to it like selection sets.
Right! That makes sense, thanks @scimunk- well spotted 🙂
I think the first post is still valid though. I managed get the filesize down from 95mb to about 300kb by refencing the normal way, so prism is definately adding a lot of data to the scene on import. I still keep my fingers crossed that we can have the option to use the «old school» way of referencing without anything added to it like selection sets.
Quote from SciMunk on 13. November 2018, 22:57I noticed by looking at the maya scene generated by prism that it use FileInfo feature of maya, which lets the user store certain information about the scene, the documentation don't really recommend that, but to rather create a node and add the necessery attribute.
the data is mostly the list of node being imported and or exported in json format, I would honestly recommend that prism don't use this way, and rather rely on the 'set' generated, unless prism use this specific line of text to read the file from outside maya, in this case it would be better to generate a separate text file.
I noticed by looking at the maya scene generated by prism that it use FileInfo feature of maya, which lets the user store certain information about the scene, the documentation don't really recommend that, but to rather create a node and add the necessery attribute.
the data is mostly the list of node being imported and or exported in json format, I would honestly recommend that prism don't use this way, and rather rely on the 'set' generated, unless prism use this specific line of text to read the file from outside maya, in this case it would be better to generate a separate text file.
Quote from Magnus on 14. November 2018, 8:42That’s interesting, I didn’t know that. So I guess that explains the scenario I showed in the video in the first post. It went something line this:
1. Save empty scene (53kb)
2. Import rig with prism (appr 6mb)
3. Deleted selection set (appr 2.7 mb - so this data is from the file node?)
4. New scene - imported character using reference editor (57kb)
I’ve been using Maya professionally in productions for about 10 years and I have never had any problems updating or deleting references using the reference editor. The thing that are nice to have a tool for is to easily update to the latest published asset, like the menu Prism have.
So in our case we have been working on the layout scenes for a while, updating the asset files a few times. I have 5 animators on the project all having problems with slow performance and huge load times. Deleting the selection sets helped a lot fortunately, but that unfortunately breaks the importer. We’ll just update the assets manually for now, but it is not the ideal solution as we soon scale up the project.
That’s interesting, I didn’t know that. So I guess that explains the scenario I showed in the video in the first post. It went something line this:
1. Save empty scene (53kb)
2. Import rig with prism (appr 6mb)
3. Deleted selection set (appr 2.7 mb - so this data is from the file node?)
4. New scene - imported character using reference editor (57kb)
I’ve been using Maya professionally in productions for about 10 years and I have never had any problems updating or deleting references using the reference editor. The thing that are nice to have a tool for is to easily update to the latest published asset, like the menu Prism have.
So in our case we have been working on the layout scenes for a while, updating the asset files a few times. I have 5 animators on the project all having problems with slow performance and huge load times. Deleting the selection sets helped a lot fortunately, but that unfortunately breaks the importer. We’ll just update the assets manually for now, but it is not the ideal solution as we soon scale up the project.
Quote from SciMunk on 14. November 2018, 12:49I don't think the sets themselve make maya slow, they are normally made for that specific case, there no much that can be done about set and filesize using .ma, as each node in the set must be written using their name for connection purpose, (.mb wouldn't have this problem as binary format is way more optimised). The "fileInfo" + the "Set" however uncesserly double up the data.
concerning slowness, I think it more have to do with prism not being very optimised to interact with maya data, and process a huge load of information ineffectively, gathering the full list of node in a set is normally a matter of millisecond using the "sets" command, but parsing the fileInfo string and process it maybe why it just so slow, and it increase with every new node in the set.
I don't think the sets themselve make maya slow, they are normally made for that specific case, there no much that can be done about set and filesize using .ma, as each node in the set must be written using their name for connection purpose, (.mb wouldn't have this problem as binary format is way more optimised). The "fileInfo" + the "Set" however uncesserly double up the data.
concerning slowness, I think it more have to do with prism not being very optimised to interact with maya data, and process a huge load of information ineffectively, gathering the full list of node in a set is normally a matter of millisecond using the "sets" command, but parsing the fileInfo string and process it maybe why it just so slow, and it increase with every new node in the set.
Quote from Magnus on 14. November 2018, 13:00Thanks for the info, makes sense. I've been doing a lot of testing, and it helps a lot to delete the selection sets created by prism, but that breaks the import and update functionality of course.
I'm hoping that we could bypass the election sets and fileInfo +++ all together. I wrote Richard an email with a proposed donation for a "simple import"-feature, let's see what he sais 🙂
Thanks for the info, makes sense. I've been doing a lot of testing, and it helps a lot to delete the selection sets created by prism, but that breaks the import and update functionality of course.
I'm hoping that we could bypass the election sets and fileInfo +++ all together. I wrote Richard an email with a proposed donation for a "simple import"-feature, let's see what he sais 🙂
Quote from SciMunk on 14. November 2018, 13:11my best proposition would be to separate prism data from the scene completely and rely on a custom separated json file that exist alongside each scene, kinda like how xgen generate it own .xgen file, this way, prism could generate anything it need regardless of which dcc app is used, and avoid create any data in the scene itself all of that while still being database-less.
the only downside would be the need to track name change of node, but that should still be doable.
my best proposition would be to separate prism data from the scene completely and rely on a custom separated json file that exist alongside each scene, kinda like how xgen generate it own .xgen file, this way, prism could generate anything it need regardless of which dcc app is used, and avoid create any data in the scene itself all of that while still being database-less.
the only downside would be the need to track name change of node, but that should still be doable.
Quote from Magnus on 14. November 2018, 14:19Sounds like a good solution 🙂
I think also sometimes simple is better. The more nodes and data, the more things can go wrong when working with teams. Maya's reference system is working really well, so why not just use that as vanilla as possible... Prism just need to use "Create reference", "Replace reference" (for updating) and "Remove reference", and Maya takes care of the rest.
Sounds like a good solution 🙂
I think also sometimes simple is better. The more nodes and data, the more things can go wrong when working with teams. Maya's reference system is working really well, so why not just use that as vanilla as possible... Prism just need to use "Create reference", "Replace reference" (for updating) and "Remove reference", and Maya takes care of the rest.