Issues with Yabee exporter

Hi everyone, first, I’d like to thank both the creators of Panda3d and the people who keep on improving it in any way, be it generating scripts or modifying the source or helping others to learn to use it.

This issue has probably been addressed multiple times, but I’ll ask it for this specific case. I’m using Blender 2.69 and YABEE r13.1 for blender 2.66, because it is the latest written exporter. In order to make a game I first want to ensure that all is well; that is, that I can:

  • Export textured models that are static.
  • Export textured models that are animated.

That is really all I ask, because the rest, viz programming, particles, collisions, physics, sound and networking are handled in Panda3d once the models have been imported. So those two things are really crucial in order to develop a smooth working pipeline.

That said I want to get done with it once and for all and to always use a pipeline that’ll work. Onto the issue, which at first handles loading static models:

-I have modeled using makehuman and some modifications in blender, a simple goblin/golemn character and applied a pinkish texture to it. I want to import it with the texture, to an .egg file. When I try importing it without the texture, everything works fine, except that it is white in color. I know how to change it’s color, this would be the code:

        self.m=self.loader.loadModel("plain.egg")
        self.m.setColor(0.6, 0.6, 0.6, 1.0)
        self.m.setColorScale(0.6, 0.6, 1.0, 1.0)
        self.m.reparentTo(self.render)

The imported model is not shown when I do this. However, commenting the lines that set the color out does show the model, except it is just white:

        self.m=self.loader.loadModel("plain.egg")
        #self.m.setColor(0.6, 0.6, 0.6, 1.0)
        #self.m.setColorScale(0.6, 0.6, 1.0, 1.0)
        self.m.reparentTo(self.render)

That shows the model, but white, because it has no color or texture set. Working with another model, modeled purely in blender and changing it’s color does work, however:

        self.m=self.loader.loadModel("flowers.egg")
        self.m.setColor(0.6, 0.6, 0.6, 1.0)
        self.m.setColorScale(0.6, 0.6, 1.0, 1.0)
        self.m.reparentTo(self.render)

That properly colors the model that would have otherwise been white. So my first question is, why is this so? I have attached both models, the first one called “plain.egg” and the second one called “flowers.egg” onto this post. I have also attached the original .blend file for “plain.egg”, it’s called plain.blend. If someone could take a look at this, export it and try changing it’s color and telling me where something is going amiss that would be really helpful.

The next question is one of texturing. This doesn’t work at all. I’ve attached the textured .blend file, called FACE.blend along with the texture file called textf.png. Trying to export it, even using the “baked” option doesn’t yield anything. If someone could take a look at this file and export it with the texture to a .egg format and tell me the instructions to follow, that would be really nice.

Seeing as this is really the only issue with Panda3d, the problem when it comes to generating the actual models to be used in the game, once done, then everything, in terms of a pipeline, would be a breeze.

A last question is, is there a ,modelling and animation program somewhere that generates directly to .egg? Other than using Panda3d itself to make your custom geometry, is there something that offers this?

I think it’d be better if I just provided the resources themselves and have someone experienced in this show me how to export, so as to avoid any misunderstanding. All the resources (plain, flowers, FACE)are in a .zip file called “resources” attached to this post.

Thank you all for your time in advance, and if some part of my question(s) isn’t clear, please ask and I will clarify.

P.S. I know the poly count is high, but as I said this is just to first off check that, from a practical perspective, all is well and I can actually use Panda3d smoothly to make an online game. So I’ll use models with reasonable poly count in the actual game.

EDIT:

There seem to be an issue uploading the .zip file here, it just completes the upload but reloads the post-page…anyways, here is a link to the resources.zip file, where you’ll find all the resources referenced in this post:


4shared.com/zip/z7c579dqce/resources.html

Greetings and welcome! :slight_smile:

First of all, I’m not familiar with “4Shared”, and I see quite a few ads and several links–I’m honestly a little nervous about clicking on anything on that page. I performed a quick experiment with the forum’s attachment system, using a zip of my own, and it seemed to attach correctly. (To be specific, I believe that I clicked on “Upload attachment”, then on “Browse”, then selected my zip file and clicked on “Add the file”; after this the page refreshed and my attachment was available in the same space, below the post-editor.) When you tried, was there an error message? Perhaps the file was too big for the attachment system on the forum?

