[UPDATED] ICECreatureControl v1.4.0 - creature AI for enemies, animals, monsters, zombies ...

Interesting, can I simulate not weather but elemental weaknesses? E.g. fire do more damage.
It would be interesting also to define a radius from some point, let’s say lair, to calculate weakness. It will be stronger near lair, but weaker if lured far away.
If not directly, could it be done as an extension method to your code?
Do you have an API to calculate such things, as damage modifiers etc?

1 Like

Hi icetec, your asset looks very promising.
I have a question:
Your asset is called creature control, which sounds for me a bit that it is foremost for animals and uncomplex creatures. Is it possible also to use your asset to control humans? And if yes how far is it possible to control humans with it.
Is it possible to assign specific actions to human characters, for instance:
walk to this npc, if a door is on your way - open it, when reached talk to another npc, if a certain entity come in your view attack it and when finished return to your nomal standard patrolroute.

Thanks!

1 Like

Hi montyfi,
in addition to the in the manual described possibilities I want mention that I’m currently working to improve the internal path-finding system. The demo below shows the new integrated obstacle avoidance, which works without any additional components and will be already included in the next version.

http://ice-technologies.de/unity/ICECreatureControl/ICECreatureControlAvoidance.html

The blue creatures doing some idle activities by using individual dynamic waypoints around their home location, but will flew from the red one if it is visible and/or perceptible within the specified range. The red one just follow a dynamic waypoint route, ignores the blue ones as interactor but will try to avoid collisions with them.

I’m sorry but I don’t have experience with the named AI and so I can’t say something about the differences, but I’m working with UniStorm and know the excellent work of BHS and therefore I like to mention a similarity - in both cases you’ll get a high quality product and I would never claim that one product is better than another, that’s dependent on individual needs and requirements.

Concerning this matter many thanks to Taila and all the other community member for their objective and constructive reviews.

If you have any further questions please feel free to contact me!

Kind regrads, Pit

3 Likes

Yes, there are different ways to realize this … for example you could define a fire objects as interactor, by doing this you can specify several rules how the creature have to react to it but you could also solve this task by using the environment settings of ICECreatureControl, here you can define how your creature have to react to specific collisions (tag or layer) or as already mentioned to specified surfaces. All this works without additional code, just by adapt the given settings, but if you want you can modify such values also by your own scripts … to add the damage for example: GetComponent().Creature.Status.AddDamage( 0.3f );

Please see also the former posts about the Advanced Status Settings …


Here you can see an example how to define the influence of fire to your creature by using the environment settings of ICECreatureControl

1 Like

Monty,
I bought Animal AI and used it for a couple weeks and really liked it. Full disclosure though; my main goal was to get the AI working with UFPS. I tried and tried with Animal AI, but was unable to get it working consistently well with UFPS. That is not to say that it isn’t possible, just that I gave it a concerted honest effort and couldn’t get it to work.

My brief experience with using both tools only allows me to make a cursory comparison:

Animal AI is extremely easy to learn and to use. You can get it working much faster than with ICE. The Animal AI is more simple and almost self-explanatory. One you understand how to use it, it really is just a few mouse clicks and you are up and running!

ICE took me much more time to get understand even a basic setup. It is more complicated both to learn and to use because it offers so much more control (I am still discovering features). The interface had me baffled for a while, but now I get it and it makes a lot of sense, but it does come with a learning curve. ICE has much more detailed documentation, and comes with a demo that was gold for me in terms of understanding it. It could benefit from a “Quick Start” guide for setting up the Essentials, which are the basic settings for getting the AI working.

I have decided to go with ICE over Emerald Animal AI. My initial reasons are due to its compatibility with UFPS, but now that I have been using it I like that I have so many options. I don’t think you can go wrong with either. If you like simplicity you will appreciate Emerald Animal AI more; if you like to have greater control then you will like ICE more.

4 Likes

Hi Hormic,
ICECreatureControl is made to works with each kind of life-forms: biped, quadruped, crawler and future versions will also support avian species and fishes as well. ICECreatureControl works with legacy animations but also with mecanim, at which you can choose several technics how ICECreatureControl will steering the AnimatorController, furthermore the control supports Unity’s Navigation Mesh, Rigidbody, Collider etc. but can be also used without any external components. Apart from that ICECreatureControl handles each creature as an independent, individual character and provides countless possibilities also to steering human or humanoid characters, such as zombies, androids etc.

