Chicken, an Egg exporter for Blender 2.49 and lower

Why do you find Ubuntu obscure?
Douglas

I don’t find Ubuntu obscure… in fact, as I’ve mentioned several times in this thread, I develop Chicken on both Ubuntu and Windows XP. What I find obscure is the weirdness you described with soft links in your Blender scripts directory. If you had a normal Blender scripts directory with no soft links you would’ve had no problems installing Chicken on Ubuntu.

@psiberpunk
Are you thinking of adding support for other texture modes in the future? The new shader generation supports, normal, gloss and glow and possibly ambient. I imagine that in Blender this would be associated like this:

Nor - normal map
Spec - gloss map
Emit - glow map
Amb - ambient light

I was thinking of doing that, yes. Revision 44 already has support for Normal maps, and I plan to add the others you suggested in addition to Height textures, which I imagine would also use Norm textures, but ones that are not flagged as normal maps (i.e. they are bump maps).

psiberpunk. I know that I have asked you this before. But here I go again. I have read the docs for chicken at least 90 times. I understand 99% of it but its just his one part of the explantion of the sytheticRoot bone that confuses me and I have read it over and over and over again

Movement delta? First frame displace relative to the origin a if the last frame was placed at the origin? Only frame previous to the start frame? This really does not make sense to me. Could you please explain in simpler terms. Pictures would help a lot.

It seems that Chicken creates additional vertices (in fact, duplicates existing ones).
For example, if I have a cube that consists of 8 vertices in eight angles and 6 square polygons. The chicken creates additional vertices so that they are not shared between polygons. So, after exporting I find 24 vertices in the egg, with 4 for each of the square polygons. Is it normal?
At the same time after I examined the Ralph model, I see that vertices may be shared between polygons.
Maybe, problems with normal maps on UV seems originate from this behavior of the exporter?

birukoff: That behaviour is due to the fact that Blender stores uv coordinates more efficiently than panda i.e. it can store a different uv for each face at any given vertex, so it can handle seems. Panda however only has one uv per vertex, so for it to replicate Blenders behaviour it has to duplicate vertices with different uvs. This may seem strange but it makes perfect sense - Panda is all about rendering stuff quickly and hence a simpler data structure is beneficial, whilst blender is all about editing, and so has to do it the complicated way.

In regards to your cube the default uv coordinates are such that all faces share the entire image, hence every vertex needs to be duplicated for all 3 faces that use it, making 24 vertices in total. If you take the cube and subdivide each face you will find that the vertices in the centre of the faces will now be shared between faces as they have the same uv values for multiple using faces.

The uv seam normal map issue is a separate issue unfortunately.

Also, note that duplicate vertices in the egg file are automatically collapsed together, when possible, when the egg file is loaded. The number of vertices in the egg file really has very little to do with the number of vertices in the Geom that is created from it.

David

drwr since psipherpunk never answer me maybe you could take a stab at answering the question I ask four post up from this one.

Sorry, I don’t know beans about Blender.

David

Sorry, I’ve been really busy lately so I never got around to answering your question, Shaba1. Here goes:

A movement delta is how much the object moved in one frame. Since we’re talking about motion extraction this means how much the synthetic root bone moved in one frame. So, what I mean is that the first frame you export in your animation should have the synthetic root bone displaced the same amount relative to the origin as if the pose of the last frame were copied and moved so the synthetic root bone lined up exactly with the origin. All this is only necessary if you want your animation to loop and not have a noticeable pop in the motion of your character when a loop is completed.
I don’t know if that’s any clearer, but I’ve got something better than pictures in this case. Just look at how the test model that’s on the site is animated and configured for export.

I’ll try to clear this up tomorrow, but right now I have to go to sleep.

Blender 2.46 is out now ( blender.org/download/get-blender/ ). It is said in the release notes that it has an “improved Python API”. Maybe, Chicken can be improved further to obtain features that were not possible before? To solve known issues?

Hi there all,

EDIT EDIT EDIT : ok I fixed with select >inverse , x :delete…go figura…got help from my friend surphaze so thx to him :slight_smile:

