Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Interactor - Interaction Handler for IK (Procedural Interactions)

Discussion in 'Assets and Asset Store' started by razzraziel, Sep 11, 2020.

?

Rate your level of interest please.

  1. Extremely interested!

  2. Considerably interested.

  3. Slightly interested.

  4. Not interested.

Results are only viewable after voting.
  1. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292

    Interactor designed to cover all aspects of any kind of interaction, from designing stage in editor to handling complex interactions in runtime. It contains editor tools to simplify process of preparing a fully interactable environment. And in runtime, it handles which player parts are going to interact with which parts of the interacted object, while using it's own IK to animate player bones.

    Comes with InteractorIK but also has one click switch for fully integrated Final IK. You can change between those with a simple click anytime in seconds.

    Online Documentation

    Asset Store Link




    Interactor is now v0.86 beta and live on Asset Store with a discounted price.

    Watch the thread on right top of this page if you want to be notified when a new info posted.
    I hope you find it interesting, feel free to contribute in thread or ask questions. Thank you.
     
    Last edited: Nov 18, 2021
    yasirkula likes this.
  2. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Reserved for future updates #1

     
    Last edited: Sep 24, 2020
  3. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Reserved for future updates #2
     
  4. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Reserved for future updates #3
     
    Last edited: Sep 23, 2021
    Inspeinre and yasirkula like this.
  5. LudiKha

    LudiKha

    Joined:
    Feb 15, 2014
    Posts:
    137
    Hi, this looks pretty neat - is there an online demo or windows build available?
     
  6. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    98
    @razzraziel Is this still active?

    I have FinalIK but I find the interactions a bit of a pain to set up. If this is still active, I will definitely pick this up and play with it.
     
  7. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Currently there is no demo sorry.

    I know it is a bit hard to decide without even single video about it. If you like you can wait. I was busy with some other freelance projects sorry.
     
    Last edited: Sep 23, 2021
  8. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    98
    @razzraziel Thanks for getting back to me, sounds good. I understand having other work to do. :)
     
  9. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Good news, I'm done with the trailer at last. Now I can finally announce Interactor since no one still knows it. I'll publish it next week with the new update. I think it will worth the long wait.

    Also I can work freely on Interactor. Last but not least, all the tutorial videos will be live next week too.

    Edit: 0.72 update is pending. Now example scenes work with the new Input System as well as the Legacy one.
     
    Last edited: Sep 26, 2021
  10. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Trailer added! I hope you'll like it.

     
    AthrunVLokiz likes this.
  11. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Latest news:

    -Version 0.72 published. And also two tutorial videos are online.

    - First announcement is well received on Reddit and Youtube.
    - Working on 0.75 update right now.
    • Custom easing for interactions with Animation curves is done.
    • Look at Target is done. So player can look at selected interaction target automatically. And it can be enabled on each interaction object.
    • Spawning prefabs with exact same rotations on clicked spot (Revisited). You can set position and rotations of your prefab targets around the world center (Forward is global world forward now). Same position offset and rotation offset will take place when you spawn them on your clicked point (Depending on your spawn options).
    • Also working on InteractorObject component. Not decided yet but if this one lands, you won't see all settings on this component anymore. When you select interaction type on object, you'll only see that type's settings with ScriptableObject assets. Other settings (so all the unnecessary variables) won't take space in your memory. And you can use same interaction settings in other interaction objects since they are all ScriptableObject assets.
    • And last, working on SceneView window to use it in Spawner mode. It'll have some options for interaction type, spawning rotation rules etc. So you can work in full screen while spawning new interactions without selecting objects or using Spawner window.
     
    Last edited: Oct 5, 2021
  12. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hey guys, great news. v0.75 update took longer because it turned into a major update. My last 45 days went into this update and now it is published on Asset Store as v0.86.

    Here is the changelog for it:
    • Faster Workflow with Interaction Presets (New SceneView Window Spawner Mode)
    • New Example Scene with Unity Armature
    • Interaction types seperated from InteractorObject as ScriptableObject assets
    • Highly customizable Look settings
    • Interaction Priority values for selecting interactions and their look orders
    • Smooth interaction interruptions with Interrupt Transfer
    • Interaction speeds per InteractorObject
    • Custom easing for interactions with Animation Curves
    • All target spawning rotation modes improved
    • Minimum range added for effector settings
    • All override options added (All angles, min & max ranges) for InteractorTargets
    • Custom layer names
    • Most of interaction types overhauled and improved
    • Predestined drop and hold positions for pick up objects
    • Final IK v2.1 support & All new features for Final IK versions
    • Interactor Core version removed
    • Other improvements on several scripts

    And this is the new trailer and new example scene that included in latest update. It focuses on new preset feature and showcases the easy & fast workflow even for complex interactions.


    Also we have new 3 tutorials. Two of them are quite long but all of them have video segments so you can skip or watch specific topics. All the new features covered in these videos.




    If you have any questions, just let me know over here or via email.
     
  13. rojbarak

    rojbarak

    Joined:
    Nov 17, 2021
    Posts:
    16
    Hi, I'm thinking to buy this one and will use it in two different projects. One of them is mobile so I wonder if that performs well in mobile platforms?
     
  14. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    @rojbarak

    The influence of the Interactor would be too low and hardly noticeable even on old devices. Tested with my 4 year old Xiaomi Mi6, it was 60 fps (locked to 60) and sometimes goes to 57-58 when player is around the interactions and interacting.

    Here is a quick capture, sorry it was a bit hard to play without UI selection and with one hand.

     
    PiedraViviente and rojbarak like this.
  15. rojbarak

    rojbarak

    Joined:
    Nov 17, 2021
    Posts:
    16
    Thank you for the effort. I'll give it a try.
     
    razzraziel likes this.
  16. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Experimented with procedural hand poses for a day. Right now it feels a bit off and needs optimizations (0.5ms) and fingers are like snakes.

    Workflow is like this:
    Transparent box is the area that holds desired object to cache (resizable). Then it creates points with given density (to create point clouds like structure) and creates the same shape. Then discards inner points to get only edges (no need for inner points). Then it only gets X amount of closest points to a given transform point. So you get only interactable part of an object with much lower point count. For example for a door object, you can only get the edges around door handle where your procedural interaction will take place. Because more points = more process. And last, these points work like colliders for bones.


    If improved, it can allow users to put a single point on desired object instead of prefab targets. So transparent box will be spawned on right clicked object and cache the points in the background. Then the rest will taken care of by Interactor with much more realistic movements and adaptation for the players position.
     
    Last edited: Nov 19, 2021
    ftejada likes this.
  17. Borup3

    Borup3

    Joined:
    Oct 17, 2012
    Posts:
    5
    Hi, I've added support for turning off game objects with InteractionTarget components but this means I can't plug-and-play any future updates you make.

    Can you please add support for turning interaction targets on/off at runtime? This is just via gameObject.SetActive(false/true). I've just modified the loops in Interactor.cs to ignore disabled objects.

    It also appears that InteractorObject.duration has no effect on the duration of the interaction, when used with Final IK at least. InteractionSystem Speed does help, but that's not per interaction as InteractorObject.duration suggests.
     
    Last edited: Nov 20, 2021
  18. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hi @Aborup

    Sure, let me think about it first. I need to decide what the default behaviors should be. Because it also directly affects the interactions with multiple targets. For example what would happen if you turn a left hand target off when holding a two hand pick up object? It should end the interaction completely since you can't hold that kind of object with just one hand. Then since we're turning the whole thing off, why don't we just end the interaction instead.

    Or what happens if you turn a foot off when using a vehicle? It'll end the foot interaction for sure, but if it needs to start itself when enabled again, then the whole logic should change for multiple interaction type.

    These kinds of things. What was your purpose for turning on and off the targets? So I can get a better scope what to do.



    On Final IK version, I don't control everything because Final IK already has its own interaction system which also allows some other controls other than Interactor offers. And also InteractionSystem, InteractionTarget and InteractionObject are all Final IK components and needed for Final IK's own internal workflow. You can inspect the InteractionObject component, there are lots of setting. And time, pause settings exist over there. Also you can see its doc for details and how to use its settings over here: http://www.root-motion.com/finalikdox/html/page10.html
    But you're right I should remove speed settings on InteractorObject on Final IK version, since they do nothing for Final IK's InteractionObject time and pause.
     
    Last edited: Nov 20, 2021
  19. Borup3

    Borup3

    Joined:
    Oct 17, 2012
    Posts:
    5
    I have interaction targets for both left and right hand on a surface and I never allow both, so I turn one of them off, conditionally, and enable the other, based on which hand I want to go on the surface.

    Re: duration/speed. Okay, that's fine. Thanks for clarifying.
     
  20. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    @Aborup

    Ok for now you can use InteractorOverride component on targets. Just add the component and enable override. If you enable override and leave the default values, that target will act like disabled and behave exactly what you wanted. OverrideEffector bool is public and you can turn it on/off with a reference to component (This is for Final IK version). Does this works for you?


    And on the next update I'll add "skip target if it is disabled" for one hand interactions.
     
    Last edited: Nov 20, 2021
    Borup3 likes this.
  21. rojbarak

    rojbarak

    Joined:
    Nov 17, 2021
    Posts:
    16
  22. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Already sent you back yesterday :)
     
    rojbarak likes this.
  23. rojbarak

    rojbarak

    Joined:
    Nov 17, 2021
    Posts:
    16
    Oh sorry my bad!
     
    razzraziel likes this.
  24. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Interactor update v0.89 is done and will be live in a few days. There is a new example scene to showcase new features and changes.

    Here is the changelog:
    - TwoBoneIK Solver added for non-humanoids
    - PlayerState singleton requirement removed (Now it is InteractionStates and automatically handled per Interactor)
    - Multiple Interactors in same scene allowed. Each Interactor only cares about its object in runtime and Scene windows/Spawner will use the latest selected Interactor as base in Editor. Gizmos will show up depending on their Interactor's debug option. You can use Interactor on your AI characters as well as your player and all the Interactors can interact with each other.
    - Nested Interactions (Interactions can be child of each other) with exluded InteractorObjects
    - Nested targets (Targets can be child of each other) with excluded InteractorTargets
    - InteractorTarget's child bones can match rotations everyframe (Not just target pose, now you can animate each bone, each frame)
    - Disabled InteractorObjects and disabled InteractorTargets gets skipped.
    - Interaction end events (besides the start events)
    - First Person Example Scene for showcasing all new features
    - Minor fixes & improvements

    Also I'll share a new scene video here.
     
    ftejada and rojbarak like this.
  25. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Interactor v0.89 has been submitted and probably will be live in 1-2 days. Here is the latest video of new features and FPS example scene. It has multiple Interactors (including an AI character), non-humanoid use cases with new TwoBoneIK and nested interactions/targets. Especially last interaction is a good example for creating complex ones.



    New FPS example scene does not included in Final IK version because Final IK's two bone ik solver(Limb IK) for non-humanoids do not work with its interaction system. Also this video recorded in HDRP, so your example scene won't look like this in terms of visuals :) (It's all about lighting and HDRP materials). If anyone asks, I can provide HDRP version as well.


    Update: 0.89 is live!
     
    Last edited: Dec 17, 2021
    ftejada likes this.
  26. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    Hey there. I can't seem get it to working properly in the demo scene. For example, the player approaches the cheese box. I push the "f" button. Magically the box floats into the air and the player crosses his arms. I've created the Player layer and made sure the player is assigned to that layer. What am I missing?


    upload_2021-12-19_3-52-35.png
     
  27. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    Here's what happens when he sits in the chair.

    upload_2021-12-19_4-4-11.png
     
  28. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    Getting back on the couch.

    upload_2021-12-19_4-12-21.png
     
  29. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    My scene functions way differently than the YouTube video example you have. I'm guessing I'm missing some detail, but I haven't been able to locate it in the documentation. The FPS example controller looks nothing like your video. I'm guessing you setup some additional inputs? My WASD goes forward, backward, moves left and right. No rotation happens and no errors appear in the console.
     
  30. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hi @ScourgeGames
    Let me help you on those one by one.

    UnityArmature ExampleScene has no description texts unlike other three scenes because it has a detailed tutorial video. Watching that one helps a lot to understand how things work. I strongly suggest to watch that tutorial (it has video segments so you can watch the parts you're interested in).


    #1
    If pick up object is on the ground, object should move to hands or predestined pick up position. That is why it moves to your hands. Because InteractorIK is not full body IK solver(like Final IK) and it can only use two bone structures (shoulder to hand or pelvis to foot). At that point you either need a pick up animation or you need to allow objects to move. So we have a regular pick up animation to crouch the player which activates with "R" button. And in the middle of pick up animation, it uses object when hands can reach with help of pick up animation. So when you see "Use F" for ground object, you can also use R button to pick them up without floating objects.

    Also if you want to pick up an object from other side (so hands won't cross each other like in your screen), you can put additional left & right hand targets to both sides as well. Or you can examine the Protoman scene for procedural placement for two hand pick ups. It places hands automatically. (That feature will improve with v1.0 for better placement).


    #2
    This is because feet are on the Ottoman Stand object to showcase nested interactions. Again, please kindly watch the tutorial video. Here is the related segment (@01:10:26).

    #3
    This shouldn't happen unless you disabled the "Set Body Direction" on Multiple Settings.

    Let me know if that is not the reason of it.

    #4
    Right clicking on the Game window toggles the cursor lock in all scenes (locks & unlocks with right click). Does that work for you?
     
    Last edited: Dec 19, 2021
    ScourgeGames likes this.
  31. T080759

    T080759

    Joined:
    Aug 13, 2018
    Posts:
    1
    Does your tool work with Invector Controller out of the box, or ther are conflicts?
     
    Delereos likes this.
  32. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    Thanks for the information! I'll be working through it some more. I appreciate your providing extra info.
     
    razzraziel likes this.
  33. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hey @T080759

    Yes it works with Invector but you need to disable Invector's IK parts. Because Invector also uses hands and feet IK. So if you want to use your hands for Interactor, you need to disable Invector's hand IK option. Or feet, depending on which body parts you want to use for interactions.
     
  34. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hi all,

    Next update will focus on quality of life instead of new features. Interaction types and some other side components(auto mover, path mover, interactive rotator etc) will be improved because most of them are in temporary state. It should be ready in January.

    If you have any ideas or experienced any bugs, please let me know here.
     
  35. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    235
    I think that's a good plan. I'm eager to see it stabilized a bit. I see lots of potential.
     
    razzraziel likes this.
  36. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    I want to put this here as last post for all newcomers.

    Hi everyone, please don't use Unity 2021.2 yet.

    They made huge changes in SceneView and has lots of bugs & gizmo issues right now. Interactor's SceneView windows doesn't even work. They fixed some of them on 2021.2.3f and Interactor SceneView windows started to work but still there are issues. I'm waiting for more stable version and I'll release an update if needed.

    Until then, you can use any Unity version between 2019.1.0f to 2021.1.28f.
     
    Last edited: Dec 24, 2021
  37. rojbarak

    rojbarak

    Joined:
    Nov 17, 2021
    Posts:
    16
    I tried with 2021.2.7 and it was working fine but the interactor button was a bit off in new sceneview and it throws a null error sometimes. Interactions were working fine too.

     
    razzraziel likes this.
  38. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Yes it is just a UI stuff because of the 2021.2 sceneview overhaul. And yes they fixed up most of it. Next update will fix the remaining issues.
     
  39. trueh

    trueh

    Joined:
    Nov 14, 2013
    Posts:
    29
    Hi. Trying Interactor for the first time.

    I'm getting a weird behaviour while following the first video tutorial. I started by setting the position of an effector. It works. The problem is when adjusting the Effector Maximum Range. The position of the effector is altered and restricted to an sphere which seems to be related with that range. Is this the expected behaviour?

    I'm using Interactor with FinalIK.

    Thanks.
     
  40. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hi @trueh

    Yes, it is expected behavior. Areas outside of sphere can not be detected by trigger so it is pointless to set effector rule outside of sphere trigger. Also it doesn't need to be too big since it just needs to cover your arm or leg length (or a bit longer since Final IK can pull the body a bit). Otherwise your hands or legs can't reach it.

    But still, you can increase the sphere trigger's radius to increase effector range if you want.
     
  41. trueh

    trueh

    Joined:
    Nov 14, 2013
    Posts:
    29
    Yes, it seems logical. Still the area to which the pivots for effectors are restricted seems too small for me. I mean, my character is 1.8m tall. I have set the sphere collider radius to 1.2. Once I adjust the effector range to the length of the arm, I cannot move the effector pivots up to the chest (they should be in the shoulder). I will try to capture a video tomorrow to show the issue.
     
  42. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    @trueh

    Sure if you share a video I can guide you better.
     
  43. Artini

    Artini

    Joined:
    Jan 29, 2016
    Posts:
    106
    @razzraziel
    Superb package, much needed - thank you for creating it.
    I have some questions about its usage.
    Have sent you a PM.
     
    razzraziel likes this.
  44. Artini

    Artini

    Joined:
    Jan 29, 2016
    Posts:
    106
    @razzraziel
    Just one more question, please.
    Have sent you another PM.
     
    razzraziel likes this.
  45. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    Hi everyone, a quick update.

    The latest update couldn't make it this month. I know I said it was a quality of life update but we needed a new feature for the bezier paths. That was important so I included that part as well. It should arrive on April.

    Thank you for understanding.
     
    Last edited: Apr 12, 2022
  46. Zunno

    Zunno

    Joined:
    Apr 25, 2020
    Posts:
    2
    Thank you, really interesting. I'll buy it after this upcaming update.

    Update: I can't resist, I want to test it so I bought it today :))))
     
    Last edited: Mar 28, 2022
    razzraziel likes this.
  47. skymeson

    skymeson

    Joined:
    Sep 30, 2016
    Posts:
    14
    I'm getting an error when I import Final IK v2.1 and then apply FinalIKPack.
     

    Attached Files:

  48. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    292
    @skymeson
    Hi, Final IK integration is fully automatic. Please do not run Unity Packages by yourself.

    It is just one button click on Interactor component. It handles all scripts and example scenes automatically. Please see the instruction section for details or watch this short video.
     
    Ony likes this.
  49. Artini

    Artini

    Joined:
    Jan 29, 2016
    Posts:
    106
    Hi,
    I have a similar problem, if I try to use Final IK.
    There is no Interactor IK script at all.
    I use version 0.89 of Interactor.
    Any ideas?
     
  50. Artini

    Artini

    Joined:
    Jan 29, 2016
    Posts:
    106
    Can one use some other third person controllers (like the ones made by Opsive or Invector)
    and could take advantage of Interactor features with them?
    Probably need to watch tutorials just another time.
     
    Last edited: May 2, 2022
unityunity