The behaviour philosophy of ICECreatureControl is target-oriented (read also chapter 2.4 of the manual – Philosophy and also chapter 3 – Three Things You Need To Know) … simplified summarized: as soon as your creature will get a target (which can be each static or movable GameObject in the scene) it will start traveling to have a rendezvous with it, if this is done the creature will execute the defined leisure activities until it will received a new target. ICECreatureControl can handle several targets at the same time, in which the target with the highest priority will be focused.

1. walk to this npc

  • define the desired NPC as interactor

2. if a door is on your way - open it

  • create your desired door opener script and add it to an empty gameobject – this will be the key for the door.
  • create a new behaviour for your creature and name it OPEN_DOOR
  • define the desired behaviour settings, such as animation, movements, etc.
  • and assign your prepared key as effect to the behaviour.
  • Open the environment settings of ICECreatureControl, add a new collision rule define the door trigger (tag or layer) and assign the prepared OPEN_DOOR behaviour to this collision rule.

3. when reached talk to another npc

  • create a new behaviour for your creature and name it TALK
  • create your desired talk script, add it to an empty gameobject – this script should handle your dialog system and assign it as effect to the TALK behaviour rule.
  • add and define an additional interactor rule for the NPC and assign the TALK behaviour.

4. if a certain entity come in your view attack it

  • add and adapt your desired aggressor as a further interactor, but with a higher priority than the NPC and define the interaction behaviour as desired.

5. when finished return to your normal standard patrolroute

  • open the mission settings of ICECreatureControl and define your desired waypoint route. Make sure that the single waypoint will have a lower priority than the NPC and the aggressor, as soon as the NPC and aggressor are no longer in the focus of your creature, your creature will continue its patrol.

All of this is already available in the current version …

here the included tutorial scene …
http://www.ice-technologies.de/unity/ICECreatureControl/ICECreatureControlTutorial.html

and here also the link to the documentation …
http://www.ice-technologies.de/unity/ICECreatureControl/ICECreatureControlManual.pdf

If you have further questions, please feel free to contact me!

Best regards, Pit

1 Like

That documentation is superb! Good support like this is so important because it can save us so much time. I’ve wasted over two weeks trying to get UFPS to work on Emerald (and it still doesn’t work); wish I’d seen your asset earlier :frowning:

2 Likes

hi jonfinlay,
thanks a lot … in addition here some links for your first steps …

UFPS Demo scene and the latest version of the UFPS adapter
http://forum.unity3d.com/threads/released-icecreaturecontrol-creature-ai-for-enemies-animals-monsters-zombies.347147/#post-2279689

ICECreatureControl Homepage (here you can find further information, such as the FAQs, and step-by-step you will find here also further tutorials and demo scenes but currently my focus is to finish the next update, so I’m sorry that the homepage is not so feature-rich at the moment as the ICECreatureControl package.)
http://www.icecreaturecontrol.com/

ICECreatureControl Bug Tracker
http://www.ice-technologies.de/mantis/login_page.php

If you have any further questions, problems or sugestions please feel free to contact me!

Have a nice day, Pit

Thank you for your extensive Reply. Bought it now, hopefully i have time next week to check it out. :slight_smile:

1 Like

We purchased ICE as well and so far my programmer that is playing with it loves it. He says he believes it will be a very powerful tool once he takes the time to figure it all out. :slight_smile:

I did not see the tutorials on the website, btw. It was blank when I clicked on Tutorials. Are they somewhere else?

1 Like

Thanks a lot to all of you! It is a pleasure and a great honour to me if my product works well for the community and I will do my best, that everybody will enjoy the work with it to realize its own ideas and projects. I’m sorry that I can’t provide more tutorial at the moment but the icecreaturecontrol.com website is brand-new and I have to add all the content step-by-step, because I’m working alone and beside of all the tasks which I know that I have to do, I’m focused to improve the software. But I also know, that it’s really costly in terms of time to get into such a complex product and that demo scenes, videos and tutorial would be extremely helpful to simplify this process, therefore please contact me whenever you have a problem or an unsolved question will hold your project up, I’ll try to answer all your questions as soon as possible and in urgent or complex cases I’ll support you also in real time via Skype and/or TeamViewer if you want.

