Search Unity

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

Discussion in 'Assets and Asset Store' started by icetec, Aug 11, 2015.

  1. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Steven, I have no experience with MapMagic, so I don't know how ICE works with it, but in general ICECreatureControl works well with procedural worlds and doesn't required Unity's Navigation Mesh.


    By default ICE is using its internal navigation features, which are suitable to handle the navigation on open surfaces, terrains and larger rooms and to avoid obstacles such as rocks, trees, etc. Here you can see how the internal pathfinding works ...
    http://ice-technologies.de/unity/ICECreatureControl/ICECreatureControlAvoidance.html

    ... and further information you can find here ...
    http://forum.unity3d.com/threads/up...-monsters-zombies.347147/page-14#post-2635602

    In cases the internal pathfinding will be insufficient for your needs and requirements, you can combine ICE with 3rd Party Pathfinding Systems, such a Aron's A* Pathfinding Project and in the near future also with APEX Path, but you could handle the pathfinding also with your own code. Here you can find the ICECreatureAStarAdapter, which you could use with the A* Pathfinding Project or as example script for your own pathfinding extension ...
    http://www.icecreaturecontrol.com/files/adapter/ICECreatureAstarAdapter.unitypackage

    ICECreatureControl provides an adapter to support RFPSP but because of the characteristic of the original RFPSP code the adapter will not working out-of-the-box and you have to modify the original sources a bit (e.g. insert virtual modifier to allow overriding etc.). The next version of ICE comes with a new adapter which simplify these changes and I'll go also in contact with Azuline to find a better sollution.

    I hope this will be helpful to you so far and please feel free to contact me again if you have further questions ...

    Have a nice day!

    Pit
     
  2. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Nick, sounds like a strange issue. Neither ICECreatureControl nor the ICECreatureRFPSPAdapter handle the Camera, but I'll check the used RFPS base class of the adapter, maybe something goes wrong because the RFPS damage handler missing some data. However, the update coming soon and as mentioned above I'll go also in contact with Azuline to simplify the integration, so don't worry, we'll find a sollution for it!

    Have a nice day!

    Pit
     
  3. nick_dv

    nick_dv

    Joined:
    Mar 26, 2016
    Posts:
    14
    Thanks Pit, you're the man!

    /Nick
     
    icetec likes this.
  4. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Popmem, first of all many thanks for your commendatory words, it’s great to know that you enjoy the work with ICE and I’ll do my best to still improve the product step by step.

    It sounds that you are working with an obsolete version of the A* adapter, here you can find the latest release: http://www.icecreaturecontrol.com/files/adapter/ICECreatureAstarAdapter.unitypackage

    Please let me know some more details about your creature setup (e.g. used components, essential motion settings etc.) and it would be great if you could also prepare a small video which shows this behaviour. You could try to deactivate the internal body orientation, obstacle avoidance and the slope handling to identify the origin. These features are well tested and should be extremely stable, but it could be that there is a conflict between the internal steering and an external component.


    Here you can see how body orientation and slope handling works on hilly grounds.​

    I constantly try to improving all the existing features and by doing so also the usability to simplify the handling and to avoid redundant and incorrect settings. This will be also a major part of the future developments and especially the given Mecanim implementation will be improved within the next updates, because the Mecanim animation system is simply brilliant and provides so much more possibilities, which I would like to support with ICE

    The given Debug Log flag merely activates/deactivates debug messages in the console window, there is no external log file. I thought about something like this but I’m not sure that such a file with hundreds or thousands of entries will be really helpful to debug a given issue, but I’m open so please let me know how do you think about it.

    By default each behaviour (e.g. ATTACK or IDLE) have at least one behaviour rule, so it seems that behaviour and animation will be the same thing, but each behaviour mode could also have multiple behaviour rules and for each rule you could define a separate animation. This allows you to design complex behaviour pattern with dozens of variable animations and movements etc., which could be run as sorted sequence (e.g. behaviour mode : PISTOL_ATTACK with the following animation sequence : haul -> aim -> fire) or completely randomized (e.g. behaviour mode : IDLE with the following animation IDLE1, IDLE2, WALK, EAT, REST etc.)

    I’m really sorry for this, sometimes I simply forget to update the manual in time after changing the code or the wording. I’ll rework the complete manual for the next update but please feel free to contact me whenever you have a question.

    That’s a great point! In fact all ICE creature are unisex up to now but you are absolutely right that reproduction and mate competition are powerful criteria which should be included.

    The behaviour of your creature is target driven, therefore it must have at least one valid target during the runtime. The default target will be the defined home location, but also the home location could be each GameObject (or a group of GameObjects with the same name or tag) in your scene. As soon as your creature will detect a valid target it will try to reach it, so if you move a target your creature will automatically try to reach it again, as long as there is no other target with a higher relevance (e.g. a foot target, which you could define as interactor).

    If you want now a wandering creature you could define a single home location with a large random positioning range (so your creature will always get a new move position as soon as it is reaching the current one) or you can use the patrol mission with the random mode (so your creature will wandering randomized between the waypoints) or you could use a movable home location which will be moved its position (so your creature will always following the movements of this target). To realize this you could create your own script to move the target as desired or you could also define your player or anther creature as home location (so your creature will always try to reach your player or the defined creature). You see there are several ways to handle this – a target does not need to be a static element, it could be also a movable one and a target does not need to be a single element, it could be also a group of objects with the same name or tag …

    However, in any case you should define your food as interactor with an higher priority than the other targets to make sure that your creature will select the food as target as soon as it is near to it.

    I hope my answer will be helpful to you so far but as already mentioned, please feel free to contact me whenever you have a question or if you run into a problem with ICE.

    Have a nice day!

    Best wishes, Pit
     
    Last edited: May 28, 2016
    volak_ likes this.
  5. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95
    Hey @icetec , you've given me a basic explanation about the COMMAND before but it's not working. I have a Lord in my town who is escorted by his Guard. When the player in within 10m of the Lord, I want the Lord to send the 'PROTECTME' command to his Guard so the Guard can hunt and attack the player. Here's my set up:

    The Lord sensing the player:

    Selection range: 10m
    Group Message : COMMAND
    Command: 'PROTECTME'


    The Guard sensing the player


    Act# 1 - Sense

    10m distance (to the player)
    Condition: AND Creature Command IS 'PROTECTME'

    Act# 2 - Hunt

    Selection range 10m distance (to the player) - Stopping distance 2m
    Condition: AND Creature Command IS 'PROTECTME'

    Act# 3 - Attack
    Selection range 2m distance
    Condition: AND Creature Command IS 'PROTECTME'

    I tried the Condition 'Own Command' as well and no luck


    But it doesn't work....They ignore my player and keep walking....

    Why is this so complicated Pit? Can you Provide a full, clear example based on this scenario?
     
    Last edited: May 31, 2016
  6. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Jacky, don't worry - your settings are nearly correct (OwnCommand would be correct, because your guard have to check his own received messages. CreatureCommand checks the last received message of the selected target, in cases the target is a ICECreatureControl type. However, up to now the mentioned command messages only works for creatures which are in the same group, so your guard can't receive the messages of your lord character. If both characters would be in the same group (e.g. both characters using the same name) your example would be working with OwnCommand as expected.

    This limit will be removed in the new version. In v1.2. you can specify the receiver group of a command.

    The advanced selection criteria are extremly powerful but unfortunately also really complex and I'm constantly looking for the right way to simplify the handling without restrict the functionality, but it's not so easy to display all the required settings in some single lines in the inspector window. An alternative display option would be a selection tree but in this case I have to realize it in a seperate window and I never warmed to this kind of external display and prefer the embeded concept, so everything could be handled within a closed and topic-related area in the inspector view. But please let me know what do you think about, I'm absolutely open and deeply grateful for suggestions and ideas.

    Apart from that the new version will contain the requested "command" example and I'll spend the next days exclusive to finish the update.

    Have a great day!

    Best wishes, Pit
     
    Tethys and julianr like this.
  7. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95
  8. celarain

    celarain

    Joined:
    Dec 7, 2015
    Posts:
    10
    Hi there! I just bought ICE and its amazing, trying some of the multiple features, and I got a problem, I put an Stag in the scene and the interaction of sense is working fine, but then the step 2 (Escape) is not working properly, instead running far its comming to me like hunting, what I am doing wrong?
     
  9. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    859
    Thanks for taking the time to reply. I am definitely buying it!
     
  10. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Celarain, by default your creature will always try to reach the active target or rather the associated TargetMovePosition. To change this deportment in cases your create have to flee, create a new behaviour for ESCAPE and assign it to your ESCAPE interaction rule. Now open the Movement section of your ESCAPE behaviour mode (fyi: that’s the section below the Animation settings where you can define the Velocity values), change the MOVE type to ESCAPE (Move Popup) and define your desired escape movements – that’s all!

    Btw. To define realist movements needs a bit routine, so I would like to recommend you to activate the debug options to visualize all your settings. To debug the movements in-game during runtime you can also activate the Runtime-Pointer. The Path Pointer will picture the next MovePosition and the Destination Pointer the current TargetMovePosition, both are extremely helpful to test the movements in-game under realistic conditions. Note: please don’t forget to deactivate these feature before publishing your project ;)

    To learn more about targets and movements please check also these included demos:
    http://www.icecreaturecontrol.com/files/webplayer/TutorialMovableTarget.html

    http://www.icecreaturecontrol.com/files/webplayer/TutorialMoveExamples.html

    I hope that this will be helpful to you but please feel free to contact me whenever you have a question or runs into a problem with ICE.

    Have a nice day!

    Pit
     
  11. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    You are welcome! Please let us know your experience with ICE and MapMagic. If there are any issues I'm sure that we will find a way to solve it!

    Have a nice day!

    Pit
     
    julianr likes this.
  12. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    ICE and MapMagic (built in streaming) or Gaia (when supporting multiple terrains) / Terrain Composer - with a streaming solution will be much more beneficial when Unity 5.5 is out with dynamic NavMesh Support, then Open World games will be so much easier as not every AI solution out there supports A* or Apex Path.
     
  13. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95
    @icetec Hey Pit, I know you're busy releasing 1.2 but once that is done please don't forget about the Ork Framework Adapter. I'll also recommend ICE on the Ork forums once that is done so you can have a greater audience for your asset as well.
     
  14. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Jacky, I have already tested the demo of Ork and I really like it. It seems to be really complex and powerful asset and I want to go deeper in it, but regrettably I don't have the time at the moment. First I have to finish now v1.2 and the long-awaited APEX adapter. The good news is that I have already done some tests to integrate the DamageZone, though the demo contains the dll version of Ork only, so it's a little bit tricky to handle the integration, but it seems practicable and I will go in contact with @gamingislove as soon as possible to learn more about the possiblities.

    Best reagrds, Pit
     
    wood333 likes this.
  15. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Is there a built-in concept of seeking cover? I didn't see anything in the documentation, but maybe there's a way for creatures to seek cover. If not, are there plans for this in a future version?
     
  16. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Yes, of course! Some fragments of this feature are already implemented. If you are activate the advanced status settings you can use the shelter and indoor options to define protected zones by their tags. Such a zone could be a simple GameObject with the mentioned tag and an oversized Trigger collider. If you define now these objects by tag as interactor for your creatures, they can using these places (e.g. during a fight or if they are wounded) to seeking cover. On the other side you can use the advanced Selection Criteria of your attacker to prevent attacks while its target is sheltered. To realize this simply use CreatureIsSheltered or CreatureIsIndoor as additional condition. All this is already included in ICE v1.1 but it’s merely the beginning. As you might have already seen, there is a memory section within the Status settings of ICE. Your creature will use this memory in future versions to bring former interactors, locations and events etc. to mind and to use these experience for its current decisions, also I plan to implement a cloud memory, so a creature can share his experience with other characters in the game. A first step here is the existing Group Message function within the Target settings, which allows a creature to communicate with other group members. And related to your request, a creature could use this message feature to inform his fellows about a protected place. To realize this you could specify that a creature will send the message “COVER” when it was hit by a bullet, all group members will received this message and could acting according to their given target selection criteria e.g. running to the next protected zone.

    I hope my answer was helpful to you and please feel free to write me whenever you need further information, but also if you have suggestions or criticism.

    Have a great day!

    Best regards, Pit
     
    Tethys likes this.
  17. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks. That was very helpful.
     
  18. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    When about to wait for an update? the stage multiplayer to ufps? Working adapter for ufps multiplayer?
     
  19. errandfox

    errandfox

    Joined:
    Apr 22, 2015
    Posts:
    42
    Anyone know how to get mechanim animations working? Everything else is working perfectly, have no trouble with rules, behavior, conditions - can get my tigers to hunt me when they're bored or hungry, run off with gunshot noise if they're not too aggro, and wait till i'm dead before settling in to eat. Also preferring to eat the goats if they're closer. But the animations.. what on earth is the correct wrap mode?? I'm just using default mechanim controller with the animations added in, no transitions, interface is mechanim, control direct, but the wrap modes, in loop the animation plays once then stops, and default does nothing.
    If i use legacy animations and Animation component it works fine but i want to set it up in mechanim. the model imported as mechanim. What's the wrap mode people use typically it seems none of them work so i'm missing something??
     
  20. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi errandfox, while using the same animator controller and with this also the same animations for several creatures it could be that the specified wrap mode will be overwritten by another behaviour during the runtime. A suitable sollution would be to set the correct wrap mode directly in the original animation settings.

    To change the animation settings, click on your anim file in the Project View and change the wrap mode in the Inspector. In cases your animations are embedded in an imported model, select the model in the Project View and click on the animation tab in the inspector. If you are working with the Legacy system you can change the Wrap Mode directly, otherwise (if you are using Generic or Humanoid) check the bool "Loop time" under the animations list.

    By using the DIRECT mode ICE will handle the generic or humanoid animation similar to the legacy system, this required that state and motion name have to be identic. To avoid problems with this issue I would recommend you to create an empty Animator Controller and drag your desired animations on it, so you can be sure that the names will be identic.Also you don't need to create transitions, ICE will handle this according your behaviour animation settings.

    Tip: if you are not sure which wrap mode would be the right one, set at least your idle and move animations to Loop and your dead or die animation to ClampForever.

    I hope my anwser will be helpful to fix your problem but feel free to contact me whenever you have a question or runs into a problem with ICE.

    Have a great day!

    Pit
     
  21. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi alex, I have reworked the ufps adapter and also the photon adapter. The new register can handle now the spawning of your multiplayer ufps character correctly, the only issue i have is the correct damage handling but I'll fix this after finishing the main update. I hope this will be okay for you!

    Have a great day!

    Pit
     
    Tethys likes this.
  22. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95

    Thanks @icetec Pit! I appreciate it :)
     
  23. Basbo

    Basbo

    Joined:
    Oct 3, 2013
    Posts:
    11
    Hey @icetec, I'm just starting to use your great AI-package and it looks very good and promising so far!
    Some errors or misunderstandings are mandatory in this early phase, so here are mine:
    - Working on a simple human character with a patrol route, animation is driven per mecanim and dynamic forward/angular speed. The patrol route works, but during the walk to the next patrol point my creature gets repeatedly for some frames a new offset target, switching a frame later to the correct patrol target (see screenshot). This results in a flickering animation, cause forward and angular speed are changed for this short moment. How can I avoid these target switching?
    screenshot1.jpg screenshot2.jpg

    - Second I get an error with this creature: "Invalid Behaviormode" when playing, and when I try to edit the animation option of "Run" these IndexOutOfRange occurs, see screenshot. I don't know which behavior mode is the problem, and hope you have a hint for me.
    Thanks

    screenshot3.jpg
     
  24. resoft

    resoft

    Joined:
    Sep 11, 2014
    Posts:
    4
    Hi there,

    I`ve just bought the asset, and I have to say it seems to be awesome. But I have a little problem with the ufps-integration.

    I´ve tried to implement the ice creature asset into my existing project, where I use Adventure Creator, UFPS and Playmaker together.
    There I have a spider-creature, and I archieved to let her go to her lair (the home object), and then to let her run random around the home. Furthermore I assigned the player (the ufps ready advanced player-asset from the adventure creator) as an interactor, and the spider reacts on me when I m close to her, BUT I don`t get the damage handled:
    I`ve added the "Ice Creature UFPS adapter"-component to the spider, ...no effect.
    Like I ´ve red in a tutorial or in the manual: I tried to add the "ICE Creator ufps Player"-Component to my "advanced Player", but I can`t find it...
    I have no rigidbody or collider assigned to the player, just an animation-component, the ICE Creature control script, and the "ice creature ufps adapter"

    What am I doing wrong?

    Greetings, and keep up the good work!

    ps: what is the multiple damage handler
     
    Last edited: Jun 13, 2016
  25. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi BPollux, your first issue looks a bit that the random positioning range of the waypoint is active, in such a case the TargetMovePosition will be placed randomized within the defined range and accoring to their update settings, so please make sure that the 'Random Positioning Range' is adjusted to zero.

    Also you could try to reset the 'Default Move' Settings in the Essential section. Set the 'Move Segement Length' to zero, so the next move position will be always the TargetMovePosition of the active target.

    A third reason could be that your creature comes into the selection range of another target. If both targets have the same priority your creature will select one of them randomized, so increase the priority of your waypoint targets to make sure your creature will select the correct waypoint.

    This issue is easy to fix, simply make sure that a state and its defined motion will have the same name, so adapt the name of the state and this issue will be history :) btw. the next version runs a validation process to avoid this issue.

    I hope my anwser will be helpful to you but please feel free to contact me whenever you have a question or runs into a problem with ICE.

    Have a nice day!

    Pit
     
  26. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Resoft, it seems that this issue based on obsolete code fragments or you are working with an obsolete version of the ICECreatureUFPSAdapter, because the ICECreatureUFPSPlayer script is definitely obsolete, please use the ICECreaturePlayer script instead.

    You could find the latest version of the ICECreatureUFPSAdapter on the homepage ...
    http://www.icecreaturecontrol.com/icecreatureufpsadapter-ultimate-fps/

    Btw. to avoid conflicts with obsolete code fragments, I would recommend to remove your ICE installation and reinstall the latest version from the asset store again, so you can be sure that nothing goes wrong during the import.

    I hope my anwser will be helpful to fix this issue and please feel free to contact me whenever you have a question or runs into a problem with ICE.

    Have a nice day!

    Pit
     
  27. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Hello Pit!
    I decided to open up the two Avoid tutorial scenes to see how to properly set up avoidance like behavior, however I was met with some odd behavior in both scenes.
    In the first, with the green and blue triangles that are supposed to avoid the red triangle wondering around, I start the scene, and the blue, and green triangles all try to converge in the center of the scene, trying to create a dog pile of triangles.

    Then, when I go into scene view, and select the creature register, they all run away from the center, and often right into the nearby walls. A few actually seem to wander about after that, but most keep trying to move through the walls that are in their way.

    I also tried the fire avoidance scene as well. When I played that one, all the red triangles charged head long into the camp fire then turned around and run away from the fire, and the blue triangle decided to take shelter within the campfire itself, spinning around with glee.

    Not sure what broke in these scenes, but I can only assume that these are not the normal behaviors. :p
     
  28. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi TonanBora, you are absolutely right - that's not the normal behaviour ;) Please make sure that the required obstacle layer will be correctly defined in unity's layer list. You could use the wizard to set the required layer (terrain and obstacle) automatically. This should fixed this issue :)
     
    TonanBora likes this.
  29. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Ah, that was related to the issue.
    I already had the layers set up, however, the obstacles where not actually set to the correct layer.
    Now all triangles behave as they should. :p

    I also figured out how to properly set up the avoid behavior as well! :)

    Here is a short, 3 Min video of my rather meager ICE exploits.
    I figure ICE could use more videos displaying user creations:



    In this video, I created an ICE herd spawner for the block sheep, which spawned herds of 5.
    I set up the aliens to blend in with their surroundings if they where stalking prey, or detected threats or treats, until said target gets within charging distance.

    Setup my own combat system and got it working with ICE, Opsive's Third Person Controller, and Inventory Pro. Yes, I can die, but I was lucky enough to not get hit by the little green guys. :p

    Looking forward to experimenting more with ICE in the future Pit! :)
     
    Last edited: Jun 15, 2016
    wood333, icetec, Tethys and 1 other person like this.
  30. maksim720

    maksim720

    Joined:
    Dec 14, 2015
    Posts:
    1
    Hello, I made another purpose of being on the stage, but the problem is that his health is not opuskatesya whether a need to insert the adapter else being wrong or am I just doing?(TCP adapter being present at)
     
  31. celarain

    celarain

    Joined:
    Dec 7, 2015
    Posts:
    10
    Hi again! any idea why the animals I put with IA are trepassing the trees? I am puting the trees with the terrain manager.

    Thanks in advance
     
  32. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Celarian, you will see this phenomenon while using RAYCAST as ground check type and your terrain and/or other walkable areas using the same layer as your non-walkable areas. Please define ground layers for all walkable areas and make sure that your trees and other non-walkable areas will use another layer. This should fixed this issue.
     
  33. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    sometime the trees painted on the terrain have their collider disabled, it can happen when the terrain is not reset at origin 0,0,0
     
    icetec likes this.
  34. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi maksim720, could you send me screenshot with your settings of the TCP adapter, so it would be more easier to identify tis issue.
     
  35. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    Is ICE suitable for creatures in indoor settings? I could be wrong, but from what I can gather ICE is more suited to dynamic / open game spaces and terrain-based scenarios. The way it's advertised actually reminds me a little of the A-Life system in S.T.A.L.K.E.R. However, it is also the only AI system I have seen on the store that has the "creatures afraid of fire" example, which is exactly what I intended to put into my game.
    I see it is also now compatible with Opsive's Third Person Controller, another huge plus for me.
    So, would ICE be suitable for games with indoor settings?
    Also, would there be any problems with using Final IK on creatures with ICE?

    Thanks
     
    Last edited: Jun 18, 2016
  36. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    In my video above, you can see that the Aliens actually come from the building, which is their home that they wander about in while they are not hungry.

    The most difficult part about inside areas, is properly spawning them without them being inside a wall, or other obstacle, which I mostly have down now.
    If you want, I could post a little video showing them inside the building, although I might not live through it. :p

    @icetec
    Hey Pit, I have noticed that often, my creatures will be performing a movement behavior, such as RUN, WALK, or HUNT, but will not actually move. They seem to get stuck, or hung up on something and just don't move for a while. I am currently using Navmesh agents, so could it be something to do with the path finding, or the navmesh itself?

    Their forward velocity is set to a value higher than 0, typically about 3-7 depending on the behavior and animation.
     
    Last edited: Jun 18, 2016
  37. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    @TonanBora That would be great! It seems strange that more people aren't posting videos of ICE AI, another thing that sort of puts me off purchasing it. The only videos I've seen are people reporting problems (apart from the developer's own demo vids).
     
  38. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I am curious about how damage is applied to the target. Does the target creature need to be set up so that when a registered item, ax, makes contact with the target creature, the target creature takes damage. And if so, how is accidental contact prevented from causing damage.

    In other assets I use, damage dealers are placed on the weapons. The dealers are switched off until the attacker executes an attack animation, to avoid contact damage outside of combat. How is this handled in ICE?
     
  39. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    @Deckard_89
    Here is the video then:


    I just barley survived going in there. :p
    Luckily for me, a stupid/brave guard was distracting a bunch of the aliens at the back exit, and a few others came to my aid as well.

    @icetec
    This video also shows what I mean by the AI using a movement behavior, but not actually moving.
    Any alien you see not standing completely still, should be moving around, but you can see a number of them sitting there trying in vain to move across the ground, but unable to do so for some reason.

    PS: Sorry for the somewhat low quality videos. I need to invest in a better, higher quality screen capture software. :p
     
    icetec and Tethys like this.
  40. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    @TonanBora Thanks for the demo. If you killed all of the aliens in the area, would they respawn upon leaving the scene and re-entering? Is it possible to wipe them out, or would they spawn regardless? In my game the player is able to move between scenes at will - think of early Resident Evil style, so respawning enemies would really make it impossible.
     
    icetec likes this.
  41. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    @Deckard_89
    The spawn system provided by ICE has them respawn after death, and I don't think there is yet an option to turn this off.
    However, you could just hand place them if you wish, this way there would be no respawning.

    I am not using ICE's spawn system though, and am using one I created myself, which allows for one shot spawns, and spawning of herd/hord type creatures, and of course respawns.


    To be truthful though, I have yet to test what happens when loading into another scene, and if everything resets, or stays as you left it, which is something I think I will try to test in a bit, as I have a few kinks to hammer out of some of my ICE AIs. :p

    Once I test it though, i'll report back with my findings. :)
     
    icetec and Deckard_89 like this.
  42. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Could you please use black type rather than red? It is jarring.
     
    Tinjaw likes this.
  43. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Hopefully there is an option to turn them off. :) I can't imagine constant respawning. Players would feel like they never accomplished anything.

    You could add a trigger so the spawns only happen when the player character enters the area.

    So lots of things you could do but it requires coding it yourself.
     
    icetec, Deckard_89 and Jacky_Boy like this.
  44. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95
    @icetec

    #1 I have a little problem. My character is spawned using a separate spawn system and since ICE creates a 'Reference' for my player - this is a problem because at runtime, my camera focuses on the static reference object ICE creates rather than my spawned character. If I try deleting the reference object it just deletes my creature register. How can I have the player reference removed while maintaining my ICE settings so I can actually see my player character and not that reference point?

    #2 Also, I have the same issue like someone mentioned above - I'm using the navmesh agent and creatures seem to get stuck while trying to navigate. I made sure the areas around static objects have a non-walkable radius of 0.5 but they are still getting stuck. on those objects
     
    icetec likes this.
  45. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95

    @Wood333 here's my set up

    1. I have a non-kinematic rigidbody on the creature and a capsule collider around the body
    2. I have an axe that my player wields and has it tagged as 'weapon'
    3. In the environment settings, add a collision based rule for your creature (victim) and click on 'tag' (it will turn blue)
    4. Then under the 'Conditions' section, select the layer the creature is on, the tag of the axe ("weapon" in my case), and select the bodypart (of the creature). the body part is based on you adding a collider on the creature so it's necessary. It can be the entire body or, well, a body part
    5. Under the 'Procedures' section, select a behavior (a reaction to it getting in contact with your axe). I chose 'Dead' and make sure you set up your animation. And check the 'Influences' box as well and in my case I just set it to 100% because I want my axe to kill it instantly for realism. You adjust it according to your needs.
    6. Save your settings and play :)
     
    icetec and wood333 like this.
  46. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    @Deckard_89
    Well, after some testing, and research, Scenes normally do not save when you load into a new one.
    This is a Unity thing, not really an ICE thing.

    So, if you want to save a scene's state so that when a player returns to it from another scene it is just like when he/she left it, then you will need to do some coding and manipulation of scene objects.

    On another note, I have two new videos for your you guys! :)


    Here, I decided to test how well ICE dealt with masses of creatures, and target picking, as well as a new Spawner type I had created.
    I dub this, "The Battle Of Fort Prototype". :p

    The castle guards had to fight back the barbarians at the moat bridge, and successfully pushed them back to their spawn.
    This fighting could go on for as long as I ran it, as I was using my new Horde Spawner, which spawns creatures until it is full, then directs all of the creatures to a target location, then disables its spawning. After half, or more of it's creatures get killed, it begins spawning new creatures, and once the spawner becomes full again, sends these new creatures out to attack.

    Can we kill a dragon with 20 brave men?
    Guess we shall find out! :p



    Well... maybe next time...
    Here, I decided to try my hand at defining different attack behaviors based on how far the target was.
    The Dragon here, stops when it is within a distance of 7 of its chosen target, and bellows forth hot flames.
    If the target is lucky enough to survive this, and close within a distance of 5, the dragon attempts to bit the creature, which is how it killed me in the video... :(

    EDIT: Moved videos over to company YouTube channel. Videos now have nifty Annotations! :p
     
    Last edited: Jun 20, 2016
    Tethys, icetec and wood333 like this.
  47. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    @TonanBora Thanks yeah, I'll need some sort of global persistent data.
    Really great work btw!
     
  48. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    I’m so sorry but that's in fact a disgrace to me :) The current pool management of the Creature Register will handle the population of a species without a final limit. There are several posibilities to handle this issue e.g. you could increase the respawn time to slow down the recovery period of the population or you could kill the reference creature to exterminate a complete species completely or simply hide their spawn points but however, all these mentioned ways are detours to cover a lack which will be history with the next update.

    In v1.2 you can define the desired number of coexistent creatures but also the maximum limit of spawn cycles for each species.
     
  49. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Deckard, basically you could use ICE for each kind of scenario. While using ICE on terrains or rather open game spaces, you could use ICECreatureControl without additional pathfinding components, the internal pathfinding is suitable to detect and avoid obstacles, but if you want to use ICE within closed rooms or dungeons, your ICE creatures needs a bit help to find the right way. For this ICE works well together with Unity’s Navigation Mesh, Aron’s A* Pathfinding Project and in the near future also with APEX Path.
     
  50. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Jacky, a reference group merely defines a group of a specific species (in your case the player group), in which the reference object represents the archetype for all clones of this group while using the internal pool management. If you are using an external spawn system the reference object of your player could be an empty GameObject with the same name and/or tag your player will be used during the runtime.

    In any case a reference object should be a prefab and NOT a scene object. ICE allows you to use also scene objects as references to simplify the setup and adjustment process but finally you should use prefabs in order to avoid the loss of the original but also to avoid strange behaviours as above mentioned.

    Please activate ‘Show Debug’ to display the gizmos of your creature and check the given move positions. While using a ‘Random Positioning Range’ it could be that such a randomized TargetMovePosition will be outside your Navigation Mesh and therefore unreachable for your creature. In such a case simply adapt the given ‘Random Positioning Range’ so that all potential positions will be within the walkable area or activate the Deadlock options of the Essential settings to allow your creature to handle such potential deadlocks (e.g. by changing its behaviour or by generating a new position). Btw. please also make sure that all the OffMeshLink options will be deactivated for your ICE creature, the current version 1.1 can’t handle this feature automatically, but it’s already implemented in v1.2.

    I hope my answer will be helpful to you so far …

    Have a great day!

    Pit