Now, on to your issues with YABEE:

First of all, I believe that the most recent version of YABEE is intended for version 2.66 of Blender; while so small a difference in version seems unlikely to be a source of problems, especially since you are getting files exported, if at the end of this you’re still having problems it might be worth downgrading to that version.

My first guess–and this is supported by my memory of another person who had a similar issue with a model exported by MakeHuman, I believe–is that the MakeHuman version has one or more materials attached, while your Blender-only object has none. Panda, I believe, only renders material colours when the object is lit (even, I think, if that’s only by an ambient light). Try adding a light to your scene (a DirectionalLight is probably the safest choice for experimental purposes), and see whether your MakeHuman-object’s colours appear.

I’m not sure of why the MakeHuman model actually disappears; however, my memory of that same previous issue suggests that it may be worth checking the materials of the object, in particular checking that “transparency” isn’t set or the alpha alue set to 0. Note! If the alpha value is less than 1, I recommend setting it to 1, even if “transparency” is off–YABEE seems to use the alpha value regardless of whether the “transparency” value is set, as I recall.

That previous thread may be of use to you: this link should take you to it.

This one’s trickier to answer without looking at the model itself. However, in Blender, check that your textures are mapped using the model’s UV-maps. To check this, in a “Properties” view, go to the “Textures” tab, and for each texture in turn scroll down to “Mapping” and check that the “Coordinates” drop-down is set to “UV” and “Map” is set to the model’s UV-map (or an appropriate one, if it has multiple).

On further review I’ve seen that the limit allowed on the forum is 2mb. The resources.zip file was about 10mb.
There is nothing wrong with using “4shared”; I use it all the time in spite of the advertisements (they have to pay their bills somehow…) and I can assure you that it is absolutely safe. Should you change your mind on whether or not you want to use it, do not click on any of the advertisements, or any “download” links that have a caption that says “livid” or something of the sort. Click on “free download” that has a waiting time of 20 seconds. Anyways, if you are still not comfortable with that, how do you propose I show you the file? Would you be comfortable suggesting a file sharing service you use? Or some other means? Maybe email (you can PM me)?

I tried adding light to no avail. On exporting I had those things set, the coordinates are set to UV and the map is set to the object’s uv map…

With regards to 4Shared, it may well be that I’m being more cautious than is reasonable; I think that the element that most put me off was that there seemed to be multiple links to the file scattered amongst all of those ads, which could easily be spoof-links.

If no-one else picks up the file from 4Shared, would it be feasible to create a small test-case blender file, exported from MakeHuman, exhibiting the same issues, but within the forum’s file-size limit? Looking at my own files, I have (low-polygon-count, admittedly) Blender files that are under 1MB. As long as the textures are reasonably few, in a reasonably small file-format and not overly large, getting the resultant zip to be less than 2MB shouldn’t be difficult.

If not, PM me and I’ll send you my email address–although I’d prefer it if the zip were somewhat less than 10MB if it’s going to go through the email system.

I just removed all other files and left the plain_file plus the texture to be attached to it, and that brought it down to 1.5 MB. Now the forum tells me that maximum file size allowed is 256KiB! Anyways, we’ll just have to use pm in order to send it to you. Please go through it and tell me how you’d export it to a .egg format, both without the texture and with the texture. Without the texture, you can try coloring it and tell me how it goes. I can downgrade to blender 2.66 too, the reason I use 2.69 is in order to work with other technologies like WebGL-related libraries.

I appreciate the help.

That issue with the attachment uploader is very odd. o_0

However–as you may well have seen by now–you should have a response to your PM.

All right, having taken a look at your model, I don’t seem to be seeing any materials or textures applied to it–more accurately, I see a large number of empty materials and textures. Did you perhaps break the materials in producing a smaller file? Otherwise, perhaps this is a problem with MakeHuman’s exportation, or a compatibility problem between your version of Blender and mine (I use 2.66a, I believe)–or something else entirely.

