GithubHelp home page GithubHelp logo

jonasmolgaard / ubiksolver Goto Github PK

View Code? Open in Web Editor NEW
109.0 109.0 26.0 1.84 MB

Upper Body IK is an implementation inspired by Mathias Parger's Master thesis.

License: MIT License

C++ 96.97% C# 3.03%

ubiksolver's People

Contributors

jonasmolgaard avatar kjduling avatar magerbeton avatar markjgx avatar rwoverdijk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ubiksolver's Issues

Cant compile the plugin

every time i try to compile the plugin from source for ue 5.0.3 it says that "GetSkinnedAsset: is not a member of USkeletalMeshComponent"

i see this being referenced in #8 and #18 but it doesn't seem to be fixed for me. i jsut downloaded the plugin from the master branch today.

Shoulder rotating back math is inconsistent with VRIK

While determining if the shoulder should be rotated back towards the hand, 0.08 is the distanceRatioThreshold. To create an area about 0 which has no rotation, within the range [-0.08, 0.5] it should be adding 0.08 not subtracting (since ForwardDistanceRatio is negative here).

const float TempYaw = (ForwardDistanceRatio - 0.08f) * Settings.DistinctShoulderRotationMultiplier;

(As an aside, VRIK actually had its own bug in this section but because the default back shoulder limit was 0, it didn't matter.)

UPlugin file error with UE 5.3.0

The UPlugin file doesn't seem to work with the latest unreal engine version (5.3.0), and won't build properly due to some minor errors. (might just be me though, and I fixed the issue with a slightly modified UPlugin file)

*edit fixed some grammar for readability

Modified file (just in text format you can modify yourself if needed, but this fixed it for me)

{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.1",
"FriendlyName": "UBIKSolver",
"Description": "UpperBody IK Solver",
"Category": "Animation",
"CreatedBy": "Sticky Snout Studio (Jonas Molgaard)",
"CreatedByURL": "https://stickysnoutstudio.com/",
"DocsURL": "",
"MarketplaceURL": "",
"SupportURL": "",
"CanContainContent": false,
"IsBetaVersion": false,
"Installed": false,
"SupportedTargetPlatforms": [
"Win64",
"Android"
],
"Modules": [
{
"Name": "UBIKRuntime",
"Type": "Runtime",
"LoadingPhase": "Default"
},
{
"Name": "UBIKEditor",
"Type": "UncookedOnly",
"LoadingPhase": "Default"
}
]
}

Could Not Be Compiled

I am relatively new to making games in unreal, so when I encountered this error on UR 5 I thought it was just because its a preview thing and tried it on UR 4.27.2 same thing and I have no clue how to fix this

E1

after pressing yes

E2

UBIKSolver.uplugin needs targeted platforms in order to be included in the build

This is an issue I encountered while trying to get a build working on quest 2 (android). It did not include the animation blueprint which contained the UBIK node.
By adding

"SupportedTargetPlatforms": [
		"Win64",
		"Android"
	]

to the UBIKSolver.uplugin I got it included in the build for Windows (HTC-Vive) and Android (Oculus Quest 2) on UE 5.1.1.

UE5 module not loading on Preview 1

Hi, I know this plugin is made for UE4 but its been working great on UE5 until Preview 1. This is the error I get.

Procedure entry point ?OneVector@FVector@@2U1@B could not be located in the dynamic link library.

Add license

Could you please add a license (hopefully MIT) to the repo? :)

Rig is sideways

This could be (and realistically, probably is) a problem with the program I used to export a mixamo rig to an unreal engine mannequin. Anyways, the rig in game and in the animation blueprint is sideways, and I don't know how to fix it.
image

Fails to link on OSX

First, slashes need to be fixed in AnimGraphNode_UBIKSolver.cpp to be cross-platform and not Windows-only. e.g.,
#include "../Public/AnimGraphNode_UBIKSolver.h"

Environment: MacOS Monterey 12.6 (21G115)
Hardware: MacBook Pro 2.9 Ghz intel Core i9
Compiler: Xcode 14.0.1
Unreal Engine 4.27.2

Second, running in to this linker error I can't solve:

[Adaptive unity build] Excluded from UBIKEditor unity file: AnimGraphNode_UBIKSolver.cpp
Performing 4 actions (12 in parallel)
[1/4] Compile Module.UBIKEditor.cpp
[2/4] Compile AnimGraphNode_UBIKSolver.cpp
[3/4] Link UE4Editor-UBIKEditor.dylib
Undefined symbols for architecture x86_64:
  "vtable for FAnimNode_SkeletalControlBase", referenced from:
      UAnimGraphNode_UBIKSolver::~UAnimGraphNode_UBIKSolver() in AnimGraphNode_UBIKSolver.cpp.o
      UAnimGraphNode_UBIKSolver::~UAnimGraphNode_UBIKSolver() in AnimGraphNode_UBIKSolver.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
0>clang: Error  : linker command failed with exit code 1 (use -v to see invocation)
Build failed at 10:18:24 AM

UpperArmsDistance's meaning is not consistent and likely introducing error

In the first set of code, UpperArmsDistance appears to be the distance from the shoulder center to the distinct shoulder:

Settings.ArmLength = (Calibration.Height / 2.0f) - Calibration.UpperArmsDistance;

But in the distinct shoulder rotation solver, there is a divide by two on the UpperArmsDistance. Indicating in this spot that it is meant to indicate the distance between the distinct shoulders, not the distance from shoulder center to distinct shoulder:

const FVector InitialUpperArmTranslation = FVector::RightVector * Settings.UpperArmsDistance / (2.f * Sign);

This is likely throwing off your shoulder rotation solve. To fix this, either the ArmLength should be calculated as:
Settings.ArmLength = (Calibration.Height - Calibration.UpperArmsDistance) / 2.0f;

OR the divide by two should be removed:
const FVector InitialUpperArmTranslation = FVector::RightVector * Settings.UpperArmsDistance * Sign;

Grabbing is broken since UBIK hands are offset from VR Template hands

I tried setting this up using a default VR Template in UE 5.3, and everything works. The only issue that I'm having is that the UBIK mannequin hands are offset from the VR Template hands. None of the hand positions align with the VR Template hands, such as Left Grip, Left Aim, or just Left. Trying to make adjustments to the UBIK settings defaults for Local Hand Offset & Local Hand Rotation Offset is a nightmare. I just want to be able to get these hands to align with the VR Template provided hands so that grabbing works correctly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.