pview well no matter, but after fixing it, running pview still showed nothing…however its not a small file at 42MB so who knows there as well …

thx
lee
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::

I have a weird parsing error in bam2egg :

C:\Programs\Programming\Panda3D-1.5.3\bin>egg2bam C:\Programs\Programming\Heartseed\eggs\heartseed.egg

Error in /c/Programs/Programming/Heartseed/eggs/heartseed.egg at line
741681, column 13:
-1.#IND -1.#IND -1.#IND

        ^

parse error
THEN in console I see this:

Unable to load /c/Programs/Programming/Heartseed/eggs/heartseed.egg
:framework(warning): Empty bounding volume for models
:framework(warning): Empty bounding volume for models

Any idea whats causing this ? :slight_smile:

This is in windows xp home, with Blender 2.46 and chicken R44.

While I am posting, I also get no pview ( no error though) images showing in pview window, even after pressing C, then W.

Thx anyone :slight_smile:

nl

EDIT: Ok I’ve looked on the script and found out that curves are actually implemented, just set the CURVE_SUPPORT variable to true and done… ill check if it work nicely with some tests…

Hello,

The exporter looks great… and I’d like to add a feature request.

The ability to export motion paths, basically to implement the tag, it would make it a more complete exporter. And also it will give the ability to use motion paths from blender. You could use a blender NURBS object to do that… not sure if that would be too difficult to implement.

I know it not the most important feature, but it would be nice to have it.

Thanks

Italo F. Capasso B.
AKA “Edwood Grant”

First of all, this looks like a good tool (although admittedly I’m only just starting to use it) - thank you for it! :slight_smile:

However, I just wanted to report an error that I encountered, and the fix that I came up with. (This may have come up before, but if so, I haven’t noticed anything to that effect.)

For reference, I’m using Blender 2.46.

Having placed Chicken in my Blender script directory, I attempted to invoke it, only for the script to fail with a TypeError, and with the indication that the culprit lay in line 311.

This line is protected by a try block, but, in the version that I downloaded, at least, it only catches IOErrors. The fix, of course, is simple:

line 312:          except (IOError, TypeError):

This seems to be effective. :slight_smile:

First thanks for your exporter.
I made a small change to your exporter (Version R44). With my change it will export the animation into the same file as model it self. The advantage is that you only need to load one file and not for each animation one. It will behave like to old one if the animation only button is selected.
Here is a diff file of change: http://user.enterpriselab.ch/~zdweber/chicken_changesR44.diff

Maybe you have a reason for exporting into several files but it would be nice if this could be an option.

An other request I have is that I would like to be able to export a model that has several animations but each separated as an action. Currently I have to switch between each animation by selecting the action for the armature before each export, since I’m only able to select the frame range of an animation and not the action.

mweb just how is one supposed to use this “diff” file. Do we copy and past it into the original chicken.py file. If so where. Some instructions would be helpful.

A diff file is a file containing just the changes to the original file.
On linux, you can just use “patch” on the command line, on windows you can probably use any text editor, or this:
gnuwin32.sourceforge.net/packages/patch.htm

Thanks pro-soft. I think I will stay with R44 although I still do not understand what psiberpunk said about looping an animation.

Psiberpunk,

Going back to the whole thing of using Blenders tangents and bi-normals I had a look through the python reference the other day and found the getTangents() method - see blender.org/documentation/24 … etTangents

Its quite a fiddly interface given by example only, and inconvenient compared to getting normals, but it doesn’t take much to work out what is going on. My interpretation is that you call the method and, for the active uv layer, get a list with an entry for each face. Each entry is then a list of tangent normals mapping to the vertices of the face. You presumably cross-product with the normal to get the binormal.

I had a look through the chicken code and think I could implement it, but really don’t have the time right now (Have a thesis to write, so unlikely to find time before Christmas.), plus I’m not sure what the current version is (to edit), looking at the changes/patches suggested above in this thread.

So I’m posting this in-case you or someone else can find the time, but if not I’ll do it when I have the time… but that is not going to be any time soon.