Made a B3D Loader

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

EDIT: Probably this is one of the most important docs, 2.42a api:
http://www.blender3d.org/documentation/ ... index.html

WOOAH.

One of the biggest things on irlicht and Blender lately.. :o

Ok.

Ask whatever.

I have some knowledge of Blender. And to hwat is char anims, mostly :)
No knowledge of the actions or NLA editor, as never needed it. Only some minimal stuff on how to bake, etc.

But yup, the way md5 exports is the freaking best :)
It uses something called POSE module, or POSE mode, in code. It that way doesnt need then for the artist to bake all keyframes as keys, thanks to this recent code adition. And the result in md5 viewers is superb. I'd love if Der_ton, elysiun's nick, could help u here, he's the author of that great md5 plugin. He used as base some other exporter, maybe cal3d, or some other format. But he's in pretty deep knwoledge of it all, besides a really helpful person.

That'd absolutely would rock in irrlicht. (but in general, blitz3d users,etc)
In irrlciht, you would be providing both a lightmapped and character animation format at a time! :) And as I said, Blender is great now for character anims, and free.

the *.blend format is a dump, not very useful for stuff, am told.

ok, is "POSE MODULE"
As Pose mode is actually the mode in which the artist goes posig the character armature.

Afe found a fantastic character animation tuitorial, which actually seem not leave anything in the drawer, of what I consider important...

besides another mountain of tuts also in faq and tools forum stickies, but I say in case you want extra info, as I will try to answer questions you have here of Blender handling.

Afe is also already experienced, as well as dhenton, electron, and many others.

Stuff for coding in Blender
blender coding forum section
http://blender.org/forum/viewforum.php? ... ccdb8fe3d1

2.41 api
http://blender.org/forum/viewtopic.php?t=5358

python section, apis here too.
http://blender.org/forum/viewforum.php? ... ccdb8fe3d1

info also here in documentation forum section:
http://blender.org/forum/viewforum.php? ... ccdb8fe3d1

Blender user doumentation
Python scripting documentation
Game Engine documentation
Developer documentation
http://www.blender3d.org/cms/Documentation.628.0.html

latest oficial, recommended imo, 2.42a :
http://www.blender3d.org/cms/Download.13.0.html

Guides and standard, blender coding, etc (ie, blender file reading,coder tuts, ..)
http://www.blender3d.org/cms/Guides___S ... .87.0.html

oficial development section, there's a modules subsection there among many things(oh, well, is just the names of the developers..) :
http://www.blender3d.org/cms/Development.81.0.html

probably this is very useful , the newest api docs:
http://www.blender3d.org/documentation/ ... index.html (online)
http://www.blender.org/documentation/bl ... .42.tar.gz (winzip opens it)

maybe,only maybe, this is the Pose Module doc :
http://www.blender3d.org/documentation/ ... odule.html

Surely thiswiki also
http://mediawiki.blender.org/index.php/ ... s/Notes242

a graphics loaded quick explanation of generally how it all works, seems for a coder to first have a clear overview of it(beware! probably outdated...Blender 2.42a is the one to go! ):
http://www.blender.org/cms/How_Armature ... 634.0.html

stuff about python scripting
http://www.blender.org/cms/Python_Scripting.763.0.html

Latest md5 exporter (the man even made a Bledner importer!) here:

"Another update, for Blender2.41:
http://home.tiscali.de/der_ton/blender2md5.rar
-Works with 2.41 only (or newer maybe)
-is a bit faster
-uses Blender241's new Pose-module (enables export of ik or other constraints without baking to IPO animations. If the artist knows how to use this, it can be really helpful I think)"

taken from the doom3world thread:
http://doom3world.org/phpbb2/viewtopic. ... sc&start=0

Something basic to start with Python in blender I think :
http://feeblemind.tuxfamily.org/dotclea ... or-blender

Beware you dont need to know all stuff in blender...surely how to export uv maped models with textures, with skin weights, pose module, keyframes...Surely not much more, dunno.
But you sem to find easy what others found very hard, stuff harder than this, so I wouldnt be worried :)

Blender basics and interface user forum
http://blenderartists.org/forum/forumdisplay.php?f=13

pyhton's forum ar blenderartist(old elysiun)
http://blenderartists.org/forum/forumdisplay.php?f=11

