while testing ICECreatureControl 1.0 with the latest Unity version, the asset importer crashed during the import and I got a failure with the lightmaps of the demos scenes.
>> A default asset was created for
>> because the asset importer crashed on it last time.
I’m not sure it’s a general problem or just a local one but in cases you’ll have this bug while installing the asset I want to announce you a simple solutions to fix it.
Before importing ICECreatureControl just deactivate the lightmaps of the demos scenes in the asset importer or delete the demo lightmaps before open your project in Unity 5.2.1 – that’s all!
It’s not a big deal but in cases unity crashed while you have open a complex scene it could be a big problem. So please be informed and careful if you reimport the asset or when you update your project to 5.2.1. I’ll also force my update work to provide you the next version as soon as possible.
- Choose your desired creature and place it somewhere in your scene.
- Make sure that the local axes of your creature are correct aligned (the forward direction of your creature should be positive z).
- Your creature should have at least two animations which are suitable for idle and move behaviour.
Note: ICECreatureControl provides both Unity animation systems, MECANIM and LEGACY as well. If you are using MECANIM make sure, that the Animator Controller is ready, otherwise simply create a new Animator Controller and add your desired Animations (btw. it’s not necessary to create transitions, ICECreatureControl will do it on-the-fly).
- Add the ICECreatureControl Component to your creature and open the inspector view of the component.
- If you have no active Creature Register in your scene click the related Button to add or activate it.
- Select the START display option to display the relevant settings only and open the Essentials foldout.
- Scroll down to the ‘Motion and Pathfinding’ settings and choose the desired ‘Ground Orientation’ and the desired Ground Check Type (btw. by using RAYCAST you should also define the ground layer).
- Make sure, that ‘Handle Gravity’ is checked and the gravity value is around 9.8.
Note: To simplify the introduction, your creature should be nearly naked – no Collider, no Rigidbody, no NavMeshAgent – so you can see and understand how ICECreatureControl works. Btw. all the named components are supported, but for the first steps the only additional component should be an Animation or Animator component filled with great animations.
- Your creature has successfully passed the physical fitness check and you can continue with the Home settings.
- Go to the ‘Home’ settings and define the home target for your creature.
- Set the selection criteria to zero, so that the home will have the lowest relevance.
- Choose the desired Target Object, which could be each reachable GameObject in your scene
- If you have currently no other objects in your scene, you could also use the terrain or the ground object as target.
- If this is done, you could adapt the offset. (e.g. Use the offset if the original target position is suboptimal and/or not reachable for your creature).
- Set the desired radius of the ‘Random Positioning Range’.
Note: If this value is zero, your creature will move to the TargetOffsetPosition and will be waiting there during the idle time (that’s okay for a guard) but if you want that your creature should do some activities during the idle time, choose a larger ‘Random Positioning Range’ and select the desired update trigger, so that your creature will get constantly new positions and it behaviour looks more natural.
- Now define the ‘StopDistance’
Note: that’s the minimum distance to the TargetMovePosition to complete the current move. Values between 2-3 working well in the most cases. The smaller the ‘StopDistance’ the more precise the move but if the ‘StopDistance’ is too small, it could be, that your creature can’t complete the move, because of its own speed and/or turn limits (btw. in such a case your creature will move circular around the TargetMovePosition, if you see it just increase the ‘StopDistance’ to fix it).
Finally you have to define the desired behaviours of your creature.
- Go to the behaviour section within the Essentials settings.
Note: You’ll see the behaviour options for ‘Rendezvous’, ‘Leisure’, ‘Travel’, ‘Dead’ and ‘Respawn’.
- Press now the AUTO Button of the ‘Leisure’ behaviour to create an empty behaviour mode, which will automatically labelled and assigned as ‘LEISURE’.
Please note, that the name of a behaviour is its unique key, which allows you to reuse a behaviour for several targets and situations.
- Press now the Edit Button to configure the LEISURE behaviour.
- Choose the required animation type and select the desired Animation and a suitable WrapMode. Speed should be 1 and the Transition Duration around 0.5 (should be the default values)
- If your selected animation represents a move (such as walk, run etc.) you have to activate the Movement options to adapt the Velocity values for Forward (z) and Angular (y).
Note: The velocity values should be suitable to your selected animation and will needed to be adapted for the best result, but for starting you could use 3 for a ‘walk’ and 6 for a ‘run’ animation and for the angular you could use the half of the forward value.
- Please make sure, that the Popups of ‘Velocity’, ‘Viewing Direction’ and ‘Move’ displays ‘DEFAULT’.
- Now you could close the behaviour editor box by pressing the Edit Button again and repeat the behaviour configuration steps for ‘Rendezvous’, ‘Travel’, ‘Dead’ and ‘Respawn’. (Btw. you can find all behaviours also listed in the Behaviour Foldout)
Congratulation, it’s done! Please save your settings and press play to see the result. If everything is correct, your creature should ‘TRAVEL’ from his origin position to the current TargetMovePosition of its home location. As soon as it inside the ‘StopDistance’, the TargetMovePosition will relocated within the ‘Random Range’ and your creature will follow according to its ‘LEISURE’ behaviour.
Dear Customers, I am pleased to announce that an update of the ICECreatureUFPSAdapter is available now. The new version allows your creature to wound the UFPS Player during a short-range attack without additional scripts and trigger, quite simply by defining the desired attack behaviour and the in-fighting range of the creature.
Additional to the ICECreatureUFPSAdapter you can find here a simple demo scene, which demonstrates how ICECreatureControl works with UFPS.
Here you can download the demo package:
Please consider that this demo requires ICECreatureControl and UFPS, so please make sure that both packages are installed before opening the demo scene file.
Btw. the character in the scene is the Earthborn Troll of Sou Chen Ki. The package is included in the demo scene but also available here: https://www.assetstore.unity3d.com/en/#!/content/13541
That’s because of the “Recreation Limit” which you can define in the Status Settings. This limit specifies the critical fitness value at which your creature is to weak for further attacks. If the Fitness value goes below this limit, the creature will stop its activities and wants to go home to recreate – by default the value is 20% but you can set this value to zero, so that your creature will fighting until it will die.
To compensate suffered damages and to recreate the full fitness you could define an idle behaviour as it is pictured in the following example. Add such a behaviour rule to the leisure activities of your creatures’ home location, so your creature can recover to be ready for its next fight, but this just as a suggestion, the settings allows you to define each kind of behaviour where ever you want, so you are absolutely free.
ICECreatureControl provides several ways to handle herds, flocks or crowds etc.
The easiest way and already part of the initial setup is to add the ICECreatureControl script to your desired character, adjust the essential settings (e.g. living zone, behaviours etc.), activate the ICECreatureRegister and define the desired population of the species.
The ICECreatureRegister handles the population while the creature or rather its clones acting autonomous, according to the defined specifications, which can be very simple but also most complex and detailed – that’s dependent on your needs and requirements.
The essential settings are absolutely suitable to implement quickly herds, flocks and crowds, such as a troop of soldiers, graze farm animals or a natural acting wildlife stock and allows your creatures to follow dynamic waypoints and process idle activities within the defined scope and if you want a wandering herd, just move the target object to the desired position or replace it with any movable object in your scene (e.g. the player or another creature) and the complete herd will follow the target.
A more elegant way is to use the Patrol and/or Escort Mission of ICECreatureControl.
The Patrol Mission represents a typical Waypoint Scenario, with static and/or dynamic waypoints. By using this mission, your herd will follow the given route, in which each creature can use a variant routing and individual kinesic behaviors, so that the crowd looks natural and will not walking uniform in one line but also this is adjustable at will.
If you want that your creatures have to follow a leader, such a pride of wolves or a squat team etc. you could use the Escort Mission. By using this mission your creature will follow and escort the specified leader according to the defined specifications.
Here I would mention, that the scripts does not directly controls a group of creatures, instead of that ICECreatureControl handles each creature as an independent, individual character, which you can easily teach to follow dynamic waypoints, process idle activities or to interact with other creatures or the environment and the ICECreatureRegister, which is part of the ICECreatureControl package, handles all the population related tasks, such as the initial spawning, the population balance (including soft-respawn) etc. furthermore the register contains several environment information, provides search functions and allows the direct and performance-friendly access to each registered creature – but this just as additional information.
Here just one example of use – a flock of sheep with your player as sheepherder. The player will assigned as the escort leader of one sheepdog, so that the sheepdog will follow him but have also an adequate scope for further activities, because the sheepdog will assigned as escort leader of the sheep. Some of your female sheep have children and will assigned as leader for their babies. In this scenario the complete cast will follow the player, according to the defined behaviours, which can consist of several behaviour rules with all relevant instructions, such as the desired animations, motions, sounds, effects and influences.
In addition to that, the behaviour can improve by adapt the Interaction and Environment Settings of ICECreatureControl, which allows a creature to interact with other GameObjects in the scene and its surrounding environment as well. The Interaction Settings provides for example the possibilities to realize hunting and fighting scenarios but also to simulate social relationships and the Environment Settings enables footstep sound, footprints or dust effects etc. furthermore ICECreatureControl provides a complex status system, which managed the physical fitness of a creature, so a creature can grow old and die of old age, can be affected by temperature, hunger or thirst, can receive damage and will die if its health value reaches zero.
ICECreatureControl handles each creature as an independent, individual character and therefore the final dynamic and the group behaviour of a herd, flock or crowd don’t need to be a linear process but is the sum of the individual characteristics of all your creature.
Finally I would mention, that the ICECreatureRegister, which is part of the ICECreatureControl package, handles all the population related tasks, such as the initial spawning, the population balance (including soft-respawn) etc. furthermore the register contains several environment information, provides search functions and allows the direct and performance-friendly access to each registered creature.
Further information you can find here
Yes, the animals can attack your UFPS Player and he can also kill the animals.
Simply open the Interaction Settings of ICECreatureControl, add your UFPS Player as Interactor and define the desired attack behaviour, so that your creature can sense, hunt and attack your Player. To hurt and kill your creature, simply add the ICECreatureUFPSAdapter in addition to ICECreatureControl to your creature and define the desired impact behaviour and the influence of the impact. That’s all!
ICECreatureUFPSAdapter is part of the ICECreatureControl package or download here the latest version: ICECreatureAdapter.unitypackage
By using Rigidbody and Collider to detect collisions, your creature will be handled as a closed, impenetrable unit, which requires sufficient space on the ground. If this free space is not given, because your creature comes in contact with other colliders the influencing forces will push your creature in a physically possible position. Depending on the physical forces and settings, such as mass, gravity or the physical material settings as well, your creature will lift off.
You can see this phenomenon predominant if have a large number of creatures in a cramped scope or a spatial constriction.
Solution: Reduce the size of the collider, to minimize the required space. If this is not directly possible, because of using a mesh collider, you could use the convex collider from the mesh as a trigger to detect impacts and an additional, adaptable collider to handle the collisions.
Please note: Basically ICECreatureControl doesn’t need a Collider or Rigidbody to handle the movement, so if visual intersections with other objects are acceptable for the gameplay (e.g. your creature is just a supporting actor and will not be in the focus of the player or you have dozens of creatures in a crowd and nobody could see details etc.) you could also remove the Rigidbody to solve this problem and if your creature also don’t need any kind of interactions you could remove the collider as well.