I’m afraid that I don’t know Blender well enough to guess at what went wrong there. :confused:

If I remove all of those materials and simply apply the pink texture in the UV/Image editor, then export using the “UV as texture” option in the YABEE interface, I seem to get a properly-textured egg fill, albeit without the benefits of a material.

Similarly, if I delete all of the empty materials and replace them with a new material of my own, with the pink texture applied to it and the proper UV-mapping set (as previously described), and export without the “UV as texture” option, I once again seem to get a valid egg file, but now with a material.

Note, however, that in both cases I verified this in PView only, so it’s possible that there’s some issue that PView misses and your game doesn’t.

Hi, thank you so much, downgrading to 2.66a solved the issue.

However, as you can see from the screenshot, the model still has some errors, like not being correctly textured. You can see that some parts are transparent. This error is both in pview and in my test program.

Exactly what settings, for both the materials and textures, did you use when exporting the model? Is it perhaps an issue with the UV? Did you change that somehow?

Thanks.


The limit is 256 KiB?!? Gosh. Disk space is so cheap nowadays, and we have a lot of it.

I just raised the upload limit from 256 KiB to 2 MiB, which is the maximum that the PHP configuration will allow. I’ll talk to the server maintainer to see if we can’t raise it to something like 16 MiB.

EDIT: OK, it’s been raised to 16 MiB.

Ahh, wonderful, and thank you! :slight_smile:

Now to take advantage of that increased attachment allowance…

[edit]
Hmm… Those three images took up less than 200KiB–maybe I should look for a bigger image format… :stuck_out_tongue_winking_eye:
[/edit]

I’m glad that you’ve made progress! :slight_smile:

As I mentioned previously, I exported in two ways; I’m going to presume that the version that uses a material is likely to be more useful to you.

So, if I recall correctly: I cleared out the several empty materials and textures–all of them–and replaced them with a single material-and-texture. The material used the default settings–I’m not sure that I even looked at them. The texture, on the other hand, was set to be an image texture (naturally) and assigned the pink image file. I then set the mapping coordinates to “UV” and the map to “UVTex”. In YABEE I unchecked all of the check-boxes, save PView. (However, you might want different settings, depending on your intentions.)

A few images to illustrate:



I did it exactly as you did again, but still unfortunately, the error persists. The back appears invisible, but when i zoom in on the model, it looks alright. I take it you’re not getting the same issue?

Very odd indeed–and indeed, I’m not seeing that effect at all. :confused:

Are you confident that you’re removing all of the original materials, that none remain?

The fact that you’re only seeing this when zoomed out is an interesting symptom. Perhaps it’s a matter of how the texture is being scaled on our system–I note that the texture-seam runs down the back of the model, where the issue is being observed–although it seems to cover a rather large and suspiciously clean-edged portion of geometry for that.

I’m not sure, I’m afraid. :confused:

I generated a new uv map with smaller seams and that solved the issue. (How do I mark this as solved?) You can see from the attached image that there is no longer a section that is invisible. I wonder though, does this count as a bug, or is something wrong with my computer? Perhaps that’s a rhetorical question.

From all this, I infer that in order to avoid such issues, I should create smaller sections of seams. I appreciate your help and patience. The next thing to tackle would be animating the model. I read that this exporter works only with armature-based animation and not distortion-based animation, so I’ll have to look into that before I make this character walk and maybe jump and kick and so on. I hope it’ll be smooth; but something tells me somewhere along the line I’ll end up here again…

By the way, if you don’t mind me asking, what is your personal approach when dealing with multiple animations? Do you animate the character in separate instances and then save those different animations in separate files, or do you take a different approach?

Your dueling game is pretty cool by the way.

Ah, I’m glad that you’ve made progress! :slight_smile:

Hmm… What do you mean by “smaller sections of seams”?

All of this is very odd–on which note, you should have a PM.

Good luck! :slight_smile:

