Hello, not quite sure how many of you are going to remember my old game project “The Chronicles of Liezel”. But it’s being resurrected! The new name is “The Chronicles of Lizelle” (to make the pronunciation more obvious).
Due to the progression of the Blender game engine and a lot of other factors, most of the old resources are useless. However, we were able to scrape up and reuse a few of the assets from the old project.
At the moment, there’s not a whole lot of stuff to show off; so no point wasting time talking about the project. Time to showoff the main character’s (base) mesh!
You can find more information about the project on the official site (not much right now, besides this post and some music).
Not sure why nobody’s posted about this. Nice to see you back here again. Are you using the BGE again? Also, the model looks really solid as a base. Hope to see this evolve in the future!
I like this type of character
Yup, using the BGE. I want to see how far I can stretch the BGE with this project. Starting getting a base down for the clothes, applied a basic texture with some basic shading.
Good luck with this Killer. I hope it turns out well.
Hey guys. I got a question. The original mesh features a fully modeled face, but after a lot of thought of how to keep the traditional anime-styled facial animations, I thought it’d be a LOT easier and fluid if I did 2d facial animations (á la sprite sheet). So I figured I’d ask, how would I go about doing this?
I know how to make tiled animations (using blender’s built in tile module). But how would I make it able to choose? Such as, write a python script (I’m guessing) that has a dictionary of all the facial positions (“Idle”, “Eyes Shut”). And assign them to X,Y W,H coordinates for the UV engine. I’m just not sure how to go about writing that. Maybe that’s a completely terrible approach for this?
I’ve done UV scroll scripts before, so I’m assuming it would be similar to that, I’m just not sure how to go about applying that to a grid styled animation. Maybe I’m just a bit rusty with the BGE.
I think this can help.
TextureSwitch.blend (499 KB)
It doesn’t look like the textures are packed with that file
put this two pic in same folder as blend
Okay, I can already see this isn’t what I’m trying to do. I appreciate the help, but I’d rather do it with a sprite sheet. Is this possible, or are multiple textures the only way to achieve this? Just trying to simplify everything by not having a million files to work with. (ie: so I can create a NPC template with all the required animations, and I can change the skin color by simply changing the hue of the facial animations file. It’ll change all the frames at the same time).
Thanks for the example though, if I need to achieve multiple texture switching I’ll definitely use that as an example.
Little update here. Updated mesh to support tile-based animations. Still not sure how I’m going to attack this beast code-wise. But I greatly reduced the models polies (removed over a thousand faces). The face is now fairly flat and texture mapped.
I have the facial grid setup 4x4 on a 1024x1024 texture (256 a piece, as low as I can go. NPC’s will probably be able to get away with a lower texture resolution, but Layne will get up-close with the camera).
Finished some emotions! I’d love to hear what you guys think This character’s really starting to come together nicely! I love putting emotions into characters, you can really see them come alive.
Well, let’s look at the options.
Separate head from body and make multiple meshes, swapping them out with replaceMesh() or a Replace Mesh actuator. (Should work fine, but would be a bit difficult to make different heads, especially if you have to go back to change a detail about them).
Animate all of the faces of her face, moving their UV values to change expression (might be too slow, especially with other objects).
Separate the face from the head, make different faces that all have different expressions, and make them visible or invisible as you need them. You could also place the faces inside of the head and use bones or shape keys to ‘bring them out’. (Should work fine)
EDIT: The color of her mouth could be darker - it’s a bit too light to me right now. Also, sad looks a bit like ‘embarrassed’ to me. Try arching her eyebrows inward. Nice work so far, though.
Right now the head is a separate object, although I’m just moving the UV values to change the expressions. I guess the best solution will probably be replacing the head with a new object. Since it’s not rigged or anything (just parented to the “head” bone) shouldn’t negatively effect animations.
How are you handling animations in your 2d game? I’m guessing just using replaceMesh()?
Yeah, that’s right. I’d like to see how you get the face’s vertices so that you know which ones to move about - an easy way would probably be to use vertex colors to identify them. Then, you can loop through the vertices at game start and get a list of vertices with those colors, which would be the face.
The thing would be, I wouldn’t need to know which ones to move about? I’d loop through all the face’s vertices and displace them x amount of pixels to the right. They all need to move the same amount.
I don’t think I’ll be doing it this way, as it doesn’t seem like it would be the most efficient way to do it.
There is a way to animate the UV coordinates… isn’t there?
Yes. I’ve written numerous UV scrolling scripts. The problem is most of the time you’re scrolling on a plane. When trying to scroll UV coordinates on an object that has hundreds of points in the UV editor, it might get laggy. And seeing as this is going to be a large scale project I need to be as efficient as possible. I’ve actually gotten a pretty good system down for swapping facial textures. It’s working I’ll throw up a video demo within the next two days. I finished a dialog system, and now I’m just working on a template system for adding NPCs. I like everything to be as dynamic and recyclable as possible, that way the game gets easier to develop down the line.
Nice to hear. I’m guessing you’re using the bge.texture module to swap out the textures of characters? That would be a fine way, though the textures have to be external (I keep mine external anyway).
EDIT: Ah, wait, that’s what Bankbaa suggested. So, what method did you end up using?