1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. Unity 2017.1 beta is now available for download.
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Get further faster with the Unity Plus Accelerator Pack, free for new Unity Plus subscribers for a limited time. Click here for more details.
    Dismiss Notice
  7. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice
  8. Learn how you'll soon be able to publish your games to China in four simple steps with Xiaomi. Sign up now for early access.
    Dismiss Notice

FINAL IK - Full Body IK, Aim, Look At, FABRIK, CCD IK... [1.0 RELEASED]

Discussion in 'Assets and Asset Store' started by Partel-Lang, Jan 15, 2014.

  1. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Finally, the final Inverse Kinematics solution for Unity has arrived! :D

    Asset Store link







    There are currently 28 (and counting) demo videos and tutorials about Final IK on the YouTube

    Please visit the Asset Store page for more information.

    If you have any questions at all, you can:
    - refer to the Online User Manual for general information
    - refer to the Online Script Reference
    - post the question here if you think others might also be interested in the answer
    - use support@root-motion.com if you'd prefer confidentiality

    Thank you for reading and looking forward to working together,
    Pärtel Lang
     
    Last edited: Jun 5, 2014
  2. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    ...and here are the first two tutorials to get you started:

     
    Gozdek likes this.
  3. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    407
    Bought it, looked at the provided examples and I'm very pleased with my purchase. Time to fidle with it and see how it can affect the overhaul look and feel of our game.
     
  4. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Thank you for the purchase, Cygnusprojects, can't wait to see what you'll make with it!:)
    If you have any questions, let me know

    Cheers,
    Pärtel
     
  5. Cascho01

    Cascho01

    Joined:
    Mar 19, 2010
    Posts:
    948
    Damn hell, this is exactly what I was looking for!

    Is it possible to to this with your plugin?:

    $Kolben.jpg

    It is a connection rod with a piston, both part of a combustion engine.
    Please note that the piston is moving only along one axis.

    (Would this also be possible with Unitys Physics Components?
    It´s done in 3dsmax with a SplineIK-Solver.)
     
    Last edited: Jan 15, 2014
  6. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,263
    You're a genius! I will be purchasing this in the near future, this is a must have!
     
  7. blackant

    blackant

    Joined:
    Jun 18, 2009
    Posts:
    369
    pretty cool plugin !

    take it in my package !!
     
  8. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    The money to get this delight of movey stuff is apparently assured although could be anytime in the next month, but it is as inevitable as horde of adoring girls you will have swarming around you for such a mighty thing (100% going to happen)
     
  9. KarelA

    KarelA

    Joined:
    Dec 30, 2008
    Posts:
    385
    Oh boy. Every once in awhile someone releases a must-have plugin into store. This is one of them.

    Just the thing i need for my rift project. Bought it and love it, goodbye keyframe animations :)
    Gongratz on the release.
     
  10. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,396
    Purchased!

    Price is perfect; value your time Partel, that's how it's done! :D

    Cheers mate
     
  11. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    You should not use IK nor physics for this particular case. While it is no problem for Trigonometric, Limb, CCD or FABRIK solvers to solve the position of the piston, this particular problem presents us with 2 singularity points: one when the rod is completely stretched out and the other exactly 180 degrees from that. At those points there is mathematically no way to tell which way to rotate, so you will have a continuity problem where you can't control the spinning direction of the wheel. The same problem exists in mechanics, imagine, if the rod was fully stretched out or completely collapsed and you would suddenly apply huge pressure on the piston in the direction of the rod, you would simply blow up the engine. :) You can try using physics, but I bet it will be just jittery and unstable.

    If you can instead control the rig by spinning the wheel instead of moving the piston, the problem can be solved with simple trigonometry. Try this code:

    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4.  
    5. public class Piston : MonoBehaviour {
    6.  
    7.     public Transform root, bone1, bone2, bone3;
    8.  
    9.     void Update () {
    10.         Vector3 B = Vector3.Project(bone2.position - bone1.position, root.up);
    11.  
    12.         float b = B.magnitude;
    13.         if (Vector3.Dot(B, root.up) < 0f) b = -b;
    14.  
    15.         float c = Vector3.Distance(bone2.position, bone3.position);
    16.  
    17.         float a = Mathf.Acos(b/c) * Mathf.Rad2Deg;
    18.  
    19.  
    20.         bone2.transform.rotation = Quaternion.LookRotation(rotation * -root.up, bone2.transform.up);
    21.         bone3.transform.rotation = Quaternion.LookRotation(root.forward, root.up);
    22.     }
    23. }
    24.  
    bone 1 should be the wheel, bone2 the middle joint, bone3 the last joint connected to the piston. Root is the parent of bone1, bone2 is the child of bone1 and bone3 is the child of bone2. All bones should be facing in the same direction (local forward axis towards the next bone).

    rotate bone1 around to see how it works..

    If you have more questions about this, just PM me, let's keep this thread about Final IK :)

    Cheers,
    Pärtel
     
    watita and Mycroft like this.
  12. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Ahh yes like Steve said, i was extremely surprised at the price, very generous, a few things popping now asset wise that seem very sensible decisions and this is one
     
  13. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Hi again and thank You all! :D

    I got a new tutorial video for you, check it out:


    Cheers,
    Pärtel
     
  14. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    5,929
    Wow. I currently have no practical use for this, but I am going to get it anyway just to make big procedural multi-leg robots. I'll figure out what to do with them later. ;)

    Very nice work!
     
  15. bigzer

    bigzer

    Joined:
    May 31, 2011
    Posts:
    159
    Congrats for the early beta release!
    Yet another tech that will change Unity's landscape!
     
  16. Cascho01

    Cascho01

    Joined:
    Mar 19, 2010
    Posts:
    948
    Pärtel, I am answering to your reply on my little connection rod and piston setup.
    You are completely right in every point and I forgot to say that it´s indeed the wheel that I am turning and the piston movement is the result
    of the chain. So, your plugin would also be able to do this, right?

    And thanks very much for your script. It´s tiny, it´s working, it´s magic to me as a beginner (never knew about Quaternion.LookRotation....)
     
    Last edited: Jan 16, 2014
  17. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    You could get the piston rig running with Final IK so that you control it from the piston (because thats what IK does, it solves for the position), but that would present you with all the problems that I described earlier. But anyway, I'm glad I could help :)

    To the rest of you, thank You again, and check out the new tutorial. This one is about UMA integration and adding FBBIK in runtime:

    Cheers,
    Pärtel
     
  18. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,584
    Cheers Partel :) That's got a few bits of juicy code in there too :)

    One problem with attaching the FBBIK component at runtime when the UMA is generated, is that the Animator is very slow to start up. If your script builds an UMA and attaches FBBIK - you get 999+ warnings that the Animator isn't initialised - and therefore FBBIK doesn't grab all the references. Unfortunately, there seems to be no method of telling if the Animator is initialised or not (you can tell if it's null or not - but that doesn't help us here).
    This is one thing that I'd really like to find a solution for, as even a blunt yield wait isn't always perfect. It's not a fault with FBBIK, but with the Animator. I've not found a way to fix this yet.

    Google is full to overflowing with this error - lots of people having it in all sorts of situations.
     
  19. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    1,782
    I am very interested in this, but the performance worries me slightly. With 100 characters, you end up running at ~50 fps? The problem with this, for me - is that I will have a lot of characters on screen but I am scared that the IK system will eat all my available CPU, giving me no CPU left over for the actual game logic.

    Would it be possible to see a video or screenshot of how the Unity Profiler when running 100 characters?
     
  20. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,584
    Hmm... I'm adding FBBIK in code with AddComponent - but I'm getting endless errors:

    The warning "FBIK Chain contains no nodes", followed by endless
    IndexOutOfRangeException in RootMotion.FinalIK.IKSolverFullBodyBiped.GetEffector on line 170

    In the video you show how to add the FBBIK component by code - but it neatly skirts the the problem, by having to drop the umaCharacter onto the component in the Inspector. Trying to add FBBIK component post avatar generation is proving much harder :)

    I should add that when adding FBBIK component by code - FBBIK automatically gets it's references list just fine :)
     
    Last edited: Jan 16, 2014
  21. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Hy, fholm, welcome! :)

    When I started making FBIK, I never even dreamed it could be used on 100 characters at the same time - after all, it is Full Body IK! So actually it was quite shocking to make that performance video.

    Anyway, point being, normally in most cases you would need FBIK only on a couple of characters, the ones that are actually doing something that requires for it and that are close enough to the screen to even notice it. And of course you can smoothly blend out FBBIK for the characters in the distance or the ones who have been culled.

    Can I ask, what kind of scenario do you have in mind, where you'd need 100 FBIK characters?

    Here are the screenshots you asked for:
    100 characters with the default normal FBBIK settings:
    $100 Characters Normal IK.png

    The same with minimum FBBIK settings:
    $100 Characters Low IK.png

    .. and with no IK at all:
    $100 Characters No IK.png
     
  22. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    @ Whippets

    If you are getting the "FBIK Chain contains no nodes" warning, you are probably adding the component without immediately calling SetReferences after. If you don't call SetReferences in the same frame, FBBIK component will try to initiate it's solver and throw's the warning if it has no bones to initiate.
    So the IndexOutOfRangeExceptions happen, because you are trying to access the effectors of a solver that has not been initiated yet.

    Thats probably because you have the GameObject you are adding it to selected. You see when the GameObject is selected, and you add the component somehow, the custom inspector for FBBIK get's it's OnEnable () call, sees that the character has no references, and auto-detects them. If the GameObject is not selected, there will be no OnEnable and the references remain undetected.
     
  23. LeeAllen

    LeeAllen

    Joined:
    Aug 7, 2012
    Posts:
    136
    Hi,

    Would you mind creating a demo for the non programmer types out there that has a character following the mouse or an object in game mode? This is probably trivial for you guys but would be beneficial to the newbies like me. Perfect example scene would have something similar to this:

    1) The dummy rigged up
    2) Objects that you can click on and/or move in the game window that the dummy either reaches toward or otherwise reacts to
    3) a gui button that toggles it to where the dummy reaches or looks/reacts towards where the mouse is
    4) objects that are clickable that the dummy reaches towards or looks like he is going after

    This would not have to be anything intricate just the very basics so that non-programmers can snatch the code and mutilate it to make it work for their needs :)

    Best Regards,

    Lee
     
  24. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Thats is a great idea, Lee, thanks! :)

    I'm on it....
     
  25. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,584
    Thanks for all your help, Partel :)

    I now have realtime emotes in 12 lines of code each... this is too easy XD
     
  26. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    New tutorial up! This one is about the alternative uses of Aim IK. I'm discovering that it is a very powerful component and the stuff you can do with it goes far beyond aiming weapons... :)



    ...And here is the code for this tutorial:

    Code (csharp):
    1.  
    2. using RootMotion.FinalIK;
    3.  
    4. /// <summary>
    5.     /// Raycasting to the ground to redirect upper-body animation based on ground topography.
    6.     /// </summary>
    7.     public class TerrainOffset : MonoBehaviour {
    8.        
    9.         public AimIK aimIK; // Reference to the AimIK component
    10.         public Vector3 raycastOffset = new Vector3(0f, 2f, 1.5f); // Offset from the character, in local space, to raycast from
    11.         public LayerMask raycastLayers; // The layers we want to raycast at
    12.         public float min = -2f, max = 2f; // Min and max for the offset
    13.         public float lerpSpeed = 10f; // The speed of lerping the IKPosition to make things nice and smooth
    14.  
    15.         private RaycastHit hit;
    16.         private Vector3 offset;
    17.  
    18.         void LateUpdate() {
    19.             // Find the raycastOffset in world space
    20.             Vector3 worldOffset = transform.rotation * raycastOffset;
    21.  
    22.             // Find how much higher is the ground at worldOffset relative to the character position.
    23.             Vector3 realOffset = GetGroundHeightOffset(transform.position + worldOffset);
    24.  
    25.             // Smoothly lerp the offset value so it would not jump on sudden raycast changes
    26.             offset = Vector3.Lerp(offset, realOffset, Time.deltaTime * lerpSpeed);
    27.  
    28.             // The default offset point at the character's height
    29.             Vector3 zeroOffsetPosition = transform.position + new Vector3(worldOffset.x, 0f, worldOffset.z);
    30.  
    31.             // Make the Aim Transform look at the default offset point (So when we are on planar ground there will be nothing for Aim IK to do)
    32.             aimIK.solver.transform.LookAt(zeroOffsetPosition);
    33.  
    34.             // Make Aim IK bend the spine by the offset.
    35.             aimIK.solver.IKPosition = zeroOffsetPosition + offset;
    36.         }
    37.  
    38.         private Vector3 GetGroundHeightOffset(Vector3 worldPosition) {
    39.             // Visualize the raycast
    40.             Debug.DrawRay(worldPosition, Vector3.down * raycastOffset.y * 2f, Color.green);
    41.  
    42.             // Raycast to find how much higher is the ground at worldPosition relative to the character.
    43.             if (Physics.Raycast(worldPosition, Vector3.down, out hit, raycastOffset.y * 2f, raycastLayers)) {
    44.                 return Mathf.Clamp(hit.point.y - transform.position.y, min, max) * Vector3.up;
    45.             }
    46.  
    47.             // Raycast found nothing so return zero
    48.             return Vector3.zero;
    49.         }
    50.     }
    51.  
     
    Last edited: Jan 19, 2014
  27. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    407
    Awesome, will definitely put that to good use ;-) Thanks for this tutorial (and script).
     
  28. Griffo

    Griffo

    Joined:
    Jul 5, 2011
    Posts:
    604
    Partel, thanks for doing that tutorial, that's just what I needed.

    I've just purchased Final IK and imported it into Unity, I went to add Aim IK to my model and it gave me the error -

    Instance of AimIKInspector couldn't be created. The script class needs to derive from ScriptableObject and be placed in the Assets/Editor folder.

    As you may have already guessed I'm writing in Javascript, do I need to move all the scripts to the Editor Dir? or only certain ones?

    Thanks.
     
    Last edited: Jan 17, 2014
  29. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Hi Griffo, thanks for having trust in Final IK :)

    I believe with Javascript you are supposed to maintain all the editor scripts inside an Editor folder that is not inside the Plugins folder. So if what you did was just moved the entire package to the Plugins folder, you should drag every script that is under Editor folder back out, make a folder Assets/RootMotion/FinalIK/Editor and put them there. I can't confirm on that at the moment, because I got to go, but you can quickly try this with just AimIKInspector and see if the error changes to another script. then you'll know it works. If it doesn't, let me know.

    Sorry, I haven't touched Javascript for years now :D

    Cheers,
    Pärtel
     
  30. Griffo

    Griffo

    Joined:
    Jul 5, 2011
    Posts:
    604
    I have trust in Final IK because of the support, first class.

    Done what you said and all errors have gone, I'll start using it tomorrow as now I hear a beer down the pub calling my name .. :)

    Thanks for the help.
     
  31. mrbdrm

    mrbdrm

    Joined:
    Mar 22, 2009
    Posts:
    489
    you succeeded in what mecanim team failed to deliver
    worth the price. good luck with the sales
    customer request : integrate it with PlayMaker (add PlayMaker actions)
     
    Last edited: Jan 17, 2014
  32. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,584
    @OP
    Your product looks more and more like an integrated tool of Unity. Very professional. :cool:
     
  33. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,396
    Ah, seconded. I completely forgot to ask for Playmaker Integration. Heck at this point I feel any and all significant Assets that have a even a modicum of complexity should support Playmaker. It's damn near a staple of Unity development! :D
     
  34. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Thanks for the feedback, guys :D. I will add Playmaker support. It's going to take some time though I haven't even tried that thing yet... :)
    Character System is also one of the things that I'm planning to test Final IK with. Do you guys have any other 3rd party packages that you're interested in?

    Cheers,
    Pärtel
     
  35. MoHoe

    MoHoe

    Joined:
    Nov 5, 2012
    Posts:
    567
    Purchased!!!

    Mr Partel Lang you're a genius!

    And very professional indeed.

    I've been watching those youtube video tutorials you made and man this is truly awesome.. you're awesome!!!!!
     
    Last edited: Jan 18, 2014
  36. Vaupell

    Vaupell

    Joined:
    Dec 2, 2013
    Posts:
    145
    That's the keyword,..

    playMaker, once it's supported I'm getting this aswell ;)
     
  37. Rohac

    Rohac

    Joined:
    Dec 16, 2013
    Posts:
    3
    Hi,

    First, thanks Partel for those awesome features, I was checking the assets store as often as possible to buy it first.. but I had to update Unity xD
    I've started to use the FBBIK component to fix an animation (riding a motorbike, hands and feet were not at the correct position, depending of the characters) and it was very easy to do with FinalIK, thanks again :)

    But there are two things I tryed to do :
    1) With FBBIK, there is a value "Maintain Rotation Weight" for the head, I did not found how I can update this value in a script.
    2) With LookAtIK, I did not found how I can update the position to look at in a script


    Edit : I found the solution for the second question, it is similar to FBBIK :
    I added this line :
    public LookAtIK ikLootAt;
    To update the position :
    ikLootAt.solver.IKPosition = theLookAtPosition;
    Save the script and grab the character on "ikLookAt" in the inspector

    Edit 2 : About my first question "maintain rotation weight" for the head with a FBBIK, in script :
    ik.solver.boneMappings[0].maintainRotationWeight = 0.5f;

    ik is a public FullBodyBipedIK (public FullBodyBipedIK ik; )
    I tryed with boneMapping[5] first, cause the head is the 6th element in the "Mapping" area in the inspector=> out of range
    Then I tryed boneMapping[0] and it worked :) You're website is awesome as your package Partel ! I've found solutions in the class index pages.
     
    Last edited: Jan 18, 2014
  38. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Wow, Staff Pick and the reviews! That just made my day (and week and month..) I'm humbled to the ground, that means a lot! Thanks You guys :)

    @ Rohac
    That's because behind the scenes the FBBIK setup is much more complex than what you see in the inspector. I just wanted to keep the inspector as simple and visually clean as possible for ease of use. In the next version I've already added better shortcuts for the mapping, so you could use ik.solver.leftHandMapping and ik.solver.headMapping and so on.

    IKPosition and IKPositionWeight is always a good place to start for looking, because they belong to IKSolver that is the base class for all IK solvers in Final IK.

    I will improve the User Manual about the properties, perhaps add a "getting started with scripting" section to each component. Thanks for the feedback!

    Cheers,
    Pärtel
     
  39. Griffo

    Griffo

    Joined:
    Jul 5, 2011
    Posts:
    604
    I too was having the same trouble as Rohac in 2) with LookAtIK I thought this would work but I get an error at line 11 -

    NullReferenceException: Object reference not set to an instance of an object

    Code (csharp):
    1. #pragma strict
    2.  
    3.  
    4. private var theLookAtPosition : Vector3;
    5. private var ikLootAt : RootMotion.FinalIK.LookAtIK;
    6.  
    7. function LateUpdate () {
    8.  
    9.     theLookAtPosition = player.position;
    10.     ikLootAt.solver.IKPosition = theLookAtPosition;
    11. }
    Why :(

    And Partel a "getting started with scripting" section to each component sounds good for noobs like me :D

    EDIT -
    Works now I forgot to add -

    Code (csharp):
    1. function Awake(){
    2.  
    3.     ikLootAt = GetComponent(RootMotion.FinalIK.LookAtIK);
    4. }
     
    Last edited: Jan 18, 2014
  40. hamyshank

    hamyshank

    Joined:
    Jan 31, 2013
    Posts:
    88
  41. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
  42. Fuzzy_Slippers

    Fuzzy_Slippers

    Joined:
    Dec 21, 2012
    Posts:
    450
    If I wanted to use this to cause a character to aim at mouse cursor regardless of the mecanin animation positioning or current character position that would just be a pretty simple effector on the arm / hand right?
     
  43. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    I'm sorry, but I've got something cooking in the labs that is probably going to leave a lot of animators unemployed ;)


    @Fuzzy_Slippers:
    You mean aim a weapon? That would be a job for the Aim IK. Take a look at this> older video.
     
    Last edited: Jan 18, 2014
  44. Fuzzy_Slippers

    Fuzzy_Slippers

    Joined:
    Dec 21, 2012
    Posts:
    450
    How does that work if you want certain things to be controlled by a fbbik and other things by just the biped ik functions like aim ik? Does fbbik inherit all the functionality of the biped ik or do you need to attach both to a model and selectively disable them?
     
  45. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Good question..:) FBBIK doesn't inherit anything, basically all the IK components are fully independent and can be additively applied on top of each other, meaning you can use FBBIK to change an animation and then apply Aim IK to keep aiming at the target. Or you can solve LookAtIK first to gaze at something and solve FBBIK or whatever you need on top of that to further manipulate with the pose. That way you have complete freedom in what you are doing and you can also change the updating order of the solvers.

    BipedIK is essentially little more than just a collection of solvers, you don't need to use it if you want to just have Aim IK on your character, you can use the AimIK component instead. BipedIK can just help with automatically setting up the solvers for your convenience.

    Cheers,
    Pärtel
     
  46. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,584
    WOW! You've excelled yourself there Partel XD How soon can we beta testers get our hands on the InteractionIK? I'd already started to write one, but as usual, you've made my attempts look totally pants, lol.
     
  47. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,377
    Thanks, Whippets, but hold your horses with this, the thing is just a few hours old :)

    About the new Standard Assets... if you notice FBBIK acting weird on the 3rd person character Evan, that is not a FINAL IK issue, it is the broken skinning of the character. If you remove the last (Neck) bone from the spine of the References, it will work fine. I will send feedback about this..

    Cheers,
    Pärtel
     
  48. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,396
    GodDAMNIT Partel?!?! I just got a call from my current client...they saw this and said "Steven, sorry but you're now unemployed" and I was like "PARTEEEEEEEEEEEL!!!, shaking my fist in your general direction...

    ...haha no seriously I have no work now, thanks.

    ...okay but more seriously, when we have IK Interaciton!?! :D

    -Steven
     
  49. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,584
    Heh - I'm poor at waiting XD XD - I'll just carry on with my idles and emotes.

    Something else came to mind. UMA dna let's us add new body parts with new bones (for instance, a tail, wings, boned ears, stranded hair, etc). It would be great if we could add new solvers to fbbik to handle these new body parts, so that we can treat the body with it's extra parts in a whole/holistic way.

    I'm guessing that wings, tail, etc will be multi boned, so would act like new limbs, though with possibly different rotational constraints be bone to an arm or leg.
     
    Last edited: Jan 19, 2014
  50. Fuzzy_Slippers

    Fuzzy_Slippers

    Joined:
    Dec 21, 2012
    Posts:
    450
    Really digging this. I see a lot of opportunity for creating procedural combat animations in a really fun way.

    I'm also a little confused about what the 'pin' is doing in the Aim Boxing demo. Could you explain a bit about how it is anchoring the animation? (I took it off to see what happens when it is gone and obviously removing it makes everything goofy)