-
Notifications
You must be signed in to change notification settings - Fork 39
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
Store pickers with referenced maya scene #44
Comments
Hi, to be honest, i'm not really sure to understand what you mean, can you describe a bit your expectation ? |
Tell me if i'm wrong but, you want to have possibility between 'in scene picker data' and original file? |
Of course, it was just to start conversation. As far as i know dwpicker can only to store data into a node and if that node will be exported with character rig, then when opening dwpicker in a scene that contain that rig, picker from dwpicker node will be handled and its data will be stored into local node, attribute from reference will be cleared. I think in general this is true, correct me if i wrong. I really did not fully considered that in my mind that when started this issue. Although there was amount of points that pushed us to modify the dwPicker
I spend some time on thinking of how to store picker data from referenced rig into animation scene, with regard of all animators demands.
But now when i read your questions i thought that if each picker node and each attribute will have separate maya attribute, it should behave just as expected. Animator would move some nodes, and if its appearance in source scene will change, result will be correctly composed. But if there will appear a new item in new version of source scene, the result will be mixed, new nodes will be in old place and old nodes in new place, that may cause a confusion (but i think it is not solvable, or complex logics should be implemented). |
An option to reload picker would be helpful. Technically it would be possible if each picker will have identifier and if local picker storage have data for that identifier, then use local data, otherwise copy from referenced. I think we could do a test with deep hierarchy of picker and expose picker nodes attributes to maya nodes, and look if that will be fast and useable. |
Wouchaaa this is a huge topic ! About your modifications:
Way to ref the pickers:
|
I will investigate you answer deeper, but first i would like to note that you do not need custom node at all (or i still did not realized the requirement, but i d really avoid custom node type implementation). Why do you mind to do that? Any standard node type with custom attributes is quite good storage. In practice i would like to say that animators accepted DwPicker node in outliner in positive key, some already used dwpicker and intuitively got this node as data storage for picker, others just don't care. AnimBot use similar approach, and it is quite clear about animBot node in outliner. And, well, "explicit is better than implicit". DagContainer that is also used by AnimBot for data storage is good because it could have custom icon, and is still transform node, so it is possible to map data hierarchy to scene (visible in outliner). Transforms world be grouped, so dwpicker and animbot nodes will be not on the sight. Also containers would be filtered from outlier (there is an option). That would be as follows:
This setup is just a poof of concept. It would be also possible to not produce shapes for items and just use compund custom attribite (list with access by numerical index, that should be possible but should be checked). But i m not sure if it will be fine, there would be collisions and incorrect data mixing if some changed is animation scene attributes will be shifted in source picker. With shapes it is quite clear, that local shapes will be added to picker transform and not collide with referenced shapes. |
Anim school picker look like had option to store picker data in to referenced rigging scene. I made this conclusion after i observed ASP binary and because there is pipeline features in commercial license. I do not know its logic in how to deal with referenced pickers but it is obviously not fileinfo. I still think, the plugin system that may change the name and type for storage node, format etc. would be nice, so someone would implement reader for existing asp fileinfo. I would design that. But flexibility is not always good, if you could convince me that script node is the best option, i will be thankful, but now you only pointed that you chosen simple node type, in that sense any standard node would be suitable. There would be another option: not load referenced pickers, but suggest a list of recently loaded and referenced pickers in empty window. We got too often questions from New Animators: where you store your pickers and studiolibrary? This approach should help. And there will no a number of pickers the user do not need for current scene. Also i suggest to consider whole pipeline. In our studio rigging department is responsible for maintaining pickers, they are working in rigging scene that have default namespace, if data is exported in rigging output and referenced in animation scene, then it will have a namespace, and user would like picker to already have that namespace. |
Are you sure ASP has this possibility ? Natively it is saved as base64 in the fileInfo. I don't see anything about pipeline feature on the official page http://www.animschool.com/pickerInfo.aspx. May the fileinfo store something about this. We took a look on it but it was diverging from the ASP file storage, the we drop the idea to make a reader (lacks of motivation to reverse engineer it a second time). Btw if you have this motivation, you are more than welcome. About this:
A maya per picker shape seems a bit overkill to me. Not sure that maya could survive to a crowdy scene whit this '. So lets use a standard transform with custom attributes. If we add a message attribute to safely detect it is a picker node, we dont need a DwPicker parent (except for outliner ordering). People would have freedom to put it anywhere in the scene and include it in the rigging. This generate a lot of questions about tabs management. If you close the tab, does it remove the node ? Or just his display ? How do you manage ui updates ? Node remove == tab auto closed ?
I planned that feature, but in our studio, nobody were asking it. Nothing in the ui is implemented to use that data but the 10 last saved/opened picker are already stored in optionVar. To reach it: from dwpicker.optionvar import RECENT_FILES
recent_files = cmds.optionVar(query=RECENT_FILES).split(';')
I have no suggestion how to help for this. |
Not sure, it just a clue based on binary inspection (you may search binary for
For me too :^)), i d be make a test if it may be operable. I m just generating ideas here and no sense to spend a lot of time on ideas that do not look viable, but i count that each idea chould be considered as it may help to find points that may lead to best solutions. I m also not just a dreamer but ready to develop any aproved by you solution to resolve my and others tasks (althrought i m very bussy too, but hope i find time).
Data should be separated from Implementation. I do not think that we should spend time on this, i still do not realize the requrement for custom node type (
i think the rest of mechanics should not be changed if we just change storage node type. i may summarize my suggestions as follows:
for me too, i hope to make a test
this was just about point 2.3. from the list above, when importing referenced picker, there is know namespace that would be applied to picker data |
Let's give a shot for this.
Good luck and thanks again for your input. |
Great! I think i will first try to implement storage plugins. it should help with migrations, testing and complext requests. |
Hi, it was very desired option to AnimSchoolPicker and it is nice to have here.
I would tell that we already implemented that on our own, but i think it is nice to have it in mainline and remove any divergence. I would tell more about our approach but you may have another points so, what do you think about this?
The text was updated successfully, but these errors were encountered: