Something Made You Special

By Shamus Posted Saturday Sep 23, 2006

Filed under: Rants 18 comments

Steven left a link to this story in the comments here: Veggie Tales is to be broadcast on TV, but all religious references are to be stripped out. I’d love to know how they plan to do that. Veggie Tales is a kids show with musical numbers. Some of the songs mention God in the lyrics. Those songs would have to be re-written, re-recorded, and then the show re-cut. Every show ends with Bob and Larry going over to the computer to read “today’s verse”. Bob’s ending catchphrase is, “God made you special, and He loves you very much!” If they take God out of the show, it will be quite a bit shorter and make a lot less sense.

Veggie Tales
I’m not really angry at NBC. I was shocked when I heard they were putting the show on TV, because I knew the show is explicit about talking about God. It’s a show by Christians and aimed at Christians, so it doesn’t water things down. I was sure if they put the show on the air there would be complaints. A lot of them. My kids don’t watch TV, but if they did I can imagine how I would react to a show that was advocating another religion. This is deeply personal business, and not something that should try to bypass me by proselytizing to my kids via a cartoon show. If I came in and saw Spongebob had been replaced by “Tarot Time with Little Miss Wicca” I’d be pretty irritated. So, I don’t blame NBC for wanting to avoid the backlash that would come from non-Christians and anti-Christians out there. The conservative Christian groups would react at least as strongly if another religion was getting airtime during kid’s shows. NBC is a business, and from a pure business standpoint they have a duty to avoid religious advocasy when the kids are watching, because anything else results in bad press and angry letters sent to sponsors.

What I don’t understand is why the sides agreed to this in the first place. What in the world made NBC want this show? NBC makes this sound perfectly routine, to sign up a show that is totally at odds with their broadcast standards. Big Idea claims they had no idea their show would have to be edited like this, and say they never would have signed the papers if they had known. I find it hard to believe that these contracts were signed and somehow nobody mentioned how this was going to go. Editing – particularly tricky editing like this – costs money and often requires voice actors to come in and lay down some new dialog. Who is going to do this editing? NBC? How did they get permission to edit the show like this? At best, it sounds like the Big Idea legal team didn’t do their job, and NBC was probably at least a little deceptive or misleading. At worst, Big Idea is outright lying.

All of this just confirms my fears that this was a terrible idea to begin with. Phil Vischer (one of the show’s creators, and the voice of Bob the Tomato) is still excited: “Isn’t it great that Veggie Tales is on TV?” Well, no. Who cares? Imagine how the secular / non-Christian types will react when they decide they like the show, buy one of the videos, and get the raw, uncut, explicit version that talks about You-Know-Who. I think they are going to feel like they were duped, suckered in. Christians who like the show already own the videos. So who is the show for?

Now, I’m all for wholesome entertainment that is still, you know, entertaining. I’m weary of the crass booger & fart jokes that are strung together to make kids giggle, and one can only take so much of the “Kipper” shows – television so harmless that it is devoid of content. Something witty yet wholesome is a worthwhile goal, and I’d admire them if Big Idea made another show that was aimed at television with this goal in mind. But the way this happened is just awful. It’s lies and money and will lead to a chopped-up TV show that doesn’t make any sense and won’t please anyone.

On a lighter note, Pizza Angel!

 


 

DM of the Rings VIII:
A Tearful Reunion

By Shamus Posted Friday Sep 22, 2006

Filed under: DM of the Rings 38 comments

Lord of the Rings, Uncle Bilbo, Player Apathy, Rivendell

Yes, black dragons are powerful. So are level-20 fireballs, demi-gods, and huge mythic beasts. But there is no force in the game as powerful as the combined selfishness and apathy of your players.

 


 

Animated Figures

By Shamus Posted Friday Sep 22, 2006

Filed under: Projects 12 comments

I’ve alluded to this a bit over the past few days, but my current non-work project is to make a program for animating 3d characters. At work, I maintain software that does this already, but I didn’t write that part of the code. For the most part, the character animation is driven by Renderware, which a fairly large and popular cross-platform graphics engine. It’s nice to be able to hand off complex tasks to a graphics engine and say “make all of this confusing stuff work and don’t trouble me with the details.” When developing commercial software on a schedule and a budget, it’s just the thing.

But I’m filling in various gaps in my knowledge and so I want to know how to do this myself, from the ground up. This means putting some of my crude, self-taught trigonometry to use. It also means getting some 3d data to work with.

