steve.brodie Posted September 8, 2012 Posted September 8, 2012 Has anyone used or had much success with the schemer/skinner. Is it stable enough to use. Im looking at the viability of using it for game logic and behaviours, in a similar way to cryengine flowgraph. It would be good to see Unigine create some more complex examples to show what could be achieved with the current implementation.
manguste Posted September 11, 2012 Posted September 11, 2012 Skinner is used for the whole range of animations combined together (blended, added, subtracted, etc). So it can be used to create very complex animations. And it's definitely fast. That's the main point. Check skinner samples. Check shooter prototype, all agents there are animated via Skinner.
honya Posted August 2, 2013 Posted August 2, 2013 Hi, i use SkinnedMesh class for control animations, but i have problem, i can compile control script only 47x, after this number i get: memory:747:NameSpace::NameSpace(): maximum namespace is 65535 I use Skinner as singleton and SkinnedMesh for each instance. How can clean NameSpace for more compile this script? Script have about 152 blocks, it control 23 animations, 39kb script and code have 95kb file size. Thanks Honya
frustum Posted August 3, 2013 Posted August 3, 2013 It's better to use single skinner class for multiple meshes. Skinner can be bound to multiple skinned mesh instances.
honya Posted August 3, 2013 Posted August 3, 2013 That i used Skinner how you write, but how i extend control script, i can compile it less than before, that it is my problem. Optimal i like compile it about 200 times, that means about 200 characters in one scene that do animations from players input using this script.
honya Posted November 26, 2013 Posted November 26, 2013 I guess that i create too complex script for my expected count of SkinnerMesh instances, so i will convert it to the script's classes. And i have few question about Schemer, than i like to know for better use and optimalization. Is anywhere list of limitation for Schemer, what may cause troubles? How many blocks can be in Schemer, until i get "maximum namespace" error? If i use less blocks, but larged code in blocks, then it can increase count of compilate, until i get "maximum namespace" error? I like to know it, when i will working with Shemer again. Honya
sebastianbah Posted January 27, 2014 Posted January 27, 2014 Hi Honya, Sorry for the late reply. We could not reproduse such behavior. So, if it is possible, could you please send us your sample as the test scene?Thanks!
honya Posted January 27, 2014 Posted January 27, 2014 Hi Sebastianbah, i send you test scene as private message. Honya
sebastianbah Posted February 14, 2014 Posted February 14, 2014 Hello Honya,Sorry for the late reply.It's hard to determine any limitations for the skinner/schemer. The bigger script you have the less characters in the scene could be controlled over this script.You can control about 1,5 thousands of characters with the minimal skinner script which contains 4 blocks (entry, set, file, animation)."maximum namespace" error does not depend on the character model or animation length. If you want to increase number of characters controlled by skinner script you would better to use less blocks with larger code in blocks.Also, note that all disconnected blocks also affect to the number of compilations. So if you have any unusable blocks in script it's better to remove them. Sorry for inconvenience caused.
honya Posted February 16, 2014 Posted February 16, 2014 Thanks for answer my question Sebastianbah. it help me to do better scripts, knowing this limitations. Honya
vadim.sergeev Posted April 29, 2014 Posted April 29, 2014 How can I create a callback event from skinner?somethink like this http://answers.unity3d.com/questions/297319/animation-play-audio.html will be very cool But can also use SchemerScript.
vadim.sergeev Posted April 30, 2014 Posted April 30, 2014 How can I create a callback event from skinner? Got it, by adding new block types in core\systems\schemer\blocks\schemer.blocks file. <block type="schemer.callback0"> <input_path>input</input_path> <output_path>output</output_path> <input_link edit="1">functionName</input_link> <update><![CDATA[ if (is_function(functionName, 0)) engine.world.call(functionName); else log.error(format("schemer.callback0 error. Can't find function %s with 0 arguments.\n", functionName)); ]]></update> </block> ... ... ... <block type="schemer.callback6"> <input_path>input</input_path> <output_path>output</output_path> <input_link edit="1">functionName</input_link> <input_link edit="1">arg1</input_link> <input_link edit="1">arg2</input_link> <input_link edit="1">arg3</input_link> <input_link edit="1">arg4</input_link> <input_link edit="1">arg5</input_link> <input_link edit="1">arg6</input_link> <update><![CDATA[ if (is_function(functionName, 6)) engine.world.call(functionName, arg1, arg2, arg3, arg4, arg5, arg6); else log.error(format("schemer.callback6 error. Can't find function %s with 6 arguments.\n", functionName)); ]]></update> </block> I think this blocks are quite useful. Maybe adding them to Unigine is a good idea?
sebastianbah Posted May 6, 2014 Posted May 6, 2014 Hi vadim.sergeev, Thanks for your suggestion. We've passed it to our devs, but I'm afraid it has low priority for the present moment.
Recommended Posts