Announcement

Collapse
No announcement yet.

Dragon IK (Inverse Kinematics) Plugin [SUPPORT]

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • started a topic Dragon IK (Inverse Kinematics) Plugin [SUPPORT]

    Dragon IK (Inverse Kinematics) Plugin [SUPPORT]

    Dragon.IK is an easy to use inverse kinematics plugin that can be used in a wide variety of skeletal rigs in your project. It is developed in C++ and it is usable as a plugin in any project .


    Marketplace Link :
    https://www.unrealengine.com/marketp...rse-kinematics


    It works on :
    • Bipeds
    • Quarupeds
    • Spiders
    • Snakes (In the latest update)



    The IK tools can be used on humans and most animals such as dogs, chickens, bears,dragons , multi legged beasts ,scorpions,spiders,worms etc . Setting up the inverse kinematics in your animals can be done in just a few minutes as it is almost automatic and adapts to the type of rig with just a few parameters to change depending upon your game.


    Keep your actual blueprint code clean and simple when you can just implement the ik using two animation blueprint nodes.



    The major requirement expected from the skeletal mesh is they should have a linear single sequence of spine bones, while the limbs ultimately connect to this linear sequence of spine bones. A good example is how infinity blade characters are rigged.


    Click image for larger version

Name:	deer_req.PNG
Views:	1
Size:	155.1 KB
ID:	1549344


    Discord link for support : https://discord.gg/XdBWW2U

    Demo showcase on quadrupeds,bipeds and spiders



    Demo showcase on snakes






    Tutorial Videos :








    Last edited by codehawk64; 11-08-2018, 01:03 PM.

  • replied
    Originally posted by NailGUNNERX View Post
    Hi codehawk64,

    when in editor your plugin frequintly crashes,
    Ex: Spider Blueprint or Spider Animblueprint is open in the background
    Can we disable editor features?

    I have the latest version of your plugin and UE 4.21.
    Here is the crash log:

    LoginId:efc31eb948c14da33b0b41acc6eb7fda
    EpicAccountId:32a2e88791bd4ad789ad813c0809d254

    Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 611] Array index out of bounds: 1067 from an array of size 1067

    UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:417]
    UE4Editor_Engine!operator new<FBatchedLine,FDefaultAllocator>() [d:\build\++ue4\sync\engine\source\runtime\core\public\containers\array.h:2849]
    UE4Editor_Engine!ULineBatchComponent:rawLine() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\linebatchcomponent.cpp:129]
    UE4Editor_Engine!DrawDebugLine() [d:\build\++ue4\sync\engine\source\runtime\engine\private\drawdebughelpers.cpp:42]
    UE4Editor_Engine!DrawDebugLineTraceSingle() [d:\build\++ue4\sync\engine\source\runtime\engine\private\kismettraceutils.cpp:133]
    UE4Editor_Engine!UKismetSystemLibrary::LineTraceSingle() [d:\build\++ue4\sync\engine\source\runtime\engine\private\kismetsystemlibrary.cpp:1338]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::line_trace_func() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:1744]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::UpdateInternal() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:686]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::Update_AnyThread() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:56]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonFeetSolver::Update_AnyThread() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonfeetsolver.cpp:45]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_Engine!FAnimInstanceProxy::UpdateAnimationNode() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstanceproxy.cpp:46]
    UE4Editor_Engine!FAnimInstanceProxy::UpdateAnimation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstanceproxy.cpp:1112]
    UE4Editor_Engine!UAnimInstance::ParallelUpdateAnimation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstance.cpp:569]
    UE4Editor_Engine!USkeletalMeshComponent::PerformAnimationProcessing() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\skeletalmeshcomponent.cpp:1775]
    UE4Editor_Engine!FParallelAnimationEvaluationTask:oTask() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\skeletalmeshcomponent.cpp:113]
    UE4Editor_Engine!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask() [d:\build\++ue4\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:829]
    UE4Editor_Core!FTaskThreadAnyThread::ProcessTasks() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:1022]
    UE4Editor_Core!FTaskThreadAnyThread::ProcessTasksUntilQuit() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:847]
    UE4Editor_Core!FTaskThreadAnyThread::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:923]
    UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp

    I know we just resolved this issue on discord but i want others to know the solution

    For anyone who has the plugin crashing the editor at random times, you just need to disable 'display line tracing' on both the spine solver and the foot solver(which is turned off by default).

    Leave a comment:


  • replied
    Originally posted by Wallenstein View Post
    I have a question: The regular UE IK node does not work with setups like the DAZ G8 skeleton where you have a squence like UpperArmBend-LowerArmBend-LowerArmTwist-Hand.
    The twist inbetween the hand and LowerArmBend is interpreted as a regular bendable bone which makes the whole IK system useless for me.
    Is your system able to ignore such a bone and only operate on the two enclosing bend bones?

    Sorry for the late reply. It will absolutely work.

    Just recently a user asked me the same thing regarding his daz human rig, with its problem of having multiple bones between the thigh bone and the feet bone which is not supported by unreal default two-bone ik system. I modified the plugin to support such problems by being able to explicitly define what are the thigh,knee and foot bones. The plugin by default uses the normal unreal method of automatically detecting the thigh-knee-foot just by the foot input alone. But by disabling 'Enable Automatic thigh feet foot detection' you can specify the exact thigh and knee along with the foot for your character. There can be many bones between the thigh and knee or the knee and foot but the explicit thigh and knee will be used only for the bending. But i do have to give a heads up that whatever i mentioned will only be good for the feets, because the ik can only react to terrains and platforms currently and not for holding and reaching objects and specific target points using either the hands or feet.

    Long answer short, the plugin can work on daz rigs which cannot be handled by unreal native two-bone ik system. Good for foot ik for responding to terrains but not designed for hands.

    Leave a comment:


  • replied
    Hi codehawk64,

    when in editor your plugin frequintly crashes,
    Ex: Spider Blueprint or Spider Animblueprint is open in the background
    Can we disable editor features?

    I have the latest version of your plugin and UE 4.21.
    Here is the crash log:

    LoginId:efc31eb948c14da33b0b41acc6eb7fda
    EpicAccountId:32a2e88791bd4ad789ad813c0809d254

    Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 611] Array index out of bounds: 1067 from an array of size 1067

    UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:417]
    UE4Editor_Engine!operator new<FBatchedLine,FDefaultAllocator>() [d:\build\++ue4\sync\engine\source\runtime\core\public\containers\array.h:2849]
    UE4Editor_Engine!ULineBatchComponent:rawLine() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\linebatchcomponent.cpp:129]
    UE4Editor_Engine!DrawDebugLine() [d:\build\++ue4\sync\engine\source\runtime\engine\private\drawdebughelpers.cpp:42]
    UE4Editor_Engine!DrawDebugLineTraceSingle() [d:\build\++ue4\sync\engine\source\runtime\engine\private\kismettraceutils.cpp:133]
    UE4Editor_Engine!UKismetSystemLibrary::LineTraceSingle() [d:\build\++ue4\sync\engine\source\runtime\engine\private\kismetsystemlibrary.cpp:1338]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::line_trace_func() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:1744]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::UpdateInternal() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:686]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonSpineSolver::Update_AnyThread() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonspinesolver.cpp:56]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_DragonIKPlugin!FAnimNode_DragonFeetSolver::Update_AnyThread() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dragonikplugin\source\dragonikplugin\private\animnode_dragonfeetsolver.cpp:45]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_Engine!FPoseLinkBase::Update() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animnodebase.cpp:241]
    UE4Editor_Engine!FAnimInstanceProxy::UpdateAnimationNode() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstanceproxy.cpp:46]
    UE4Editor_Engine!FAnimInstanceProxy::UpdateAnimation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstanceproxy.cpp:1112]
    UE4Editor_Engine!UAnimInstance::ParallelUpdateAnimation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animinstance.cpp:569]
    UE4Editor_Engine!USkeletalMeshComponent::PerformAnimationProcessing() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\skeletalmeshcomponent.cpp:1775]
    UE4Editor_Engine!FParallelAnimationEvaluationTask:oTask() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\skeletalmeshcomponent.cpp:113]
    UE4Editor_Engine!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask() [d:\build\++ue4\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:829]
    UE4Editor_Core!FTaskThreadAnyThread::ProcessTasks() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:1022]
    UE4Editor_Core!FTaskThreadAnyThread::ProcessTasksUntilQuit() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:847]
    UE4Editor_Core!FTaskThreadAnyThread::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:923]
    UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp

    Leave a comment:


  • replied
    I have a question: The regular UE IK node does not work with setups like the DAZ G8 skeleton where you have a squence like UpperArmBend-LowerArmBend-LowerArmTwist-Hand.
    The twist inbetween the hand and LowerArmBend is interpreted as a regular bendable bone which makes the whole IK system useless for me.
    Is your system able to ignore such a bone and only operate on the two enclosing bend bones?

    Leave a comment:


  • replied
    version 1.0.3 is updated and live in the marketplace with some bug fixes related to manual foot-knee-thigh detection mode as well as the extra dip on up/down slopes settings

    Leave a comment:


  • replied
    In the latest update (1.0.2) the ik can work on snakes,worms and other critters that doesn't have legs.

    Additionally, the option of custom selecting the knees and thighs are introduced for the foot solver. Before, the plugin automatically recursively figure out what is the knee and thigh based on the feet array data. This is useful on certain rigs that does not have a linear feet structure, such as having additional bones between the thigh-knee-feet. Custom selection of knee and thighs can be enabled when unchecking the 'automatic knee/thigh detection' in the foot solver.

    Also submitted the plugin for 4.21 recently, should expect an update from epic soon regarding the same.

    Leave a comment:


  • replied
    Originally posted by ChunkySmoove View Post
    I think Im having the same problem as Yota_13 on the product page. The feet are eratically flipping in different directions. Did you guys solve that in Discord? Increasing the trace height below feet doesnt seem to work.
    not fully solved. Turns out the flipping problem seems to happen in multiplayer for some reason while the problem isn't that bad in single player. still not fully understood on why that happens to yota_13. So you also have the flipping foot rotation or the bad knee bending ? Did you try the example project with the mannequin ?

    Edit: For yota_13 his situation was greatly improved when reducing the shift speed in the foot solver from 5 to 2 or 3. You can also try that and see if that helps.
    Last edited by codehawk64; 10-24-2018, 04:32 PM.

    Leave a comment:


  • replied
    Originally posted by Alveo Mundi View Post
    Thank you very much for your reply. I will follow your advice on setting. The result I will write. Thank you again.
    sure. let me know how it goes.

    Leave a comment:


  • replied
    Thank you very much for your reply. I will follow your advice on setting. The result I will write. Thank you again.

    Leave a comment:


  • replied
    I think the previous discord link might've expired or became invalid. Generated a new one here.

    https://discord.gg/XdBWW2U

    Leave a comment:


  • replied
    Originally posted by Alveo Mundi View Post
    When setting up a character there is a problem bending the legs at the knees, they bend sideways, and on a standard mannequin everything works correctly.
    Help me solve this problem.
    set the feet yaw offset inside your foot array data. A couple of posts ago i showed an example for overall offset of your knee angle.

    btw, i notice you tested it on the ref pose of the character, but what about when using any proper idle animations or when running ? The plugin logic takes care of the bending of the legs based on the current posing angle of the leg. If the leg is bent slightly in any direction, the ik bending happens only in that particular direction. That is why the mannequin handles the knee bending well, because the idle animation of the mannequin already slightly bends the knee in the forward direction.

    Click image for larger version  Name:	knee_offseting.PNG Views:	1 Size:	283.6 KB ID:	1542064
    Last edited by codehawk64; 10-21-2018, 05:50 AM.

    Leave a comment:


  • replied
    I think Im having the same problem as Yota_13 on the product page. The feet are eratically flipping in different directions. Did you guys solve that in Discord? Increasing the trace height below feet doesnt seem to work.

    Leave a comment:


  • replied
    When setting up a character there is a problem bending the legs at the knees, they bend sideways, and on a standard mannequin everything works correctly.
    Help me solve this problem.

    Leave a comment:


  • replied
    I am also interested in this.
    Last time i checked Ikinema had some quite annoying errors (features) while setting up skeleton. So waiting for alternative.

    Leave a comment:

Working...
X