3d character, Vertices, Lines, Triangles
Top: Vertices are the dots that give the figure shape. Bottom: Triangles are lists of points to connect, which will eventually turn this thing into a solid shape.
Unlike my Terrain Project, where my input data was just a couple of bitmaps and a few nice shading tricks, I need real data for this one. I need a low-polygon (less than 5,000 polys) humanoid figure with skeletal info so that the points can be moved around to make the figure walk / run / fall down / etc. I also need a system of scripting body movements so that I’ll know how to adjust the position of the figure to create the illusion of walking. This is a lot of very complex data. In a real game company, it would take between two and five artists to come up with this data. Luckily, I have enough 3d art background that I can make this stuff myself as long as I’m not too picky about quality.

So now I need to decide what 3d program to use to make this stuff. Part of this decision will involve what sorts of 3d files the program can save. 3D models are made up of predictable things. There are points (verticies) and there are triangles (each of which plays connect-the dots with 3 particular points) uv values (information about how the texture lines up on the model) the skeleton (another collection of points, which define all of the joints in the body, where their pivot points are, and how they relate to each other). There is lots of other interesting data, but this is the critical stuff that every program needs before it can draw a 3d model.

Every 3d program has its very own file format, a method for storing all of this stuff. Some are very nice to use. It’s just a list of verices, followed by a list of triangles, etc. Others are more obscure, or have lots of extraneous data mixed in that must be weeded out. Still other files formats are “closed”: Nobody outside of their creators know how they work, so they can’t be read by any external programs. Such as mine. Some are dense, complex, tricky, poorly documented, or otherwise difficult to read. Some are easy to read but don’t preserve the most complex data – the information that ties the body to the skeleton. Since that’s the whole point of the project, I can’t go with any file format that leaves this out. File formats that are both robust AND easy to read do exist, but they are rare and not all programs support them. So, this is going to be tricky.

My budget right now is $0.00, and 3d programs tend to hail from the $500+ price range, so there’s another snag. Even if I do find a program that supports an easy-to-read, well-documented format that has what I need, it might be way out of my price range.

Well, Let’s see…

Truespace

I own a copy of Truespace, so it’s “free”, but I’m not going to use it for this unless I have no other choice. It’s a poor tool for this particular task, and the file format is difficult. It’s nice to know I have this to fall back on, but I’d like to see if I can find a better tool for the job.

Poser

Content Paradise had a promotion where they were giving Poser 5 away for free, and I managed to grab a copy. As of right now the free promotion is over, but they are selling the program for $20. That is $230 less than the usual price. I don’t know what inspired this fire sale, but that’s still a good deal.

Poser isn’t a 3d modeling program per se. It’s for posing very realistic super high-polygon figures. Not really ideal, but it does have moving 3d human models and an export feature. It should at least give me my 3d figures, although I’ll have to look elsewhere for the animations that drive them.

I was able to export one of the low-poly models into 3DS format. (Pictured above) 3DS files are a bit unwieldy. They certainly aren’t a nice neat list of points, triangles, and such. The 3DS file is packed with useless stuff about window layout, light placement, camera settings, and a bunch of crazy stuff that I don’t want or need. Still, the format is documented, so I sit down and spend a few hours implementing my own code to read 3DS files.

At the end of a lot of confusion I discover a nasty little secret: Poser leaves the skeleton off when it exports. Suddenly this animated 3d guy turns into an unmoving statue, and the data to get it moving is gone. Some Googling reveals that this is the case for all formats for all versions of Poser. The program leaves this info out on purpose.

Sigh.

Well, at least I didn’t pay $250 for it.

Blender

I tried Blender, and eventually dismissed it for reasons belabored elsewhere. I really, really did think this was the right program for the job, which is why I gave it so many second chances. It’s open source. It LOOKS impressive. It’s feature-rich. And if you want an open file format, then an open-source program should be the place to go, right?

In the end all those second, third, tenth chances only fueled my rage and led to my intemperate and (I hoipe) uncharacteristic posts. I should have given up much earlier on. It was clear the thing just wasn’t going to cut it and I just had a mental block about the thing. I just couldn’t imagine OS software that was this bad. I must be missing something? Doing something wrong? It can’t be this useless, can it?

Yes. Yes it can. This is not the program you’re looking for. Move along.

Maya

Maya retails for about $400 or so, but Unreal Tournament 2004 came with a special limited version of Maya that had some of the high-end features disabled, and it put an annoying watermark over the 3d viewports. It was like looking at your work through a stenciled window. These programs are tough enough without that visual distraction. Also, I think the export functionality was crippled or removed in this evaluation / learning version.

I like the idea of a learning version, but this isn’t going to meet my needs. The $400 price point is WAY out of my budget, so I have to give this one a pass.

Milkshape

Milkshape is an odd duck. (No offense). Instead of being aimed at professionals, it is aimed at home-brew developers making game mods. Where most 3d programs have export options for various obscure file formats, Milkshape has stuff like, “Export to Doom 3”, “Export to Half-Life”, “Export to Max Payne” and so on.

The interface is alarmingly simple:

Milkshape
Milkshape isn’t fancy. She might not look like much, but she’s got it where it counts. Here you can see I’m adding a skeleton to the model so that it will move. The model is bent oddly because I did something wrong and the skeleton isn’t properly attached yet. When it’s working right, the skeleton will stay inside of the model!

Still, simple is good. Building a full 3d human with this would be really tough. Blender seems geared to very low-poly work, like making models in the 1,000 polygon range. That’s about the polygon budget of games released around 1999 and 2000. However, Milkshape does import 3DS files. So, I can take my non-animated guy from Poser, bring him into Milkshape, and manually re-create the skeleton. It’s dull work, but it will get me where I want to go and save me the time I was going to have to spend modeling a human.

But what about saving? All of this does no good if I can’t save in a format that my program can read. Well, it turns out that Milkshape has a wonderful text-based format. There is documentation on it, but I hardly need it. After a a quick read through a file I can intuit what the numbers mean. It’s all very easy and sensible.

The price point is $25, which is very reasonable. I know this project has a budget of zero, but I think this program is worth $25. Even if it doesn’t pan out, this thing looks to be a labor of love and has more than $25 worth of features. So, I found my 3d program.

After days of work, I’m finally ready to start!

 


 

The Last Straw

By Shamus Posted Thursday Sep 21, 2006

Filed under: Rants 5 comments

As a follow-up to my previous post, it turns out that there IS an open-source 3d format that Blender supports. Collada. I love the idea of an open, easy-to-read 3d format. Closed formats are a pain in the behind, and do not serve the interests of the user at all.

To have Blender export as Collada files:

  1. Download & install the FULL version of Python. No, the one that came with Blender won’t do. You need the FULL version. No, I don’t know why it wasn’t just included, or what the difference is.
  2. When it fails, do not be fooled by the error message that tells you to check the ImportScript.py – This is misleading. The file you need to open is ExportScript.py. Once you are working with the right file:
  3. Edit the python SOURCE CODE for the script that does the exporting, and change a variable so that it points to the right directory on your hard drive. I hope you know how to program in python, or have some coding knowledge: The line of code you’re hunting for isn’t at the top of the page.
  4. When it still fails, try changing that variable to point to many other folders on your hard drive, trying to get the script to stop throwing up error messages about invalid paths.
  5. Change some obscure blender path settings, just for the heck of it.
  6. To make sure that Blender is actually USING that full version of Python you downloaded and installed earlier, open up the “system information” dialog.
  7. Note that this is not really a dialog. It’s just a popup saying that the info you wanted has been printed to the text window.
  8. Figure out how to open this elusive text window. This may take some time.
  9. Once opened, note that it is blank. So get the system info again.
  10. Of course, this still does nothing, but the popup does mention a file named info.txt.003, which should ALSO have the output you’re looking for.
  11. (In case you forgot what we’re doing: You’re trying to get some basic system info so you can confirm that Blender is using the proper build of Python so you can eliminate this as a possible cause of the exporter not working, which you need in order to save your work as a file that can be used elsewhere.) Anyway, do a search on your hard drive. Yes, the whole thing. All 100 GB. Note that there is no file called info.txt.003 anywhere at all.
  12. Realize you just blew ninety precious minutes trying to SAVE A FILE. Remember also that the only reason you’re doing this is because the FIRST file format you tried to use didn’t work and the program output gibberish.

Dear Blender team: You suck. You have no pride in your work and your software is terrible. Give up and go home.

Better yet is the parting shot from Alex to the ill-concieved Girl’s high:

Dear Blender,

Please stay away from my computer. You are uglying up my hard drive.
Love,

Shamus Young

 


 

Blender: The Puzzle Box

By Shamus Posted Thursday Sep 21, 2006

