If someone is interested, this http://pastebin.com/f76da0a09 converts the current MakeHuman mesh to animesh including targets.
Was experimenting with it cause customizing your character in-game to make it look like you want or get a muscular character when your strength goes up sounds great!
Unfortunately the highpoly mesh combined with the morphtarget transformations is kinda expensive, 17fps here :/
So moving on to something else...
- put script in makehuman dir
- copy skelfrankie_rig from cs/data/frankie and put along side the generated factory file
- rename to rig
- edit rig and change in the skeleton tag name="frankie_rig" to name="rig"
- open factory in viewmesh
- start any animation, IMPORTANT without a animation running morphtargets won't be applied
- play around with the targets
A CS fix later, fps is now on an acceptable level of 90-100fps. So if someone has time to improve the conversion, UVmapping, skin texture, perhaps a way to create a lower poly version...
We went to the bar, they were reading vagina jokes from their phones, they laughed. I didn't. Only thing I thought about was setting them on fire and wonder how funny _that_ would be as a I spun a lighter between my fingers.
Sunday I was in Paris in a tavern called Oiseau on the Avenue de Clichy (near the Moulin Rouge red.) with my girlfriend discussing the topic 'Zombies are evil'. We came to the conclusion that zombies fall in three categories: natural (non-man made virus, evolution, ...), supernatural (voodoo, magic, evil(as in Evil Dead), ...) and science (like Resident Evil, monster of Frankenstein, ...).
With zombies defined as 'reanimated dead organic tissue' mummies and vampires (Interview with a vampire, not Blade style, the body has to die before turning into a vampire, where in Blade it just 'turns' the victims) also fall under it. So do reanimated people having had a cardiac arrest or other and declared clinically dead before having been resuscitated. There for zombies exist!
Anyways made some progress on CSSoC as well, made a pure java software renderer applet with a assxml (assimp xml red.) loader. Since XML is a bit big I also added support for gzipped files to be loaded. Gzip turning a 1.2MB file in 110KB so it's quite a bit lighter on your connection. The models can be limitedly controlled with the mouse, mouse button 1 allows to rotate the object and mouse button 2 zooms.
Unfortunately this blog doesn't support applets so I made a mock-up of what the asset site could look like and hosting it on my site.
On the todo there is:
Putting the ass into asset.
'Open Asset Import Library' is a library to import a wide range of 3D formats, which I'll use to expand CA's supported formats.
Assimp has some python bindings (using ctypes) but they were severly outdated. Since I hate manual labour, I decided to write a python script to convert the Assimp header files into python's ctypes compatible Structures. A few regexp tutorials later(I'm new to it) I had a 150 lines script generating a 1000 lines of bindings. All things considered updating the old bindings manually might have taken less time. However I gained a new skill (which is still satisfying for us RolePlayers: "Die you filthy troll and show me some loot and experience!!") and whenever someone non-python aware decides to change assimp all they have to do is run a script.
Now that the bindings were updated it was time to tackle some of the python boilerplate, as the material properties showed some signs of wrong/corrupted memory.
The full ctypes reference later, it turned to be as simple as "cast(p.mData, POINTER(c_float*(p.mDataLength/sizeof(c_float)) )).contents"
and a few more for each possible 'p.mType'. Oh well.
To more exciting stuff, getting all this data in CS:
Support for static meshes, materials (with shadervars) and textures. (after fiddling a bit with left and righ handedness) And now working on animation support...
Picked a mesh that's a tad more exciting than my test cube. Finally settled on 'dwarf.x'.
The mother of all world editors.
DAMN's filebackend relied on the linux specific 'inotify' to watch files and report when they got modified, added or removed.
To support other OSs I set of writing a 'generic notify' mimicing the inotify interface, so it could be used as a drop-in replacement, not having to alter the current code.
It works quite nicely now, although perhaps not that efficient (it's doing simple directory compares), but it was meant to be generic, not using any OS specific libraries/functions.
Planned for the future is a 'win notify' utilizing the ReadDirectoryChanges API, exposed via the pywin32 win32file module.
I also added the concept of 'repositories' to DAMN, allowing to add several directories or other sources (like svn) for DAMN to 'watch'. Utilising the 'Models' repositories automatically register with the UI, allowing them to be edited and en/disable by the user, aswell as adding more or removing some.
My apologies to my loyal fans, the next couple of months you won't find any insanity striken posts here, just some boring technical descriptions of my progress on CSSoC.
This year I applied to Google Summer of Code for Crystal Space to work on Crystal Architect.
(It's already getting complicated I know.)
Unfortunaly I didn't make the cut, CS specific features were chosen over my less CS specific proposal...however, since my proposal was so brilliant! *cough* the nice people at CS decided to create a 6th slot using last year's GSoC profits (2000USD).
So here I am, proud participant in the first 'Crystal Space Summer of Code', CSSoC!!