Strange Creatures
Dangerous monsters prowls around here…… Beware……
Yawny, The Owlwolf
Description
The Owlwolf is a fragment of a overscoped project named: “Project Chimera”, the original goal was to create 3 different creatures with body parts able to graft onto each other to form a new creature. That didn’t work out……but! I managed to model the Owlwolf, and used its body as the template, creating different creature parts, such as wolf head, eyes and featherless arm to graft onto this body!
Tools
- Unreal
- Blender
- Maya
- Zbrush
- Miro
- Photoshop
- Substance Painter








Cocky ,The Cockroach

Description
Cocky the cockroach is a AI system that does well…… cockroach stuff! Such as:
Crawl(state): Just walking around, in an S-shape trail to seem more cockroachy. They can also crawl on walls and furnitures too. The hard part is finding the angle of the surface contacted. Lots of raycasting from head to bottom, rotating the cockroach’s angle of travel along the surface of object it is sticking on.
Attack/Flee(state): Triggered by multiple different conditions, a simlar state to crawl but moves a lot quicker in a bigger s-shape!
Stare Contest(state): A state where the cockroach is too close to the player and being looked at, it will stop moving untill the player makes Big Movements.
Fly(State): When cockroaches reaches a cliff and they wish to keep going, they fly. Spreading their wings untill they land on a surface.
Eat(State): When cockroaches are not distracted by any source like light or player, they would find food and eat!
Shadow Detection(Condition): One of my most proud work, cockroaches are scared of light and loves the dark, so the cockroach would avoid areas too bright and moves to areas that are darker. To do this, I planted light probes around the map, the cockroach would grab information from the nearest few, averge and transform the data color-grayscale-brightness value, and once the brightness value is above a certain threshold, the cockroach would believe it is in a area too bright and enter Flee state. This is the way for static shadows, however, for dynamic shadows that non-static objects cast, it uses a different approch, which is simpler: Raycast to the Sun, and detect if any object of a certain layer is collided(for example, glass would be a a layer that is ignored, but player would not). If it is, it would think an object is casting shadow to it, and it would also enter Flee.
Big Movement Detection(Condition): When you make big and sudden moves near a cockroach, they get scared away. Here, they have a distance threshold, if the player is within this threshold, they would start detecting if there is any big movements: when the player moves over X distance within 0.5s, it is concidered a Big movement and cockroaches would Flee/Attack, they are very random creatures after all.
Voice detection(Condition): When a cockroach is at a certain distance to you, they start detecting microphone sound, if it is above certain level…… They would assume you are screaming and charge into your mouth.
Charge in mouth(State): They fly striaght towards your mouth(camera).

By the way I put a toon shader on this thing, hoping it would looks less disgusting? But turns out the movements and the silhouette are enough to make it look realistic enough without details on the model……
Amigo and Ninja ,The Dumb Mage and the Huge Turtle
Description
Amigo and Ninja is a Boss battle ai system I made, using a behavior tree system. Where you play as the tank, drawing the boss: Ninja’s attention, moving him to places, and blocking attacks for Amigo.
Ninja(Boss)
Ninja follows and attacks you, the tank during combat. He have a hidden energy bar, it fills up slowly during combat, once its full, he will pick one of the abilities to cast, his abilities carry a variable called Desire, Desire will charge up infinately, untill he casts this ability and resets Desire to 0, upon casting ability, Ninja would always cast the ability with the highest Desire.
Phase 1:
Ninja will chase and attack the tank player, when his ability desire is full, he would cast Charge to a DPS player.
Charge: Charge in a striaght line towards a DPS player, dealing massive damage on hit. Stop upon hitting any player or a pillar.
Phase change:
On phase change, ninja casts Rumble and upgrades his Charge.
Rumble: Deal massive damage to all players unless they are hidden behind a pillar.
Phase 2:
Ninja will now cast Rumble upon Rumble’s ability desire is full, his charge will now destroy pillars, leaving less space for players to hide behind. This is a semi-timer mechanic, if the players don’t kill Ninja in time, there will be no space to dodge abilities and very easily die to his abilities.
Amigo(Teammate Player)
Amigo will automaticlly find a spot with clear line of sight and use his ranged attack to fight the boss from afar. He has logic to try and dodge boss abilities, but are usually too late because he is a greddy caster.
Find Line of Sight Spot: Amigo can find a line of sight spot by picking a random spot closeby on the field, and raycasting to the Boss to check if that spot has line of sight. If there isn’t, try again! untill a spot with line of sight is found or he runs out of attempts. He can do this the reverse way too, to find a place where there isn’t line of sight to hide behind.
Ability Watch: Amigo will watch if Ninja is casting a ability, if he is, Amigo would run to the nearest no line of sight spot to dodge the ability.
Avoid: Amigo will try to run away when the Boss is too close, to a spot far away but have clear line of sight.
Cast: When the Boss isn’t casting anything and he is at a faraway and clear sight spot, he would stay and cast ability to fight the Boss.