Filed under: Rants 19 comments

What follows is a long rant about a 3d modeling program. This isn’t aimed at anyone in particular, but I wanted to set these words down for the sake of posterity. Read at your own risk.

I love open source software. I’ve found that in most cases, open source software can be many times better than software from a store. If someone went to the trouble to write a program, it’s because they had a need they could not fill with commercial software. I often find that their needs and my needs intersect, and their open source project becomes a prized member of my software library. The fact that it doesn’t cost any money is just a bonus: Often I would gladly have shelled out some bucks for what I’m using.

This is not the case with Blender. Blender is an OS alternative to the $500 – $3000 3D modeling suites used by artists in the production of games and animations. This sort of software is what they use to make Toy Story, Shrek, et al. This software is by its very nature large and complex, and it’s surprising to see the open source community tackle a niche product like this. Even more surprising is what a train wreck the whole thing is. I have never, ever seen a major OS project so impossible to use.

The bad thing about these programs in general is that every last one of them has a unique interface. This is the nature of the beast. To use 3d software, you need to do complex stuff like move around in a 3d world, and there aren’t any standards for that sort of thing. In one program, you move with the left mouse button, rotate with the right. On another, you hit “A” and move the mouse to rotate, and “Z” to move. Another uses F1 and F2, but the direction that you rotate when you move the mouse seems to be reversed. There are as many navigations schemes as there are programs.

Dr. Strange
This was the original design for the Blender interface, but it was abandoned early on for being too rigid and conventional.
But the interface of blender is SO flexible and SO open that none of it fits into anyone’s understanding of how software should work. There is no wheel they did not attempt to re-invent. Sure, it’s nice to know I can change the menu bar into a 3d window, or divide my views until I’m looking at my work from 10 different views at once, but I shouldn’t need to learn the controls for creating the interface before I can learn the controls for actually using the program.

I’ve used several 3d suites in my career, and I’ve never run into anything this incomprehensible. After using the program for about five hours I still couldn’t tell you how to do very basic, simple things like cut / paste / undo / copy. There’s no edit menu. You can try keyboard shortcuts, but I’ve learned to fear these. Often keyboard shortcuts will do something unexpected. I’ve had windows appear that I couldn’t get rid of, or windows that I was using change into some other window and not know how to make them change back. I’ve learned to regard my keyboard as a device which I may use to punish myself in humorous ways. It’s like a cartoon control panel where all of the levers will drop anvils, open trap doors, or deploy humorous hammers against the hapless user. After enough smacks to the head and pies in the face I’ve learned to avoid pressing keys unless I really need to.

The biggest problem is the help for new users. There isn’t any. OS software is never very newbie-friendly, but Blender seems to take this to a whole new level that goes beyond mere new user neglect and enters the realm of new user contempt and loathing. Blender is a feral beast that must be tamed. It is going to test your resolve in the first few minutes, and if you show any hesitation – if you show even the slightest hint that you value your time and hope to accomplish something useful, it will sense your weakness and devour you. If you have ever seen Kill Bill 2 then I can put it this way: Blender is the Pai Mae of 3d programs. It hates newbies, despises windows users, and has nothing but contempt for English speakers. It will let you learn, but mostly because doing so will give Blender a chance to amuse itself by making you suffer.

Blender – the puzzle box
What’s with this color scheme? Dark grey on medium grey with light grey buttons?Click on the image to descend into a world of madness and tears, where the embodiment of all your greatest fears will be given a more horrifying form with which to begin its grim new work: The slow unraveling of your very soul.
The wiki is one of those deceptive things with a huge table of contents that has a lot of unfinished stub articles and circular references, so no matter where you look you keep ending up on the same five useless pages. Of the little help you can find, many paragraphs are devoted to assuring you that yes, while this interface is totally different from anything you’ve ever seen on this planet, but trust us, it really is better this way and you’ll love it and it will be like second nature to you if you ever manage to scale the matterhorn-shaped learning curve. And lookie! Did you know you can zoom in on a button?!?!

When I’m reading about how to use difficult software, I don’t want to read a bunch of justifications about why the thing is so hard to learn. The fact that this needed to be written at all should be a clue to the sadists who made the interface.

I’m trying to learn how to build a skeleton, which is usually a collection of lines that controls a 3d model the same way your skeleton controls your body. Move a line, and the 3d model will bend. This is how games can make that 10,000 polygon ninja skulk around the screen: They just animate a little stick figure and the software bends the 3d model to move with it. Very cool. But I can’t figure out how to do it in blender. I read the noob guide and it says:

