Showing posts with label animation programming. Show all posts
Showing posts with label animation programming. Show all posts

Sunday, January 12, 2020

Character animation and root motion with InternalTimeAccumulator in unreal engine 4.

In ue4, animation node uses InternalTimeAccumulator.
For the root motion movements, we use CreateTickRecordForNode function and this function allows character moves in the game world.

When the character moves, animation of character can use different time value. Which means character animation code can use different time value not InternalTimeAccumulator.

In the Evalulate_AnyThread function, we need to set character's Pose and Curve data for displaying character.

we can use different time value for this and set Pose and Curve. In this case character can play different animation and use different root motion moves.

Normally Pose, Curve values and CreateTickRecordForNode function uses same time value. which is InternalTimeAccumulator.

Thursday, December 19, 2019

Motion Matching prototype

Recently I'm implementing a motion matching animation tech. I think use correct animation data is more important than the algorithm (of course!) 


Friday, November 29, 2019

Animation programming in UE4 and about GetEvaluateGraphExposedInputs

My input data was missed in my custom AnimNode and find out that I missed a call function.

GetEvaluateGraphExposedInputs().Execute(Context);

What GetEvaluateGraphExposedInputs().Execute(Context) does is copy all the input data into AnimNode. (That's why there is some cost...)

If you look at the AnimNodeBase.cpp and line 675 there are function FExposedValueHandler::Execute function.

Wednesday, November 27, 2019

I'm making a motion matching solution.

Motion Matching is very popular now a days. I think motion matching is very similar as feature match system in Game AI field. I applied this system to FIFA when I was in EA Canada. CPU AI could use skill when they find similar situations. I'm not an animation engineer but I'm trying to implement it for fun. :)


Task in UnrealEngine

 https://www.youtube.com/watch?v=1lBadANnJaw