a real case of using pose module I think:
http://blenderartists.org/forum/showthread.php?t=76312

a pose handling script
http://blenderartists.org/forum/showthread.php?t=73317
http://blenderartists.org/forum/showthr ... 317&page=2
(usnure which page has the latest)

more
http://members.iinet.net.au/%7Ecpbarton ... ml#options




[ WOW bout the SOC project (BlenderScuplt, great for parallax maps)
http://www.blendernation.com/wp-content ... pthead.jpg 800,000 polies... ]
Finally making games again!
http://www.konekogames.com
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

Vermeer:


Wow, thanks for the info, I’ll look thought that, very helpful



By way,

I just got textures to work,


Image
Another .blend mesh I found exported to .b3d with textures


It was pretty tricky as blender’s UV texture coordinates are set each face not each vertex.
juliusctw
Posts: 392
Joined: Fri Apr 21, 2006 6:56 am
Contact:

oh my god

Post by juliusctw »

oh my god

Luke , i have to say you are like a machine, this is absolutely amazing, when are you releasing the python script for the exporter??
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

juliusctw:

Thanks,

I try and release it soon,

But I’d like to fix some problems with scaled meshes, texture paths and write the animation export part first, I can release it now if you want but even the static part is not fully completed, so it would not be much use.


Update:
A .3ds imported into blender then exported to .b3d
Image

Edit:

By the way, if you got any .blend files I could test, it would be very helpful, importing other meshes files into blender is a pain and doesn’t full test the exporter.
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

I don't think there's a need of releasing (i know julius has been having probs with formats and is seing your solution as a neck saver [which probably is ;) ])

But releasing in the mid of it takes time and checks...And what we're all eager of is of the character animation b3d ouput, actually ;)

[as static mesh formats can be loaded one way or the other in irrlicht... animated meshes too, but many users have strong probs, I think your b3d workflow is going to be fantastic -already is in the part done before- ]


About your question...I never model in Blender: I model in other modelers of my preference, import in Blender(as obj, etc), rig and animate, and then export or render.

What i have here is a sample mesh sooner or later you may need...is a subdivided cilinder, sort of rigged worm which I used for testing other weights plugins. It's animated with constraints for leaving "feet" glued to floor, and other constraints. Md5 exporter uses pose module in code, so, I just hit the button.While x exporter requires me of baking the whole thing into a baked action, or simply go manually adding keyframes every where some bone changed (in that frame I keyframe all bones)

In theory, imported models must be just the same than blender made models... What do you specifically refer to?
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

Hello again,

http://www.filesend.net/download.php?f= ... f519092898

Here I uploaded you the worm i made for my md5 export tests with constraints... Tho there's an action.baked, unless I have done something wrong, no baked bone actions here.... as md5 exporter eats well the constraints and all.