@Teila : an introductory tutorial can be found in the included documentation (chapter 4 – First Steps) and two demo scenes are also included in the package. Further examples and tutorials will coming step-by-step, but you can already find some helpful answers in the FAQs, which will be permanently extended based on the issues of incoming questions and support requests. And if your programmer have a specific problem, question or suggestion, please really feel free to contact me.

Have a nice day, Pit

Thank you so much, Pit. :slight_smile: It is a big job for one person.

I actually prefer the written documents so that will be a big help. My programmer likes videos though but he will survive with the written stuff. The FAQs is great.

If he needs help, we will probably ask for your Skype name as that is very helpful. Thanks so much for the great support.

1 Like

Hi all,
here some demo scenes which could be interesting to you …

http://www.ice-technologies.de/unity/ICECreatureControl/ICECreatureControlAvoidance.html
The blue creatures doing some idle activities by using individual dynamic waypoints around their home location, but will flew from the red one if it is visible and/or perceptible within the specified range. The red one just follow a dynamic waypoint route, ignores the blue ones as interactor but will try to avoid collisions with them.

http://www.ice-technologies.de/unity/ICECreatureControl/ICECreatureControlFireShieldDemo.html
The red predators want attack the blue prey creature but they are deeply afraid of the camp fire. You can switch off the campfire to see how the prey can handle such a dangerous threat alone.

And in addition you can find here an older demo scene, which demonstrates how ICECreatureControl works with UFPS.
http://ice-technologies.de/unity/ICECreatureControl/ICECreatureAdapterWebDemo.html

Here you can download the demo package:
http://www.ice-technologies.de/unit...apter/ICECreatureUFPSAdapterDemo.unitypackage

Please consider that this demo requires ICECreatureControl and UFPS, so please make sure that both packages are installed before opening the demo scene file.

All introduced demo scenes will be also included in the next update. News and further information you could also find on the ICECreatureControl homepage: http://www.icecreaturecontrol.com/?page_id=83

Have a nice day!

Pit

1 Like

Hey Pitt,

I purchased your fantastic AI framework a few days back after researching it against Emerald AI. I’m building a prototype for a hunting game and I really wanted to get a realistic feel which I’m sure I’ll be able to achieve with ICE Creature Control. There’s just one problem, I can’t seem to get the animal AI to work properly. All I’m trying to do is to get the creature to go through a simple walk/idle cycle. I’ve poured through your documentation multiple times, I’ve read the posts in this forum, I’ve read the FAQ & tutorials on your site I’ve even tried to copy the setup of the UFPS Adapter demo scene but nothing works. All I’ve been able to do is to make my creature pick a direction and run in that one direction until it runs off the map (It’s always the same direction too).

But no matter what I try I can’t seem to figure this thing out. I guess the part that has me most confused is what logic is used for the behaviours. I’ve tried to use the influences to affect the behaviour choices but it hasn’t worked. Right now my creature just picks the first in the behaviour list and doesn’t transition to any other behaviour, ever. What makes a creature transition between behaviours?

Hi CunningGrayFox,
I’m currently out of my office but I’ll contact you again within the next 12 hours, as soon as I’m back. I’m sure we will solve this problem quickly …

As a first tip, please check the angular velocity of your behaviour movements …

… this sounds that the angular velocity is adjusted to zero, so that your creature can’t change the direction. Please check the movement settings of your behaviour rules and adapt the angular velocity - a good value would be the half of the given forward velocity …

But this just a first tip, independent of this, I’ll contact you asap again …

Cu soon, pit

hi i picked up this package so far it seems pretty cool, i appreciated how simple it was to get some basic motion with animations with just a few drag and drops.

i’m having some problems, however, with the pathfinding when i’m using a NavMeshAgent. it seems to work somewhat inconsistently, i haven’t really been able to identify the exact cases. i think all the stuff is setup in my scene correctly (navmeshagent ticked in ICE, the component is added to my guy, and navmesh is baked)

