demostenes Posted April 6, 2015 Posted April 6, 2015 We are in the middle of character controller design, we have already 240 basic mocaps ready. We encountered typical problem, stationary (root is on the place) vs moving animation (root is moved by animation). We had lots of discussion on this topic, each has its own + and -. Proper solution is probably to have some hybrid model. I was googling little bit and problem is perfectly descibed here: Typically in game animation, a character's collision capsule (or other shape) is driven through the scene by the controller. Data from this capsule is then used to drive animation. For instance, if the capsule is moving forward, the system then knows to play a running or walking animation on the character to give the appearance that the character is moving under its own power. However, this type of motion is not always ideal for every situation. In some cases, it makes sense for complex animations to actually drive the collision capsule, and not the other way around. This is where root motion handling becomes critical for your games. + So, what does this mean? Now that the system is taking the root motion of the character's animation into account, it is then able to reapply that same motion to the character's collision capsule. This means that it can still have the exact same motion that the animator intended, but it can also respond properly to in-game collisions and other physics and gameplay events. Without this, we loose lots of added value of motion capture, I typically loose 1 axis of movement, which in some animations does not look natural (various idle animations with hip move in all 3 dimensions, more complex actsions, etc). I would also need to prepare unique motion defition (probably some key frames for bezier curve definition) for every animation with not constant or circular root motion to keep original dynamic of movement. Now we have 240, we will have around 500 animation at the end, at least 2/3 are not linear => not good idea. whole article with detailed description is here: https://docs.unrealengine.com/latest/INT/Engine/Animation/RootMotion/index.html Is there already way how to effectively do this in Unigine (root motion handling => ability continue playing from the end point of the animation)? We probably can do some custom code, but I am afraid of big performance impact with lots of characters in scene (we plan to have 100+ at once). The best would be to support root motion directly in engine (as Unity, UDK, etc... do).
unclebob Posted April 8, 2015 Posted April 8, 2015 Hey, Jirka! I believe that all you need to do is to collect collision shapes of your characters in a list and then just apply latest frame transform from root bone to them. It shouldn't be too slow to do on script side.
demostenes Posted September 11, 2015 Author Posted September 11, 2015 I had on mind ability to "pin" root bone to defined axes, or let animation move in any direction (if you have "moving animation"). This is for example Unity implemenation: http://docs.unity3d.com/Manual/RootMotion.html This is functionality to cope with problem described in that EU4 manual. So I can take set of various motion captures and directly in engine decide, which animation will be moved by code (I will pin xy axes) or which animation will move itself. It has several advantages: 1) it is far easier to animate into some direction, than on place. Also I can use mocaps with less processing 2) if i restrict animation to some axis (to stay on place), I have to implement "lost information" in code. For walking forward it is easy (and better to drive by code), for animations like in that UE4 example it can be very tricky, literaly it would force me to implement some bezier curve based system to alow animation move back and forward in non linear speed. So in this case is better to have animation which moves itself and also moves colliders. 3) I dont have to do conversion outside of engine (to pin), so it saves lots of time, especially if I need to change something. I can use as it is, i dont have to do axis restriction outside of engine, because I can do it inside of engine if necesary. So it makes whole pipeline one step shorter. 4) It simplifies developement of character controller It would be probably possible to develop such solution by ourselves, but I think this should be in core, everybody who does character animation will need this (I dont know if Unity does it on the fly, or bakes it into animation file. Probably the second, would be faster). I dont know if you undertand my point, usually until you start working with character animation it is not that obvious.
silent Posted October 19, 2015 Posted October 19, 2015 Hi Jirka, Sorry for the late reply. I've added this suggestion to our TODO list. Our devs are already did some successfull experiments with this task. I think this feature will be available by the end of this year or at the beginning of the 2016. Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
demostenes Posted October 19, 2015 Author Posted October 19, 2015 Hi Jirka, Sorry for the late reply. I've added this suggestion to our TODO list. Our devs are already did some successfull experiments with this task. I think this feature will be available by the end of this year or at the beginning of the 2016. Thanks! Wow, thanks!
demostenes Posted February 8, 2016 Author Posted February 8, 2016 Hi Jirka, Sorry for the late reply. I've added this suggestion to our TODO list. Our devs are already did some successfull experiments with this task. I think this feature will be available by the end of this year or at the beginning of the 2016. Thanks! Any progress? Without this feature we are not able to solve some animation issues in effective way.
silent Posted February 9, 2016 Posted February 9, 2016 Hi Jirka, Just checked status - it seems that feature is planned for Unigine 2.3. More precise estimation we can give only 2.2 release, sorry. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
silent Posted July 13, 2016 Posted July 13, 2016 Hi Jirka, Animation system needs to be upgraded (internally in engine sources) to be capable of new features - such as root motion transform. This feature is currently postponed to the next SDK updates. Can't guarantee that it will be available in 2.4 as well. I will surely let you know if I will get more information. Sorry for the inconvenience caused. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
demostenes Posted July 13, 2016 Author Posted July 13, 2016 Hi Jirka, Animation system needs to be upgraded (internally in engine sources) to be capable of new features - such as root motion transform. This feature is currently postponed to the next SDK updates. Can't guarantee that it will be available in 2.4 as well. I will surely let you know if I will get more information. Sorry for the inconvenience caused. This is quite limiting, without root motion it is not possible to create modern/realistic/complex character controller. This mean, that we have to implement some "workaround" and then remake it for root motion when it is supported by Unigine internally. Not good news. Anyway thanks for information.
demostenes Posted September 25, 2017 Author Posted September 25, 2017 Any progress with that? We are now quite limited.
silent Posted September 25, 2017 Posted September 25, 2017 Hi Jirka, Sorry, that feature is currently has low priority. Can it be just scripted on your side? How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
demostenes Posted September 26, 2017 Author Posted September 26, 2017 16 hours ago, silent said: Hi Jirka, Sorry, that feature is currently has low priority. Can it be just scripted on your side? This is being investigated right now. My concern is performance of such scripted solution.
Nitroboy Posted January 18, 2021 Posted January 18, 2021 Hello Guys, @silent Is this feature implemented now in 2.13 ? I don't remember seeing it somewhere in the documentation.
silent Posted January 18, 2021 Posted January 18, 2021 Nitroboy, I'm afraid, no. The amount of work that is hidden under the hood is much bigger than we initially thought, so it's delayed right now. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
david.sanda Posted January 18, 2021 Posted January 18, 2021 2.14 list something new about the animation systems though. What is it then?
silent Posted January 19, 2021 Posted January 19, 2021 Hi David, I think we will update roadmap within 1-2 weeks and add some correction here to reflect the current development and research stage. Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
david.sanda Posted January 20, 2021 Posted January 20, 2021 Thank you. Please make this a priority. It is lacking. 1
N7_Molot Posted November 16, 2022 Posted November 16, 2022 Согласен с коллегами, сильно не хватает root motion. Может добавите в samples примерный код, или мастер класс проведёте - если его ещё не было? И можно узнать примерные сроки? Думаю у всех будет более быстрый прогресс, когда появится система. Спасибо.
Recommended Posts