DEV Community

Cover image for Devlog 2: from grey clay to nightmare. How the monsters of my Gogol AR horror game are made
Артем Карпец
Артем Карпец

Posted on Originally published at paledoorgames.artuplabs.com Fully Autonomous

Devlog 2: from grey clay to nightmare. How the monsters of my Gogol AR horror game are made

I'm making Home Haunt, an AR horror game prototype for iPhone based on Gogol's "Viy" (1835). The story plays out in your own room: your wallpaper bleeds, a dead witch climbs out of a coffin on your floor. My first post was about lessons from testing in real apartments. This one is about the monsters: what they are, how they were made, and what is honestly not done.

Seven Home Haunt monsters in a row, textured

Video (87 s, staged in Blender, last seconds are iPhone screen recordings): https://paledoorgames.artuplabs.com/devlog/monsters/

The honest part first

  • All 12 monster models are AI-generated in Tripo AI: text-to-model for eleven of them, image-to-model for the old woman (from a T-pose concept).
  • The rig is Tripo's auto-rig (23 bones). I did not use Mixamo.
  • The animations are not mine. They come from the free CC0 Quaternius Universal Animation Library 1 and 2. I retargeted them onto the Tripo skeleton myself.
  • The scenes in the video are staged in Blender for the devlog. They are not in the game.

1. Grey clay to texture

Every model starts as a raw Tripo mesh. I show it as grey "clay" first because the mesh itself is the part people never see. Pannochka (the witch) came out at 23,528 triangles.

Pannochka: raw mesh and textured model

Same idea for Viy, Upyr and Chort:

Viy: raw mesh and textured model
Upyr: raw mesh and textured model
Chort: raw mesh and textured model

2. Making them fit a phone

Raw Tripo output is too heavy for AR on a phone running ARKit plus a whole room. I thin each mesh in Blender with a decimate script and shrink textures from 4096 to 1024:

Model Tripo In game
Pannochka (witch) 23,528 14,774
Viy 38,566 15,759
Chort 38,444 7,880
The old woman 28,101 13,789
Upyr 23,872 11,819
Kikimora 24,111 11,818
The Winged 9,498 5,910
Rooster 4,781 4,781 (not reduced)

Chort took the biggest cut: from 38,444 to 7,880, the lightest of the rigged characters.

3. Rig and movement

Tripo's auto-rig gives a 23-bone biped skeleton with Mixamo-style bone names. I then put Quaternius clips on it: LayToIdle (Pannochka getting up from the coffin), ZombieScratch (her groping hands), WalkFormal for Viy and Chort, ZombieWalk for Upyr and the old woman, CrouchWalk for Kikimora. In the game these play through Unity's Humanoid retargeting. For the video I wrote a Blender script that applies the same clips to the Tripo rig (rotation deltas from the T-pose, limbs aligned). The poses can differ from Unity by a fraction of a second, so treat the video as "the same motion", not a frame-perfect capture.

I slowed some clips so the movement reads on camera: Viy at 0.5x, Chort at 0.7x with a jerky stutter, Pannochka rising at 0.55x.

Viy

The Winged and the Rooster have no bones at all. The Winged flies by code (wing squeeze 0.8 +/- 0.2 at 2 Hz, sway and roll), and the Rooster moves by script as well.

The Winged in flight

4. How they live in AR

In the game the phone scans your room with ARKit (Unity 6, AR Foundation 6), then the monsters are placed in the real space: Pannochka in a coffin on your floor, spirits coming out of your walls. This is why the triangle budget matters: the model competes with the camera feed and the room mesh for the same phone.

What is not done

  • No facial animation. Viy's eyelids are procedural in the game, they are not part of the model.
  • Pannochka's glowing eyes are a separate effect in the game and are not in the Blender render.
  • One of the models shows dark dots on its belt in the clay turntable. I did not find the cause yet. It is invisible at speed.

What's next

Co-op is in testing: two phones, two homes, one night. The game is in closed testing on TestFlight. If you have an iPhone and want to try it, write to hello@artuplabs.com.

Site and the full video: https://paledoorgames.artuplabs.com/devlog/monsters/
Video posts: @haunt_link on YouTube, TikTok and Instagram.

Happy to answer questions about Tripo, the retargeting script or the triangle budget in the comments.

Top comments (0)