here is the first example of the issue. in this one he reaches the first waypoint and then attempts to walk striaght through the house there even though the path is being calculated around it.

in this second example it is the same scene i just moved the waypoints a bit. you can see that he correctly pathfinds around the house on the way to the first waypoint, but after reaching it, seems like it never recalculates the path and instead tries to route him sort of at the edge of the house where he gets stuck for some reason.

i am pretty new to unity, so i think it’s quite possible that i missed something important or maybe have some settings with the agent or mesh messed up but i dunno the navmesh looks like it is supposed to i think. …i tried using bigger and smaller radii on teh agent and on the baking but it didn’t really make a consistent difference…i’m not really sure if maybe the other settings on the navmeshagent component need to be adjusted or something…any ideas would be welcome!
cheers
-andy crosby

Hi andy,
this could be a problem with Off Mesh Links. Please try to deactivate the ‘Auto Traverse Off Mesh Link’ of your NavMeshAgent and in addtion the ‘Generate OffMeshLinks’ in the terrain/ground navigation settings and bake the navmesh again.

cheers, pit

hi pit thanks for the quick reply. i removed that setting from the agent, terrain and buildings and re-baked. seems like it gets a bit further but still acts a little weird. in this case you can see him path around the house but sort of stop halfway although now it looks like it is calculating a path there. if i move the waypoint a bit to the left, when he tries to path the other way around the house, it gets partway but then also seems to fixate on the waypoint direction, it does look like it recalcs the path out and around though, he just doesn’t want to turn there. the speed for my WP_TRAVEL is set at 1.5 and the angular is 45 could it be a problem with those values? i originally had 25 for angular but it didn’t seem to change things. the other navagent values are all at the default other than the radius and height which i adjusted to fit around the model.

thanks for your help!
cheers
-andy crosby

1 Like

Hi andy,
the speed looks okay but please open the essential settings and set ‘Move Segment Lenght’ to zero or to its max value. The ‘Move Segment Lenght’ defines the segmentation of the path, which can be used to make small course corrections to diversify the move (e.g. drunken sailor or a rabbit which will run in a zigzag course etc.). Your creature will try to reach the end of such a segment, which is specified by the Stopping Distance but in the given case the creature can’t reach it, because the segment end incl. the Stopping Distance are outside of the navmesh (you can see this in your last video, the circle in front of your creature marks the current Stopping Distance and accordingly the end of the current move segment and you can see in 0:17-0:18 how the segment leave the navmesh area). But don’t worry, there are several solutions to fix this. As already mentioned you can adjust the ‘Move Segment Lenght’ to zero, in this case the path will have only one segment, or you could increase the Stopping Distance, so that a part of the gizmo circle will overlap the navmesh area and will be reachable to your creature, furthermore you could define also a further waypoint, so that the default course will not crossing the building, but first try to adjust the ‘Move Segment Lenght’ to zero, this should work in your case.

Have a nice day!

Pit

P.S. in addition you can activate the deadlock handling with the UPDATE action, so your creature can realize that it is in a dead-end and can update its path.

thanks pit!!
that solved the problem. i did not realize that it could place a segment into an area that was not reachable, it might be cool to add an option to check for that for cases where you want longer segments with the variance for drunky walks and so forth, mainly though i didn’t really understand how that works in general… maybe you could elaborate on that a bit next time you are refining the documentation. for my purpose it really works fine though set at zero! i also increased my stopping range substantially to around 5…that seemed high since my agent radius is 0.2 but i guess maybe scaling is affecting it somehow? increasing that for the waypoints which helped a lot with multiple agents reaching the same point and keeping them from hitting the deadlock state. it might be handy if there is a way to modify the distance for multiple waypoints or set them to use a global value, after i ‘refresh’ them they all reset to 2.

here’s how it looks with the 0 segment length. adding more intermediate waypoints wasn’t really an option since i was mainly using random ones for the patrol and i’m hoping to dynamically add those once i get a bit deeper into the how the pieces all fit together.

thanks and cheers,
-andy crosby

1 Like