Blender now has a Modifier stack (Editbutton, F9KEY). As such, we should use it over existing methods to pair mesh and armature, as the modifier stack is optimised and simple to use. Note: You don’t need to parent the mesh to the Armature anymore. The only case you could need to do this would be animating the Armature object itself. Then the mesh should also follow the armature. In this case select mesh, then armature, and do CTRL-PKEY –> Object.

This is supposed to be for newbies, but the article discusses “old” ways of doing things, then switches to the “new” way of doing things, then compares them, then talks about buttons I don’t see with meanings I don’t understand, then tells me that the new way really is better, and then promises that the next pages will teach me even more. That last part should be a given: It would be impossible for a page to teach me any less, since this one didn’t teach me anything at all.

One thing that works against the people writing these guides is that the interface is so dynamic they can’t discuss it using specifics. They can’t say, “look for the ‘nerdle’ button, next to the ‘foo’ button on the right panel”, because the user might not have those controls on the right. They might be on the left. Or hidden. Or jammed into a little postage-stamp window at the bottom where the button can’t be seen. Or when they bring that set of controls into view it will replace the window they were working in, with no clue how to make it go away so they can go back to work. You can’t even say “look for the red button”, because the program has various interface themes that will re-shape and re-color everything. So, these tutorials must be coy about what controls look like and where you can find them. Once you do manage to hunt down the button, you may find it is disabled. Why? You don’t know, and the noob guide isn’t going to tell you.

After five hours I’d finally managed to wrangle some sort of useable geometry out of the thing and I was ready to save my work. This is where things turned ugly. Despite that fact that this is open-source software, they don’t have any open-source file formats. (To be more exact, they don’t have any simple text / ascii / raw dump of the data, which is easy to write and easy to read.) You can only save using various proprietary formats used by other 3d programs. The only one I could use was “3DS”, which is a very, very common format. So I saved it, but the resulting file was gibberish. No other program I have can read it. I have no idea what blender is doing, but it is not saving these files correctly.

The website explains that while the old version used a plugin for 3DS files, this feature is built in to newer versions! I don’t know if the version I’m using is the new or old one in their book, and I shouldn’t need to. They have a link that promises more info, but it’s dead. The linked page is gone.

So after all of this work the only thing I can do is save my work in a bunch of file formats I can’t read, or save it to one file format I can read but which Blender can’t write properly.

Many, many thousands of hours of hard work went into making this software. Niche software. The audience for this sort of thing is already small, and the program works at every turn to defeat and repell eager new users.

What a sick waste of everyone’s time. Including mine.

Jerks.

 


 

DM of the Rings VII:
Let’s go Shopping!

By Shamus Posted Wednesday Sep 20, 2006

Filed under: DM of the Rings 38 comments

Lord of the Rings, Rivendell, Rivendale, Frodo, Gandalf, Dumbledore

Remember, nothing will spice up your campaign quicker than long descriptions of NPC’s doing spectacular stuff while the players sit around and watch.

 


 

An Island Where No One Lives

By Shamus Posted Wednesday Sep 20, 2006

Filed under: Links 3 comments

Beckoning Chasm has moved into some new wordpress-driven diggs. If you’re the bookmarking sort, then I suppose this would be the point at which you update them.

He also has a few new posts in the Telephone Girl series, which I mentioned before.

The painting is a tough one. Now, aside from using fingerpaints as a child, I’ve never painted in my life, but I can still recognize the process he’s going through. I follow a very predictable cycle when undertaking a project, and I bet a lot of people will find this familiar.

  1. Enthusiasm: This is going to be my best project ever!
  2. Unease: Hm. This is getting tough.
  3. Dismay: This is impossible! It’ll never get it!
  4. Defeat: What a waste of time. I must destroy this project and erase all traces of it so that my lack of talent is never exposed to the world.
  5. Grim resolution: I’ve come this far. I might as well finish it, even if it sucks.
  6. Hope: You know, I’m starting to get it. I might pull this off after all.
  7. Elation: I did it!
  8. Hubris: That was easy! Next time I’ll do something twice as difficult!

I’m somewhere between steps 5 and 6 on my current project, which is making a character animation engine. (In videogames, this is what makes those 3d characters move and bend their limbs instead of sliding around like statues.) I enjoy it anytime I can see someone make it all the way #8.