Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Eliot AI - NEXT GENERATION of AI tools [NOW RELEASED]

Discussion in 'Assets and Asset Store' started by eliot-ai, Oct 18, 2018.

?

What would be the best thing to add to Eliot next?

  1. New type of Nodes based on machine learning

    37 vote(s)
    27.4%
  2. Eliot Hub - place to share your Eliot Behaviours and Skills

    29 vote(s)
    21.5%
  3. Copypasting parts of Behaviours

    5 vote(s)
    3.7%
  4. Embedded UI system for displaying Agent's stats

    11 vote(s)
    8.1%
  5. Support of 2D Sprite-based worlds

    13 vote(s)
    9.6%
  6. Groups and formations of Agents with a single goal

    28 vote(s)
    20.7%
  7. Agent's stats system that can affect the power and other settings of the Skills

    12 vote(s)
    8.9%
  1. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Great thanks for letting me know about that! I have already updated the package. Just need to wait for approval. For now though you can just remove the following lines:

    #if OOTII_TPC
    case MotionEngine.OotiiTpc:
    _motionEngine = new OotiiActorMotionEngine();
    break;
    #endif
     
    Mark_01 and KeithBrown like this.
  2. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    111
    Thanks for the quick reply.
     
    eliot-ai likes this.
  3. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi how can I play a jump attack animation that will go to the player instead of run to target node when player distance > 10?
     
  4. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi! You have a few options:
    1. RushForward Invoker
    2. Trigger the animation with the Skill
    3. Both
     
  5. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi in the rush forward invoke can I assign a custom animation?
     
  6. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    If you are using legacy animations, you can set the Dodge animation clip in the Inspector. If you are using Mecanim, you can set a name of an animator trigger that would make the agent play the appropriate animation. This animation will be played when the agent calls "rush forward".
    upload_2019-2-28_12-27-16.png
     
  7. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Are there any integration docs for invector? Or is it already in the source code?
     
  8. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    There is a pdf document called "EliotIntegration.pdf" in the root folder of the package. But most things are already handled by the source code.
     
  9. PyroStudios

    PyroStudios

    Joined:
    Sep 23, 2012
    Posts:
    206
    Hi! I'm currently checking out your asset on the store and I have a few questions to see if it fits my needs.

    I'll start off by saying, I want to create an large open world game that holds around 20 players all connected. On the client, the world is split up and streamed in when needed using World Streamer. The host client will handle all NPC AI, however the host client will also have their world streamed in dynamically as they move around.

    1. Can Eliot AI be used with multiplayer games?

    2. Can Eliot AI simulate entitles separately from the game objects? So if a part of the world hasn't been streamed in, can the NPCs not visible still run whatever AI they need?

    Basically to sum up my questions, I'm trying to duplicate what Spacial OS is doing but on a smaller / local scale. I need all Entities / AI to continue running even if their assets haven't loaded into the game world.
     
  10. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi @PyroStudios, thank you for getting in touch. I have to say that none of the things you have listed are automated in Eliot by default, however I believe it is a doable task. To provide multiplayer, the server would have to let the client know about 3 things: agent's transform, agent's animation, particles spawned by the agent.
    Regarding your second question, the answer is probably no, at least it is not implemented/automated by default.
     
  11. PyroStudios

    PyroStudios

    Joined:
    Sep 23, 2012
    Posts:
    206
    Thank you for the reply. So it sounds like there would always need to be one client that has a full view of the world in order to keep the AI running. Ok that's not bad.

    And my final question (sorry I didn't ask in my previous post), What are your benchmark numbers on max agent count? Could I potentially have 10,000 agents running with most of their AI just being as simple as moving between several waypoints and detecting if a player is nearby?
     
  12. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    The performance really comes down to the power of your PC and the complexity of the agents (obviously :)). What's less obvious and probably more helpful is the fact that I can squeeze out 40 fps on my lenovo ideapad (ntel® Core™ i7-7500U CPU @ 2.70GHz × 4, Intel® HD Graphics 620 (Kaby Lake GT2)) with 400 agents in the scene.
     
  13. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    642
    I see that the Integration PDF explains how to make an Invector player character damage an Eliot Agent. Have you implemented making an Eliot Agent damage an Invector player. Finally, have you integrated how an Invector character blocks attack by an Eliot Agent? Blocking is a standard feature of Invector.
     
    Last edited: Mar 19, 2019
  14. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi @wood333, Eliot Agents damage Invector player automatically using the Skills. You don't have to spend any extra time to get it to work. Regarding Blocking, drop me an email if it does not work as it is. We will figure that out.
     
    wood333 likes this.
  15. bonkabonkstudios

    bonkabonkstudios

    Joined:
    Dec 24, 2014
    Posts:
    2
    Hi! I was wondering if there is any plan to have parameters in behaviours. Maybe something similar to how the unity animator looks? It would be super helpful to be able to use simple primitives for checking if events happened!
     
    eliot-ai likes this.
  16. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    It definitely would be handy to be able to set an int or float in some nodes.
    You can modify an agent to check custom primitives by adding them to the Agent.cs and creating a ConditionInterface extension to check its status. If you want to adjust it at runtime you can create a ActionInterface referencing the same primitive variable and run logic on it in there. As far as i know there is not any built in nodes for creating custom variables or editing them as far as i know but it would be a great addition!

    Hopefully this info is useful :)
     
    Mark_01 and eliot-ai like this.
  17. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi @bonkabonkstudios, thanks for the question! Yes, in fact, Node parameters will be one of the most important features of the following update. Subliminum gave a good idea about the solution as of the current version.
     
    Mark_01 likes this.
  18. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    642
    I have been working on the skeleton tutorial in Unity 5.6.5. I get this, along with subsequent errors and editor freeze.
    Elliot error.JPG

    EDIT: The issue may have been caused by another asset, (I only have 4 in the project). I will re-do the tutorial
     
    Last edited: Mar 26, 2019
  19. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi how can Eliot ai detect the invector player? I'm using the v1.1.1 and haven't updated it yet.
     
  20. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    Adding a Unit Component to your Invector player with the type of 'Agent' will allow Eliot AI Agents to detect a GameObject with a collider. For damage application i think Invector integration was added in a recent update, otherwise there are a few posts earlier in the forum you can reference.
     
    Mark_01 and eliot-ai like this.
  21. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Thanks I'll try it now
     
    Subliminum likes this.
  22. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi regarding the invector integration, I have a problem. Eliot Ai doesn't damage the invector player and I got an error: Failed to call function TakeDamage of class vThirdPersonController
    Calling function TakeDamage with no parameters but the function requires 1

    And also I'm using the v1.1.1 and I don't have the integration doc. There's an integration regarding invector earlier in this thread but its for the ranged version of invector. How can I damage Eliot ai by melee weapons?
     
    Last edited: Mar 30, 2019
  23. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    Sadly i dont use Invector so i cant provide any specifics, This post may be useful. Otherwise simply starting a new Unity Project and downloading the updated version, importing it into that and referencing the new Doc's and methods will solve your issues. Just be sure not to over-write anything custom you've created in V1.1.1

     
    eliot-ai likes this.
  24. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @Subliminum can you send me a copy of the integration docs? I don't have enough money right now to update because of school expenses since I'm a graduating student.
     
  25. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    No, Regarding any student exemptions or discounts you would have to contact Eliot AI directly. I am not licenced to distribute his work.
     
    Mark_01 and eliot-ai like this.
  26. noname2u2

    noname2u2

    Joined:
    Jul 11, 2017
    Posts:
    2
    Does this work with generic mecanim animations? If so, how do i set it up to use them? Testing with the free Rhino from Unity Store.
     
  27. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi! Yes, Eliot works with Mecanim. You would need an Animator Controller which is set up so that the motion is animated by a parameter that regulates the motion speed and another optional parameter that regulates the degree to which the character is turning left and right. Also you can start an arbitrary animation, or set of animations using Animator Triggers.
     
    noname2u2 likes this.
  28. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @eliot ai does v1.1.1 can integrate with invector? I saw a thread earlier and there's an error when I add the take damage function in the on apply target in the skills. Here's my error;

    Failed to call function TakeDamage of class vThirdPersonController
    Calling function TakeDamage with no parameters but the function requires 1
     
  29. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi. Just upgrade to the latest version and this will be handled automatically. Cheers.
     
  30. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @eliot-ai I don't have enough money right now to update because of school fees and other expenses. Please help me integrate it as I want to use it for my boss ai
     
  31. xoodZ

    xoodZ

    Joined:
    Jan 8, 2018
    Posts:
    11
    Hello!
    I have a bag - links between elements are not saved in behavior editor (like a bug wroten in coments).
    My steps:
    1. Create a new blank project in Unity 2018.3.11.f1 (win10),
    2. Import Eliot asset,
    3. Create new behaviour,
    4. Open new behaviour in behaviour editor,
    5. Add 1 observer and 2 invokers, after add 3 transitions (screen1),
    6. Press Cntrl-S many times, after select "Save" in context menu,
    7. Reopen new behaviour in editor and saw only 2 transitions (always saw only 2 firsts transitions) (screen2),
    8. If I try open behaviour from sample scene, then all nodes placed in one corner, and not have transitions (screen3).
    Please fix it.

    I also have a plea - please add integration with Dialog System (of Pixel Crushers) similarly "Behavior Designer" or "Emerald AI 2". Link with description - http://www.pixelcrushers.com/dialogue_system/manual2x/html/emerald_a_i.html

    And one question - have ideas on how best to implement an energy barrier in Eliot (for example, a large dome, under which a group can hide), so that it is transparent to vision, but the shells could not fly into it

    PS. Sorry for my English.
     

    Attached Files:

    d1-favero likes this.
  32. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi! Some people have encountered that bug in the past and the solution was to switch to one of the official Unity releases.
    Thanks for expressing the idea of integration with the Dialogue System. I will consider that for the future updates.
     
  33. xoodZ

    xoodZ

    Joined:
    Jan 8, 2018
    Posts:
    11
    Thank you.
    Вut I use last official Unity release - 2018.3.11. Please try it yourself.
     
  34. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    I have just tried to reproduce the bug in Unity 2018.3.11f1 and failed to do so. I have tried to press ctrl+s, select the "Save" menu item, turn on the play mode but the behaviour stayed intact. Please, try to reimport Eliot. If that does not help, I would suggest to reinstall Unity. let me know if any of that helped.

    Basically the object will be transparent to the agents' perception if there is no "Unit" component attached to the dome. Also you might want to consider tweaking the layers in the perception raycast in case the dome's collider is doublesided. You can find the code responsible for that in the Perception class.
     
    Mark_01 likes this.
  35. psych77

    psych77

    Joined:
    Mar 1, 2017
    Posts:
    51
    I have the excact same issue with nodes disconnecting at runtime everytime!
     
    d1-favero likes this.
  36. psych77

    psych77

    Joined:
    Mar 1, 2017
    Posts:
    51
    I tried with 2018.3.12, 2018.3.11 and 2019.1 beta clean projects and installs.... Always the same issues with nodes, all nodes are in the upper left corner. Then if i drag them down, or make my own nodes.. save my setup, and then when i open the behavour the connection is gone.
    upload_2019-4-10_23-10-29.png

    if i move the nodes connections are black:

    upload_2019-4-10_23-10-59.png

    Then i save and close, and when im opening it again this happens connections get lost:

    upload_2019-4-10_23-11-44.png
     
    Last edited: Apr 10, 2019
  37. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    This is a bizarre error, i use Unity 2018.3.0f2 and have not experienced this bug. You should be able to use the asset with no issues in this version, assuming it isnt something project/pc specific that is breaking the asset. Hopefully these kind of issues will be fixed in the big update that's coming in a month or two. It would be nice to be able to scale the window, see an animated representation of the behavior in the behavior editor at run-time or copy paste parts of behaviors similar to how the normal animator editor behaves.
     
  38. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Hi @psych77. Please, try to switch the .NET version to 3.5
     
  39. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    I am working on it at the moment :)
     
    Mark_01 and Subliminum like this.
  40. psych77

    psych77

    Joined:
    Mar 1, 2017
    Posts:
    51
    Well that did work, unfortunaly it also complicates my project massively:) I have many things that depends on .NET 4x for example vegetation studio pro for instance.
     
    d1-favero likes this.
  41. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Sorry to hear that :/. What I can suggest though is to work on Unity 2018.2 (or 2018.1) if that is possible. I will make sure to remove that bug in the next update.
     
    Mark_01 likes this.
  42. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    642
    in working with the healer tutorial I had two problems:

    1. The heal behavior as explained in the tutorial does not function correctly, however, the heal behavior in the "finished" folder, which is more complete than the behavior we built in the tutorial, does work. Which is correct, the tutorial or the heal behavior in the "finished "folder? A working demo scene would have helped. You move on to creating the heal skill without first completing the heal behavior graph. The completed heal graph is not shown in either the video or written tutorial.

    2. The healer creates many FX heal particle "clones" on its target that do not go away. What are we supposed to do with the growing number of particle clones?
     
  43. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    Thank you for expressing the concern! The working demo scene requires third party assets that I do not have the right to distribute, so the best thing I can do is to upload the tutorials separately onto the website. I cannot tell the precise time when I will put my hands on doing that as now I am working on the new update.

    You can add a script onto the prefab that would destroy the particles if you wish :). The script can be found in the standard unity assets available for free from the Asset Store.
     
    Mark_01 and wood333 like this.
  44. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    642
    I love updates. :)
     
    eliot-ai likes this.
  45. psych77

    psych77

    Joined:
    Mar 1, 2017
    Posts:
    51
    Hi, thanks for the answer. Tried both version same issue in .NET 4
    How far off are the next update?
     
    Last edited: Apr 11, 2019
    d1-favero likes this.
  46. d1-favero

    d1-favero

    Joined:
    Oct 14, 2011
    Posts:
    9
    Waiting for the fix too. Right now the asset is broken.
     
    psych77 likes this.
  47. Craig_Green

    Craig_Green

    Joined:
    Oct 31, 2013
    Posts:
    4
    I know on your roadmap you probably already have a visual representation of the nodes that are being executed during runtime. However until that point it would be helpful to provide a capability to give some indication of where you are in the tree when troubleshooting. Would it be possible to implement a Debug InvokerNode that just writes a custom message to the console window? Perhaps this already exists. Let me know - thanks!
     
  48. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    Like i said earlier, I'm using Unity 2018.3.0f2, with NET 4.0 for VegStudioPro and have never experienced these issues. I'm not convinced this Asset is whats causing this problem for you, or at least the issue is caused by a combination of the assets you're using in your project or your PC may not have the correct dlls.
    If you use something like Microsoft Visual Studio for coding, you can reinstall/update that with all the latest dependencies for work with Unity.
    Have you tried importing the Eliot AI framework into a clean project without your other work to see if it works? If that's the case then you know there is something funny going on.
     
    eliot-ai likes this.
  49. Subliminum

    Subliminum

    Joined:
    Nov 9, 2017
    Posts:
    94
    Its pretty straight forward to add a UnityEngine.Debug.Log("x"); line to any of the nodes already available. Simply find the corresponding interface and then find the method you wish to Debug and adjust the logic accordingly.
    For example if you want to know when an enemy is spotted you could go into the StandardPerceptionCondition Interface, and either adjust the SeeEnemy method or the more complex TargetClosestEnemy to include the Debug data you're interested in.

    All the best!
     
    eliot-ai likes this.
  50. eliot-ai

    eliot-ai

    Joined:
    Oct 3, 2018
    Posts:
    144
    It is hard to tell at this point since there are some cool and juicy features planned for the update which will take time to implement for sure. Some of the features require a great deal of experiments (hopefully these will be present in the next update). I don't want to mislead by giving the wrong information, so I will say that I simply don't know at this point. My gut feeling is somewhere around a couple of months. However, as Subliminum pointed out in his comment, you don't have to wait so long to get rid of the bug because it is most likely that some dll or third party asset is causing the problem. I am using .NET 4.0 on every single project I work on and I have never experienced that bug. I would go with the Subliminum's suggestion to try and upgrade the IDE of choice. Regards.
     
    Mark_01 likes this.