Saturday, 3 May 2014

Problems and how I didn't solve them

The worst part of this project was scripting. Or perhaps the word scripting is too strong in this case. What I was really doing was replacing the files and adding little changes to them.

Trying to get the ravens appear in Cryengine took me whole day two days ago. I found a nice tutorial on YouTube which explained in detail how to do it. Basically I needed to export the mesh with bones attached to it and then export three basic animations as three separate files. I then had my .chr file and three .i_caf files. For some reason 3Ds Max doesn't convert animation files fully anymore. Apart from exporting them from your 3D software you also have to convert them again in Cryengine. So I ended up with three .caf files which made me happy because everything finally started to make sense.

Cryengine automatically made all the additional files for animations, these files specify which mesh and bones animations should refer to. Which also made sense.

The next file I had to create was a .chrparams file. It needed to be placed right next to my mesh and it contained its list of animations. Fair enough.

A .lua file. It's meant to specify my ravens' behaviour: how high it flies or whether it runs away from the player. I copied Cryengine's pigeon .lua file and changed its content to connect it to raven's files. Alright.

Entity file which purpose I do not remember now. It was short and seemed meaningless. But I created it anyway.

Up to this point I would think the boid should work just fine. I have tried many things. Exported all files several times, tried different engine builds and RC compilers. I recreated files and changed their locations. Whatever I did the birds just wouldn't work.

They do fly and they adapted pigeon's behaviour but can't seem to find their animation. At this point I can have them flying in the distance, up above. What I really wanted though is to have them triggered. It didn't even require any other scripts. Pigeons are programmed to flock on the ground where the entity is placed and then to fly away when player gets closer. My ravens have the exact same behaviour, which is great because it means I set the .lua file correctly, but they don't move their wings or legs. They behave as regular AnimObjects.

It's Saturday and the hand-in is on Tuesday. I will have another go with them today or tomorrow but I doubt I'll have them working at all.

 *   *   *

Having these many problems with raven I couldn't possibly have any time for the character. The model is completely finished. I placed the girl in engine just as a regular brush. She's sat on the chair looking quite dead with blood running from her nose. 

The dress was quite impossible to rig. I assigned its lower vertices to thigh bones, baked the posture and edited the mesh with soft selection tools. I wanted the dress to look as natural as possible.

 I want to believe I am telling a story here. 

*   *   *


I never thought adding sounds to Cryengine level would be such a pain. There is of course no problems with adding one shot sounds, like birds flying away or door opening. Wave format will do a good job in this case. Everything gets more complicated when you want to add looping AmbientSound. Cryengine uses Fmod Designer to generate their sounds. The software can be found inside Tools folder.

I needed to add a new folder alongside Cryengine's sound folders. I then created a project in Fmod and named it exactly as my folder. This would be my sounds package only accessible through engine. 

I got all my sounds from
Before importing all wave files into Fmod I needed to make sure the sounds are not too loud and they are fit for looping. For this purpose I used Adobe Audition which I thought was more friendly. Once this was done I imported everything into Fmod. Then I added two parameters, which specify how the sound behaves in engine, and ticked 'Loop Sound'. I saved and built the project. Cryengine needs to be restarted in order to detect new sound package. And that's it.

When I think about it now it seems ridiculously easy. Probably because I tried to figure it out for quite some time.

My level now has about five looping ambient sounds. I assigned them to different areas and they blend quite nicely (I think it's due to those two parameters I added in Fmod). 

My only problem now is the sound of footsteps which is annoyingly louder than anything else. I'll look it up tonight.

*   *   *

It's time for renders, turn tables and fly through. I already rendered out PNG sequences of my level and character. It now needs to be edited in Adobe After Effects. I expect it to render for hours.