What I generally do–which may well not be the best approach, please note–is to create my animations at points along a single time-line, and then simply give YABEE the appropriate start- and end- points for each animation (note that it should happily export multiple animations). I usually have it export animations into separate files (using the “Separate animation files” option in the YABEE interface); I feel that this makes it easier to add, remove or replace animations–addition in particular is made quicker in combination with the ability to export animations only, allowing me to export only the added animations without too much trouble.

Thank you–I appreciate that! :slight_smile:

When I say that I used “smaller seams”, I mean that I unwrapped everything as the attached image with grey portions shows. I separated the back from the front and re-did the head. This is as compared to the original uv unwrapping as shown by the attached red image, where the back and the front are unwrapped as one large portion and the head is sort of split into two. I’ve received your PM.

Your method of exporting animations seems good from a “pipeline perspective”; and if it may not be the best approach, then what do you recommend as the best approach? Or was your statement meant to denote an ambiguity of the best approach on your part?




Hmm… My best guess is that it was some sort of texture-coordinate imprecision issue, but that is very much a guess.

My statement was indeed intended to communicate uncertainty on my part: this is a way that works for me, but I’m far from an expert in the matter, and even if I were could still be mistaken.

Hi everyone, just thought I’d update on this.

It seems that the issue was the SDK version of panda that I was using. The patch was there when I was using the latest version, version 1.8.1; however, upon downgrading to version 1.7.2, the error did not present itself. Note also that the error only occured on a rather old computer:

Here are the relevant system specs for my computer that had the problem:

System:
OS- Windows xp professional 32-bit (5.1, build 2600)
system model: dell optiplex 360
Processor: Pentium ® Dual-Core CPU E5300 @ 2.60 GHz (2 cpus)
Memory: 1024 MB RAM
Directx version: 9.0c (4.09.0000.0904)

Display:
Intel® G33/G31 Express Chipset Family
Chip Type: Intel® GMA 3100
Total Memory: 384 MB
AGP Texture Acceleration: none

Drivers:
Main Driver: igxprd32.dll
Version: 6.14.0010.4957
Mini VDD: igxpmp32.sys
DDI version: 9(or higher)

Here are the relevant system specs for my computer that does not have the problem:

System:

OS- Windows 8.1 Pro 64-bit(6.3 build 9600)
System model: HP 2000 Notebook PC
Processor: AMD E-350 Processor (2 CPUs), ~1.60 GHz
Memory: 3072MB RAM
DirectX version: DirectX 11

Display:

AMD Radeon HD 6310 Graphics
Chip Type: AMD Radeon HD 6310 Graphics (0x9802)
Memory: 1526MB
AGP Texture Acceleration: enabled

Drivers:

Main Driver: aticfx64.dll,aticfx64.dll,aticfx64.dll,a
Version: 13.251.9001.1001
Feature Levels: 11.0,10.1,10.0,9.3,9.2,9.1
Driver Model: WDDM 1.2

Anyways, the attached image shows that when using version 1.7.2, there is no patch and the model exports correctly, as compared to using v1.8.1; maybe this is because the new version targets modern computers? As this is the case, does anyone recommend developing using v1.7.2 in order to reach a greater audience? (I think the only thing one would miss out on would be using Multi-threading to x1.5 or x2 their frame rate).

Interesting…

I honestly don’t feel that I have much to add at this point–hardware really isn’t my forte, I fear–but I do think that I recall that integrated-Intel chips aren’t always up to much as far as gaming is concerned.

Hum… I think that this may depend on your target audience. At a guess, a game targetted at “hardcore” gamers may gain less from supporing such hardware, as such gamers seem to me to be more likely to have fairly modern, fairly game-oriented hardware. A different target audience, however, might benefit from such support. If it’s something that you’re concerned about, then it might be worth doing some market research specific to your game or games.

Alright, thanks for the input anyways. With regards to the game, I believe it is possible to build a game like allods online:

en.allods.com/

or like aion:

na.aiononline.com/en/

using v 1.7.2. Or another way would be to build two versions using v 1.8.1 and v 1.7.2 as I don’t see much of a difference graphics-wise. And if the game runs at a fairly good frame-rate on an old machine, I doubt there should be an issue on a new machine, even if it doesn’t necessarily take advantage of multi-core processing.