Indeed, you will see a 3d window (often these plugins will need a 3d windo active, it's been a bug on several weights and bones plugins in blender, beware, it will happen to your exporter also, but is not your code problem) , a text window (the text editor window Blender has for the python scripts, you know) with the md5 plugin loaded. So you also can have a look at its code, possibly.

And also a window there were i do put you in the NLA timeline. You can see the anim just click-dragging with rmb (depending on how you configured your mous in prefs, can be left mouse button instead..) over the timeline window... can move it to see how it goes...can also play, by clicking over the 3d window, and hitting alt+a.That's play animation.
You can even render it, but the camera is not well positioned.Is just a dirty test sample.

delete the floor if is not ok for your purpose several meshes, or meshes with no armature. is just a visual ref.

All this is for when you reach the step of character animation,as for now you seem to be dealing with plain mesh features like smoothing, triangles, uvs and textures.
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

Look

ogre exporter seem to also deal with the Pose module. With its pose sampler feature.

doc where it says
http://ogre.cvs.sourceforge.net/*checko ... index.html

python script itself
http://ogre.cvs.sourceforge.net/ogre/og ... derExport/
Finally making games again!
http://www.konekogames.com
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

Vermeer:

Well, having different .blend files just helps me to test the export better,

E.g. meshes can have no materials but have its faces linked to an image, so my exporter has to write an extra material in the b3d file to link the faces to that texture.

There are probably heaps of things like this in blender that I cannot test out by just importing meshes.


Thanks for that worm animation, very helpful, I’m getting into the animation side as soon as I fix these last few bugs with static meshes.


Thanks for the link to the ogre exporter it has similar code to the md5 exporter and looks pretty complete, I all ready found some code from it that will help me.
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

btw, it's gonna be really often that ppl model somewhere else, and import the mesh into Blender to animate...

forget about subdivision mode, that's of no use for games...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

sory, crossposting, didnt read your latest thread...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

I see...

actually, happens some plugins eat well in one way, some in another...


To me is a bit weird that in blender you can asign textures in the UV image editor as well as in texture slots of Material tab....

But yup, sometimes for certain plugin, one needs to set the image plainly at the uv image editing window, sometimes in the material window, sometimes in both...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

ok, if u feel brave enough...

and have a good dsl connection..

beware game coders rarely are gonna use characters of more than 10k tris, usually is 2500 for an indy game engine, so...

As usual blender ppl are targeting more to very hi res rendering.

http://blenderartists.org/forum/showthread.php?t=73612

There, donwload a zip file with textures, in the first post. 15 MB, a whole office...at least one object there wih uv textures...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

some quite nice samples for your tests (as all these links, surely you cannot use it for other stuff than learning or tests, but so in this case is ok. If wanna distribute them or build some model over them, check with author...) ...not so over complex, probably better for your tests, yet...tho he calls em "lowpoly" several there arent really low poly...

http://www.unbruco.it/offcircle/risorse_en.html


many stuff of blender users is too much near to the blender interface and has too many stuff that many engines wont eat. Before crashing your head against a wall, tell us here if problems arises, as stuff like unwelded vertices, multiple meshes, meshes in subdivided mode , modifiers applied and not baked, etc, can in some few cases bring some problem. I'd like to avoid yo those :)
Finally making games again!
http://www.konekogames.com
juliusctw
Posts: 392
Joined: Fri Apr 21, 2006 6:56 am
Contact:

code example question

Post by juliusctw »

hello luke

i read your Dwarf holding a pistol example, i understood the code fine, but i have several questions relating to the b3d format


node->setTransitionTime(0);
I couldn't find setTransitionTime anywhere in the source or your example, what does it do to the mesh?


node->setFrameLoop(368*100, 368*100+2);
How do you find out which frame number corresponds with which action? Or you just have to load it into blender and check it out yourself??


joint_spine2->setRotation(vector3df(pitch*0.5-(shootAnimTimer*10),yaw*0.5,0));
when you setRotation, how do you know where the axis of rotation is?


Sorry to ask so many question, i guess i just don't understand much about the b3d format in general, it would probably help alot for me as well as other non-b3d users to maybe read about it first, any suggested readings??

thanx
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

Vermeer:

Wow that first mesh is very high poly, I don’t think blitz3D or Irrlicht can load meshes that high poly. I tried load the exported b3d mesh in unwrap but I gave up after 10 minutes of it loading....

I found that other site with the ‘low’ poly meshes before they seem to export fine, but they are pretty simple meshes.


Juliusctw:

You don't need to know any of this to use b3d its just some extra features I'm making, you can use b3d meshes just like x meshes, and with the latest SVN you can make the Dwarf hold a pistol the same as a .x mesh


First you cannot use any of this unless you apply the patch included in the example, and so far it’s only for b3d meshes.

Probably seems trickly but:

When you load the mesh, call node->animationOnRender(2); which stops the nodes being updated on render, only the skin will be updated

Then call node->updateAnimtion(); before rendering the mesh which will animate the nodes

Then in-between node->updateAnimtion(); and smgr->drawAll(); you can move/rotate any joint you got from node->getB3DJointNode("name");
I couldn't find setTransitionTime anywhere in the source or your example, what does it do to the mesh?
It’s used in ‘dwarf.h’
And if you write: node->setTransitionTime(0.5)
When ever you change the animation of that node, instead of a jump to the start of the next animation, it sides into the next animation for half a second (or any other value you set)
when you setRotation, how do you know where the axis of rotation is?
It depends on how the mesh was built, so just play around with different axis.
How do you find out which frame number corresponds with which action? Or you just have to load it into blender and check it out yourself??
If you download the dwarf from http://www.psionic3d.co.uk/cgi-bin/imag ... D%20Models there’s a file with it telling you the animation ranges, you need to times each one by a 100.
Or you can load the mesh into a tool like unwrap3D (not free, but very handy)
Post Reply