• 12
• 14
• 13
• 10
• 11
• entries
503
1888
• views
334574

# Research, blah.

112 views

Finally getting somewhere,

been doing research on how best to implement expressive motions into our primary characters.

The basic idea is to use an 'emotion' sheet, this sheet, contains 8 'emotions' each one frame long, and each with it's proper direction.

"one frame!?" I hear you say, well, we could animate everything but this would lead to some bad stuff.

'huge memory requirements'
'longer animating/rendering development times'

none of which we want =)

in this way we can display a wide range of emotions during dialogue and regular gameplay, which will likely add to the over-all realisim of the game dialogue.

here is a basic sheet layout for some basic animation

{Idle}{0}-{0}{1}{2}{3}{4}{5}{6}{7}{1}-{0}{1}{2}{3}{4}{5}{6}{7}{2}-{0}{1}{2}{3}{4}{5}{6}{7}{3}-{0}{1}{2}{3}{4}{5}{6}{7}{4}-{0}{1}{2}{3}{4}{5}{6}{7}{5}-{0}{1}{2}{3}{4}{5}{6}{7}{6}-{0}{1}{2}{3}{4}{5}{6}{7}{7}-{0}{1}{2}{3}{4}{5}{6}{7}{Move}{0}-{0}{1}{2}{3}{4}{5}{6}{7}{1}-{0}{1}{2}{3}{4}{5}{6}{7}{2}-{0}{1}{2}{3}{4}{5}{6}{7}{3}-{0}{1}{2}{3}{4}{5}{6}{7}{4}-{0}{1}{2}{3}{4}{5}{6}{7}{5}-{0}{1}{2}{3}{4}{5}{6}{7}{6}-{0}{1}{2}{3}{4}{5}{6}{7}{7}-{0}{1}{2}{3}{4}{5}{6}{7}{Talk}{0}-{0}{1}{2}{3}{4}{5}{6}{7}{1}-{0}{1}{2}{3}{4}{5}{6}{7}{2}-{0}{1}{2}{3}{4}{5}{6}{7}{3}-{0}{1}{2}{3}{4}{5}{6}{7}{4}-{0}{1}{2}{3}{4}{5}{6}{7}{5}-{0}{1}{2}{3}{4}{5}{6}{7}{6}-{0}{1}{2}{3}{4}{5}{6}{7}{7}-{0}{1}{2}{3}{4}{5}{6}{7}{Die}{0}-{0}{1}{2}{3}{4}{5}{6}{7}{Emo}{0}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{1}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{2}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{3}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{4}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{5}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{6}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}{7}-{use}{take}{anger}{fear}{disgust}{joy}{sorrow}{special}use:-arm out stretched in a 'using' motiontake:-bent on one knee, with an arm in a reaching 'take' motionanger:-eyes narrowed-brows down and slanted(anger wise)-mouth closed (teeth griting), no smile-hand clenched and partialy up or down-one leg forward, weight shift/leak forwardsfear:-eyes wide-brows up and slanted(worry wise)-mouth open, with a frown-hands up and out repelling-one leg backwards, weight shift/lean backwardsdisgust:-brows raised, slight slant(anger wise)-eye roll-mouth closed, one side slanted up-arms folded tightly-look away-one leg outwards, increasing stance, slight body twist and shoulder shrugjoy:-brows up, no slant-mouth slightly open, large smile-hands slightly up, maybe clenched (excitement)-straight and tall posture, very vibrant and energeticsorrow:-eyes open or closed-brows down and slanted(worry wise)-mouth slightly open, no smile-hands limp and hanging-slouching posture, head slightly down, averting eye contactspecial:-a single frame expression that is different for each character

as you can see, a complete 'action' is fairly costly, even after we cut down the frames substantialy (14 to 12 now to 8)

if we assume an 100x100 frame size (normaly larger), that is an 800x800 sized image (32 or 16 bpp depending on selected settings) just for a single action (such as moving), so as you can see, things tend to add up =)

Nice, I like the use of all those brackets [wink].

Aye. It helps to visualize what the final imageset will look like,

hopefully *and more likely than not*, i will use a 128x128 frame size, which will result in a 1024x1024 sized sheet, for most animations, which will be far better for most graphics hardware.

*our Direct3D adaptor tries to find the 'best' solution for storing large images with smaller textures*

so starting out with 8x8 128px images:

depending on what the hardware supports, we will probably get 4x4 256 textures(very low HW), 2x2 512 textures(better hw), or a single 1024x1024 texture(really good hw)

if I had it to do over again, I would not have chosen a strict packed format for our graphics, since it makes using 3D hardware very, VERY, hard =D