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 anunnaki2016, let's meet us tommorow in skype to check your issue ...

    Btw. @Alex anunnaki2016 also uses UFPS MP and ICE, so it might be beneficial for you both to be in contact. Maybe we can arrange a joint skype session.

    Have a great day!

    Pit
     
    anunnaki2016 likes this.
  2. jrackley

    jrackley

    Joined:
    Jan 26, 2017
    Posts:
    55
    Is there any news on when the next update with Invector compatibility will be available roughly? I am in desperate need of these working together and have not been able to get it figured out personally.
     
  3. yakm

    yakm

    Joined:
    Sep 12, 2014
    Posts:
    24
    Hi

    Does this work with XBOXONE and PS4?
     
  4. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi yakm, basically ICE should be compatible with both platforms and I have some customers who use ICE with Kinect and Hololens but it could be that some optional utilities as well as the included demo scenes contains incompatible elements. However, these features (e.g. ListAssemblies, GetAssemblyByTypeName etc.) are not used in the main code and could be commented out if required. In such a case, I will assist you to remove the affected elements and if you want, I can provide you also a test version of ICE to check it for your desired needs and requirements.

    Have a great day!

    Pit
     
    Ryuichi173 likes this.
  5. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi jrackley, the invector integration is ready but I'm still working to finish some other features. However, if you need the integration directly I can provide you the current ICEIntegration package.
     
    Invector, inoj and Ryuichi173 like this.
  6. jrackley

    jrackley

    Joined:
    Jan 26, 2017
    Posts:
    55
    That would be awesome how would I go about getting that integration from you, I currently own ICE,so I can give you the invoice number if needed
     
    icetec likes this.
  7. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hello jrackley, I have sent you the new ICEIntegration package via pm. Please note that this version was created already for ICE v1.4, therefore I have not tested it yet with the current release v1.3.6. However, to avoid problems, I would recommend to test the new integration package first in a new project before you import it into your current one.

    Have a great day!

    Pit
     
  8. DivineMercy

    DivineMercy

    Joined:
    Jun 28, 2016
    Posts:
    33
    Hey, I'm dealing with Dinos that eat plants and such, and the corpse is not working for when the durability hits 0 on the plants. I added in this line but it still doesn't work. Any ideas?

    Also, is there a way to have the Dino's not spawn in a glitched spot but also having overlap prevention on? Decreasing the boxes a little don't fully resolve the issue, but turning it off makes all the Dino's climb in the air and walk sideways on the terrain
     
    Last edited: Apr 16, 2017
  9. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    I'm considering using this asset for AI in my project, but I have a few questions first if you don't mind:

    1. I notice you have support for mecanim where it handles the controller itself. Is there a way to override that so I can basically receive an event that says the AI is walking forward and handle setting the animator values directly myself? That's necessary for the networking support for me.

    2. Instead of having your asset handle the damage and hit detection, is there a way to receive an event to basically say start an attack, and I'll handle the rest? Including sending any results back to the AI saying if they hit or miss. I have my own combat system for players that I want to hook the AI into.

    3. For all the properties such as health and hunger, can I set them myself based on my own current formulas, and your asset doesn't do anything except read them and do behaviors accordingly? Basically never modifying, only reading.

    4. For networking, I'm considering just disabling the appropriate ICE components at runtime if it's on a client and just having it update based on animations and position results that it receives from the server. Would something like that work?

    5. Can all the creature settings be set at runtime, such as walkable layers, swimming or land only, etc? Or can which transform gets moved be set as the parent object? How my system currently works is I have one networked object that then spawn the model as a child object. It's the parent networked object that gets moved, while the model is always at origin 0,0,0. I'd prefer to be able to just set which transform to use for positioning if possible as that seems like it'd be the better route to go.

    5. Does your pathfinding support mesh based terrains?

    6. Does your pathfinding support multiple elevations of terrain in the same scene? For example a cave system underneath the terrain.

    7. Is there any behaviors for wandering, or is it only by defining a list of waypoints?

    8. How's the performance? I intend to have ~500 AI active in a scene at a time.

    9. How do you setup interactions if your creatures won't exist in the scene on start? My creatures are dynamically spawned in at various locations. So I guess I'd need a way to assign the home location at spawn (or disable it), and be able to set their interactions without needing them in the scene. Can that work off of prefabs, or perhaps custom code for checking if it should attack or flee from this creature based on what type it is in code?
     
    Last edited: Apr 16, 2017
  10. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    +1
    I plan to try again ICE Creatures and i would like to hear if these are possible.
     
  11. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Hello Emrys!
    Yes, this is quite possible. Check out my hour long tutorial/live stream video on using ICE with mecanim:
    ICE Creature Control: Mecanim based creature

    This is also possible, although will require some coding on your part. If you have made your own combat system though, this should not be too difficult. :)

    For example:
    Battle Of Fort Prototype

    This programmer log of mine shows a prototype of our combat system seamlessly integrated with ICE.
    Our combat system is not twitch based, and is an RPG style system with attack rolls and defense rolls.
    NOTE: This video was made with the older version of ICE, but the new version is still just as easy to integrate with.

    Yes!
    You can change a creatures health and such based on your own formulas.
    Again, in our system, health and what not are based on a combination of our own stats.
    For example, larger creatures in our game have higher health levels than smaller ones.

    You can still modify these stats with ICE if you want too, but you don't HAVE too.
    You can simply have ICE determine how a creature should behave based on its stat values.

    Well, ideally you would put ICE on the object with the Animator, whether this is the model object, or parent object.
    What you could do, is disable the ICE component on the creature, spawn the model and an animator (if using one), and then re-enable ICE.

    I have used ICE with UMA, and UMA's must be generated at runtime.

    So long as you set your mesh's layer to the walkable layers for your creature, yes!

    I would imagine this to be a yes as well, although I have not tested this specific use case.
    I have had ICE creatures successfully navigate indoor and outdoor environments within the same scene, and what you describe does not sound to different.

    Now, what might pose an issue, is trying to spawn underground, but I think you can set the check height, or just implement a custom spawner for this specific use case.

    Yup!
    The default behavior is essentially just this. :)


    This depends on the complexity of the AI, the polycount of their models, and how much optimization you have already done in your scenes (such as occlusion culling for starters).
     
  12. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    1. Unless I missed something, that video looks like how to set parameters in mecanim using ICE. What I am asking is for a way for it to not do that, and manually handle that myself in my own code based on callbacks/events from ICE.

    2. Can you provide info on how that's done? In the interactions I haven't seen a way in videos/documentation for it to call a custom method instead of handling it automatically.

    3. How do you set those values? In the API documentation all I've seen methods for is what sounds like would be delta updates, instead of just setting the value as what it currently is.

    5. Ideally, I would like to just define the ICE component where the animator is, but that's dependent on whether I can tell ICE to move a different transform than the one that the animator is on.

    8. I understand that a lot of it will be based on things from my end, but what I was inquiring in specific to is what the performance would be like for 500 AI for the pathfinding, interaction checks, etc. Disregarding anything such as poly counts/etc.

    Any thoughts on number 9?
     
  13. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Interesting, so you don't want ICE to handle animations, and you don't want it to handle combat.
    What exactly do you want ICE to handle?
    I think this is the #1 question, and answering it would go a long way to me understanding your problem.

    To me, what it sounds like is that you want to use ICE as a data container/state checker (like a FSM, but without the "M").
     
  14. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    I want to use it for the pathfinding, state machine, the calculations for proximity and when to attack, and so on. I figure that could save me a decent amount of time rather than coding all that myself. I can't have it handle animations because it's a networked game, I have to do things like set state properties to sync it to the clients.
     
  15. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Ah, okay.
    You can have ICE send events based on the behavior they are running.
    These events can be sent at the end of a behavior, or at the beginning.
    You can also have the event send a single parameter, such as a String with the name of the Behavior/State, and then write your code to utilize this information.

    Almost all data of an ICE creature is accessible through scripting.
    For example, you can get the game object that is currently being targeted by the ICE Creature after receiving the Behavior/Interactor event.
     
  16. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    Alright, thanks. I think my only remaining potential concerns would be if I can set which transform is the one that gets moved, so I can set it to be its parent transform. Then 8 and 9.
     
  17. DivineMercy

    DivineMercy

    Joined:
    Jun 28, 2016
    Posts:
    33
    Could I have some assistance with my issues?

    Also another question: How can you access ICE values via script to modify for more specific things (i.e. handling things manually)?

    Video to help show: https://drive.google.com/open?id=0Bxu9uuAwtNIjOElpc2lWMXc0V3M

    Moreover, I am following Tonan's video tutorials and I'm trying to set up the prey and hunting but using body parts isn't working right. It keeps dealing damage to my creature I have it attached to and the transform doesn't stick to the body of the creature. Without using this I used events on an interactor to deal damage and my creature gets too close to the target and they both spin rapidly over and over. Any ideas?
     
    Last edited: Apr 16, 2017
  18. rasto61

    rasto61

    Joined:
    Nov 1, 2015
    Posts:
    352
    Im having trouble moving an ice creature into shooting range, looking at the player, and then following the player when the player gets out of sight. All of this happens inside a bunch of closed corridors. My problems are:
    1. when I use internal navigation then: chasing, FOV and visibility check shooting, following the player when out of sight are all working fine. The problem here is that sometimes the npc just walks out of the corridors through the wall. I have the ground handling setup to the layer on which the corridors are, and have 'allow out-of-area move' unchecked, yet the npc just sometimes walks through the wall. I have tried different settings of obstable avoidance and prevention, but without success. When using the internal navgiation, how do I make them not move through walls?
    2. when I use a navmesh agent for movement then the npcs do not move through the walls. But the creatures get in the attacking range and just stop. They do not turn to face the target correctly no matter what I do. They just stop and do not start the attacking behaviour. (For some reason the FOV and VC conditions in the interactor are not met. When I look at the npc with the player, then the conditions are met and the npcs start shooting, but they shoot in whatever direction they are facing; they wont try to face the player no matter what). When using a navmesh agent, how do I make sure they correctly face the player and start shooting when they see the player (not just when the player is looking at them) ?
     
    zenGarden likes this.
  19. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Internal navigation is primarily an obstacle avoidance system and is only conditionally suitable for navigation in narrow spaces. You can activate the Overlap Prevention and Obstacle Avoidance options so your creature can detect obstacles and avoid them. In addition, you can add a suitable Collider and Non-Kinematic Rigidbody and change the motion control type to Rigidbody, in this case ICE controls the attached Rigidbody by physical forces. You get a similar result with the use of the CharacterController. In any case you have to make sure that the target position is reachable.

    Btw. "All-out-of-area movement" allows your creature to leave a restricted area or play area, so you can use e.g. birds or fishes outside of your terrain or avoid interrupted behaviours when loading new terrain parts.

    It could be based on a small mistake within the agent handling, so the Angular Speed of the NavMeshAgent is to low. I have already fixed this and can provide you an update. But please also ensure, that you have adjusted a suitable angular speed and changed the viewing direction of your ATTACK behaviour to CENTER.

    Have a great day!

    Pit
     
  20. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    @icetec Hey Pit. Just wanted some clarification about the Invector integration that's coming in 1.4 . I am not an ICE user yet so apologies if I am asking something stupid here. Will I be able to setup an enemy AI that shoots projectiles with ICE and will the invector adapter apply the projectile damage properly ?
     
  21. lofwyre

    lofwyre

    Joined:
    Apr 19, 2007
    Posts:
    174
    Hi All

    I've got the integration with Opsive third person controller (TPC) working so that health goes down and the Ice creature eventually dies. What I'm stuck on is how to trigger an event when the creature is hit by the player sword, like a hit animation and some blood effect, etc.

    I tried attaching the IceCreatureMeleeWeapon script to the player weapon but it interfered with the opsive scipt.

    Can somebody point me in the right direction to do this?

    Cheers
     
  22. rasto61

    rasto61

    Joined:
    Nov 1, 2015
    Posts:
    352
    I got the first part working generally ok with a charactercontroller, but Id rather use a navmesh movement for higher precision. Yes, if possible could you please share the update?

    Thanks
     
  23. Twoonebe

    Twoonebe

    Joined:
    Mar 30, 2013
    Posts:
    174
    Hello icetec,

    I stand for the question ICE VS EMERALD what is the best
    choice for me

    i have some question, when comes the new update 1.4? and with what for new things are implemented ?
     
  24. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Good question :) ... both assets are great, but ultimately crucial are solely your project as well as your needs and requirements - nothing else!

    ICE is extremly complex and the given possibilities can be in fact very overwhelming, especially at the beginning but if you are willing to discover the possibilities, it will be a powerful tool to realize your goals.

    Here are some of TonanBora's great video tutorials that will help you make the first successful steps.






    And please feel free to contact me whenever you have a question and in urgent cases you can contact me also via Skype, so I’ll try to assist you in real-time.

    Have a great day!

    Pit
     
  25. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hello Lofwyr, you can enable and define the "WOUNDED" behavior, which will be used when calling the ApplyDamage method of your creature. Another solution is to add the ICECreatureMeleeWeapon script to your sword and to adapt the impact settings, here you can define the desired damage, impact forces but also effects. To avoid the mentioned interferences, just disable or remove the opsive scipt.
     
  26. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Yeap! The ICEIntergration package is using the native damage handling of the supported asset, so all ICE weapons and health values are directly compatible to the supported 3rd party asset. Player, turrets and creatures can be use the ICE weapons as well as the 3rd party weapons and also be damaged by both weapon types.
     
    evilangel89 likes this.
  27. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi DivineMercy, here you can find a small example how to manipulate a creature by a custom script. The script below moves a killed creature smooth in the sky, but it's just an example, basically you can manipulate the most settings during the runtime and you will find also several delegates which you can use to react directly to particular events.

    Code (CSharp):
    1.  
    2. using UnityEngine;
    3.  
    4. using ICE.Creatures;
    5. using ICE.Creatures.EnumTypes;
    6.  
    7. public class CreatureCustomMovementsExample : MonoBehaviour {
    8.  
    9.     private ICECreatureControl m_Controller = null;
    10.     protected ICECreatureControl AttachedCreatureController{
    11.         get{ return m_Controller = ( m_Controller == null ? GetComponent<ICECreatureControl>() : m_Controller ); }
    12.     }
    13.  
    14.     private Rigidbody m_Rigidbody = null;
    15.     protected Rigidbody AttachedRigidbody{
    16.         get{ return m_Rigidbody = ( m_Rigidbody == null ? GetComponent<Rigidbody>() : m_Rigidbody ); }
    17.     }
    18.  
    19.     private MotionControlType m_OriginalMotionControlType;
    20.     private bool m_OriginalIsKinematic = false;
    21.     private float m_Velocity = 0;
    22.        
    23.     void OnDisable()
    24.     {
    25.         // restore the original MotionControlType
    26.         if( AttachedCreatureController != null )
    27.             AttachedCreatureController.Creature.Move.MotionControl = m_OriginalMotionControlType;
    28.  
    29.         // restore the original IsKinematic value
    30.         if( AttachedRigidbody != null )
    31.             AttachedRigidbody.isKinematic = m_OriginalIsKinematic;
    32.  
    33.         // reset velocity
    34.         m_Velocity = 0;
    35.     }
    36.  
    37.     void Update () {
    38.  
    39.         if( AttachedCreatureController == null )
    40.             return;
    41.  
    42.         // check conditions
    43.         if( AttachedCreatureController.Creature.Status.IsDead || AttachedCreatureController.Creature.Status.DurabilityInPercent < 5 )
    44.         {
    45.             // optional buffer for the original MotionControlType
    46.             m_OriginalMotionControlType = AttachedCreatureController.Creature.Move.MotionControl;
    47.  
    48.             // enable custom moves
    49.             AttachedCreatureController.Creature.Move.MotionControl = MotionControlType.CUSTOM;
    50.  
    51.             // deactivate the internal gravity
    52.             AttachedCreatureController.Creature.Move.UseInternalGravity = false;
    53.  
    54.             if( AttachedRigidbody )
    55.             {
    56.                 // optional buffer for the original isKinematic value
    57.                 m_OriginalIsKinematic = AttachedRigidbody.isKinematic;
    58.  
    59.                 AttachedRigidbody.isKinematic = true;
    60.             }
    61.  
    62.             // handle your custom moves ... example ...
    63.  
    64.             m_Velocity += 0.025f;
    65.  
    66.             if( transform.position.y < 200 )
    67.                 transform.Translate( transform.up * (m_Velocity * m_Velocity) * Time.deltaTime );
    68.         }
    69.     }
    70. }
    71.  
    Btw. Here you can find the class hierarchy of ICECreatureControl v1.3.2 (I'll provide also the lates hierarchy of the whole ICE World package)
    http://www.icecreaturecontrol.com/docs/html/inherits.html

    If a creature is rotating around itself it has normally achieved the "Stopping Distance" of its last move position and need a new position or have to change its behaviour. You can stop this twisting behaviour by enable the BAN button of the "Stopping Distance", so a creature will stop as soon as it has reached the defined range. Related to the body parts, please ensure that an attached rigidbody will not be affected by physical forces and that "Allow Own Impacts" (Impact Behaviours) is disabled.

    I hope this will be helpful to you so far, but please feel free to contact me whenever you have a question or if you run into a problem with ICE and in urgent cases you can contcat me also via skype.

    Have a great day!

    Pit
     
  28. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    Thank you very much. Any idea when 1.4 will be launched because I am looking specifically at Invector integration ?
     
  29. lofwyre

    lofwyre

    Joined:
    Apr 19, 2007
    Posts:
    174
    Thanks for the assistance.

    At the moment the default ICEWorldDamageAdapter is calling
    Code (CSharp):
    1. base.Damage(_amount, _position, _force, _radius, _attacker, _target);
    Which eventually calls DamageLocal. From what I can tell it does not call ApplyDamage.

    I also cant remove the opsive code from the weapon otherwise it would break the way the TPC asset works.

    What I'm doing at the moment which appears to work ok is;

    I've added
    Code (CSharp):
    1.   private CreatureObject m_Creature = null;
    2.   public CreatureObject Creature
    3.   {
    4.     get { return m_Creature = (m_Creature == null ? gameObject.GetComponent<ICECreatureControl>().Creature : m_Creature); }
    5.   }
    Into the ICEWorldDamageAdapter class and
    Code (CSharp):
    1.   Creature.Behaviour.SetBehaviourModeByKey("WOUNDED");
    2.   gameObject.GetComponent<Rigidbody>().AddForce(_force, ForceMode.Impulse);
    before calling base.Damage().

    This works but feels a bit Hacky.

    I'd love some steps on how to do it better, I am specifically trying to make each hit from a weapon get a good reaction from the ICE creature rather than have it just stand there.

    Cheers
    Matt
     
    Ryuichi173 likes this.
  30. DivineMercy

    DivineMercy

    Joined:
    Jun 28, 2016
    Posts:
    33
    Do you have any idea as to why the spawning dinos aren't spawning in the spots they should (the select few)? I've decreased the overlap prevention box as Tonan has mentioned but that didn't fully fix the issue. Deleting the box gets rid of the issue though (but I need it).

    Thanks Pit, I will try it when possible! If I have more issues I cannot figure out I will add your skype if that is no issue to you, the work I'm doing is urgent and has a deadline (it's for my job).
     
    Last edited: Apr 21, 2017
  31. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Matt, Apply Damage is the basic damage method and the easiest way to damage a creature but if you are using the 'Impact' option of ICE weapons or body parts you can define also physical forces, which will affect the creature during a hit and in such a case an additional 'GETHIT' animation would be redundant - I thought! But you are right, it could be useful to trigger the WOUNDED behaviour also in other cases.

    Your workaround is basically okay. In order to end "hacky" movements, you can activate the "Favoured" option in the "GETHIT" behavior and set the minimum runtime for the behavior, so your creature will hold the behaviour at least for the specified time, without switching its targets or animations.

    I hope this will be helpful so far but please feel free to contact whenever you have questions or if you run into a problem with ICE and in urgent cases you can contact me also via skype (pit.vetterick).

    Have a great day!

    Pit
     
  32. lofwyre

    lofwyre

    Joined:
    Apr 19, 2007
    Posts:
    174
    Hi Pit

    Thanks for the advice, I'll give it a try and come back with the results.

    On a separate question, how would I go about extending the visibility check to include light level. I want some creatures to have poor night vision and others really good night vision. There is an asset on the unity asset store (Shadow Detector) that can handle the detection of the light source on the player, my question is how to extend ICE to use it?

    I was thinking when the creature scans the player object it could check if an attached script is present and exclude the player if he is not lit enough to see, I'd just like some advise on what would be the cleanest way to integrate an asset like this.

    Cheers
    Matt
     
    Ryuichi173 likes this.
  33. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    @icetec , Hi Pit,

    I just bought the asset. Any possibility to get an early look at the Invector adapter ? Without being able to deal damage I can't really do much with ICE right now :)
     
  34. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,216
    @icetec ,

    Just bought this asset and reading/training in.

    - Noted on your website a tab mentioned 'attributes'... but page is empty... what's that going to be? What's planned?

    - Is there support for Playmaker?

    - With TPC, any chance of further integration with abilities and attacks as well as existing support for damage giving/taking?
     
  35. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Yeap, I have already sent you a pm ...
     
  36. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Duffer123,
    many thank you for your purchase! I hope you will like the product and enjoy the work with it ...

    1. Attributes as well as missions are optional components that can be used to expand the behavior of a creature. Currently, there are only an Odour and a Target Attribute and I'll also rework and expand the programming interfaces and the corresponding basic classes, but once this work is done, the attribute and mission templates can be used to develop and provide additional skills for a creature. In this way, users can expand the behavior of their creatures even more easily with their own scripts. In this way, users can easily expand the behavior of their creatures with their own scripts. Of course, the functionality can be extended also now with own scripts, but the program interfaces and templates are intended to simplify and unify this procedure.

    2. Within the ICEIntegration folder you'll find some Action Scripts for PlayMaker.

    3.Until now all 3rd party player adapters mainly support the damage handling, but depending on the asset, there are other interesting features and possibilities that I would like to support and the inventory integration will be for sure one of the next big steps. But please bear in mind that the ICEIntergration package is only an optional and free extra to simplify the integration of third-party assets, and even though I gladly want to realize all adapter requests immediately, I have to pay attention to the core product first, so please be patient and apologize that not all requested integrations can be implemented directly.

    I hope this will be helpful to you so far but please feel free to contact me whenever you have a question or if you run into a problem with ICE and in urgent cases you can contact me also via skype.

    Have a great day!

    Pit
     
    Last edited: Apr 22, 2017
  37. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,216
    @icetec ,

    Thats excellent thanks and understood. Are you planning your own inventory system?
     
  38. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Firlefanz73,
    first of all ICE v1.4 is almost finished and I try my best to publish the update as soon as possible. In addition to that ICE supports both legancy and mecanim animations as well and works fine with procedural terrains and voxel based worlds. It could be that we have to adapt the movements of the creatures to the cubic environment, but that should not be a big deal.

    In principle, each creature could swim or fly, these are optional abilities that can be defined in the behavior and depending on your settings, your creatures will avoid holes and steep slopes. All creatures are using raycasts to perceive their surrounding environments and provided that all relevant scene objects have a collider and are assigned to a suitable layer, there should not be a problem.

    The ICE package contains optional scripts for tools and items as well as for explosives, melee- and ranged weapons, so you can equip your player as well as your creatures with a large range of weapons and items. And if you prefer to use your own or rather an external damage handling you can use the ICEIntegration package to implement the custom system.

    In addition, I would like to recommend the different video tutorials, especially the videos of TonanBora are very helpful to get a good overview. You can find some videos at the top of this page, but also on the first page of this thread.

    I hope this will be helpful so far but please feel free to contact whenever you have questions or if you run into a problem with ICE and in urgent cases you can contact me also via skype.

    Have a great day!

    Pit
     
    Firlefanz73 and julianr like this.
  39. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    ICE already contains an own inventory system, which the creatures can use to collect and distribute items but also to equip themselves, depending on the given behavior.
     
    julianr likes this.
  40. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151



    Hello! Im interested to buy this.. but I have my own creature with own animations, can I use them?

    Thanks! :)
     
  41. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    And does it work with Gaia?
     
  42. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Yeap, as long as your creatures and animations can be used in Unity 5.3 or higher, you can use ICE to bring them to life and furthermore there are also no problems with GAIA to be expected.

    In addition I would like to recommend the different video tutorials, especially the videos of TonanBora are very helpful to get a good overview. You can find some videos at the top of this page, but also on the first page of this thread.

    I hope this will be helpful so far but please feel free to contact whenever you have questions or if you run into a problem with ICE and in urgent cases you can contact me also via skype.

    Have a great day!

    Pit
     
  43. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151

    Awesome! What about ragdolls instead of animated death?
     
  44. Sorrowthief

    Sorrowthief

    Joined:
    Dec 14, 2016
    Posts:
    48
    Hey TonanBora, I was wondering if you ever got around to making the tutorial that I had talked to you about. Here is the original conversation post.https://forum.unity3d.com/threads/u...-monsters-zombies.347147/page-32#post-3001844
    Not trying to rush you or anything was just wondering if you had had any time to mess with as I still can't figure this out I would still love to have a tutorial on this.

    Again thanks for all you do, hope all is well.
     
  45. sylon

    sylon

    Joined:
    Mar 5, 2017
    Posts:
    246
    Hello ICE friends.

    I have been playing around with this wonderful asset for a couple of days now.
    There are many things about it that i really like. But i guess i should keep that for the review :)

    I did encounter some problems i couldn't figure out after endless fiddling with all settings.
    Also couldn't find any tutorials for these problems.
    So maybe someone can help me out.

    I am chasing animals in my game.
    When in a chase, there are a few things that are critical.

    1. Character never get's stuck.
    - Is there a way to use the deadlock option in such a way that my character always gets loose? I tried to make it jump by selecting my jump-behavior as deadlock action. My jump behavior has a vertical movement set, but i am not seeing it happening.
    2. Character uses terrain and obstacles as naturally as possible.
    - I can't get obstacle avoidance and water avoidance to work rock-solid. Most of the times my character avoids these things, but sometimes it decides it's ok to move over water or through a rock (when my collider is a trigger to prevent getting stuck). Are there steps i can take to absolutely prevent this?
    - How can i make my character jump over obstacles? I have seen this asked before in this thread(which is too long for convenience btw) but not answered yet. I have enabled "Allow Overcome Obstacles" And adjusted my rays, but no success so far.
    3. Character stays inside a certain area.
    - I would like my character to be chased up to a certain distance from it's home position. Then return to it.
    Is there a way i can prioritize this behavior based on the character's distance from "home"?

    I have read several remarks from users about a lack of information on this asset.
    There is a lot of information available in the form of a manual which describes all options, some video tutorials which are very helpful and this thread.
    The problem is using the right combination of settings in different scenarios.
    So maybe it's a good idea to document as many different scenarios and advice on settings as possible. (like templates)
    It is very difficult to get solid results by trial and error because of the amount of possibilities. At least that is how i feel after a few days experimenting.

    Grtz
     
  46. wmpunk

    wmpunk

    Joined:
    Sep 5, 2015
    Posts:
    71
    I'm having some trouble with the Interactor conditions, they appear to be getting ignored or sending false flags.
    I easy example is to make a interactor with two acts, set one to use a Run behavior if the TargetPositionDistance is greater or equal to 20, and the other to walk if the distance is less than 20. When you start the scene they both will become red. If you switch the order it makes no difference. Turning on dynamic offset will make one trigger but then it will always ignore the other other act. I've done this before and it used to work but doesn't seem to want to anymore. I feel like i'm missing something really stupid haha. Any suggestions?
     
  47. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Hello,

    I am just starting with Ice Creature.

    I am using a procedural voxel engine (based on uniblocks, but I have added 45° faces: https://www.assetstore.unity3d.com/en/#!/content/14768).
    All my creatures (npcs, animals and monsters) are prefabs which I spawn into my scene by random or sometimes by a rule.

    First I added a CreatureRegister to my Scene and set it like this.



    Then I deactivated all creatures except of two, a skeleton (https://www.assetstore.unity3d.com/en/#!/content/7110) and a cow (https://www.assetstore.unity3d.com/en/#!/content/5032).

    Both are prefabs in a procedural generated world, which brings me to a first question:

    How do I set the "Home" to the spawn Point, which is a random vector? Is there a property for this, I did not find something? That would be great! Or do I have to make a own script, which does set it? Monster Monsters should patrol around their spawn Point...

    Then I added the "ICE Creature Control" to both.
    Since they are prefabs and not in the Scene, I need to set everything manually? Or can I have Defaultsat least for the Environment / ground detection etc? I have nearly 100 creature prefabs...

    I deactivated my own old behaviour script. I also added the character Controller that they had before.

    I have set up like this:



    Default Behaviours are set, and it seems it has found animations under those.
    I set Ground handling to raycast and walkablesurface like in the documentation.
    Where does this WalkableSurface layer come from, do I need to link it to my chunks somehow or is this just dome by raycasting?

    The Problem: I have several cows in my inspector, but I do not see anything from those. Totally invisble.

    I do have several Skeletons, but I only see a part of those. I see the armor but not the bones very strange. And they seem to have the idle Animation but not moving anywhere...

    Any guess what I missed?

    A last one: I have between 5-25 creatures in my Scene at the same time. Sometimes the Player fights with one or two of those (sword combat, later wanna have projectiles). Until now I used a character Controller so they can walk and do not fall through the ground, and just a distance check to do fighting. For future combat and to get ICE working, should I add a rigid Body and set Motion Control to rigidbody?


    Thanks a lot! :)
     
    Last edited: Apr 24, 2017
  48. DonLoquacious

    DonLoquacious

    Joined:
    Feb 24, 2013
    Posts:
    1,667
    ICE integration with A* Pathfinding Project is sadly pretty broken, which is one of the things I bought it for. I understand there's a big ICE update being worked on currently, so I'm absolutely fine with waiting until that's done and pushed out before anyone switches gears to integrations/compatibility fixes (of course), but an eventual update for the integrations would be really greatly appreciated. I'm running 4.0.6 at the moment for A* (in Unity 5.6), but was informed that the integrations didn't work properly for quite awhile even before the big A* update that just came out.

    Once there's a version of A* and ICE that work properly together, I'm fine with freezing updates for the two (for the current Unity project) so nothing breaks that balance, but I need some initial firm footing to start with, you know.
     
    TonanBora and Ryuichi173 like this.
  49. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Hello!

    I saw in the mecanim tutorial that a plane or terrain could be generate in the creature register? it work smoothly... does it work that smooth too if I add my own terrain that I already have?

    Thank you,

    Mattis
     
  50. sohail1232

    sohail1232

    Joined:
    Apr 25, 2017
    Posts:
    1
    hey guys. can we make a game in which two ice creatures fight with each other and eat other one using ICE creature?