Category Archives: HeroMachine 3

HM3 Journal: Like an onion

Onions have layers and make you cry, which is exactly what HM3 has been all about the last few days. I've been working on getting the layering stuff all worked out, which has been more challenging than I anticipated. Unlike the Minis, in HM3 all items are in the same "bucket". All of the "Headgear" items were in the Headgear bucket, so if you wanted to move a particular Headgear item on top of, say, a Mask, while leaving all the other Headgear items below it, well, too bad. You can't do it.

But in HM3 all the items and the layers they are on stay in the same bucket, so you can put any item on any layer you like. Which is good. But by default, I want it all to layer as you'd expect, with hair on top of the head and belts on top of pants and footwear on top of the feet they're supposed to go on, etc. My goal is, for anyone who wants to just use it with the basic defaults in place, it'll function just like HM2.x, more or less. I thought that would be easy to pull off, but it wasn't.

I finally got the layering stuff working today, though, and to show you the fruits of my labor, here's the latest screen shot:

Notice that I also am about to get "grouping" working, so you can move, scale, and rotate nested items together. In other words, you can move the Hair with the Headgear and the FacialHair and the Mask and the Head all at once, or make them all the same size at once, etc. Pretty neat. It doesn't actually work yet but it will. I swear it!

Anyway, let me know if you see anything hinky or if you think of something it'd be cool to have.

Oh yeah! I forgot I also got a primitive "Zoom" feature working so you can get up close on the head for more of a classic "portrait" sort of look. I need to make it more fully-featured, but the basic idea is there.

HM3: Proportional scaling

With thanks to Fabien for reminding me, I've added a "proportional scale" toggle to HM3 so that you can make an item bigger or smaller without distorting it. Here's a screen shot of the new feature turned on:

proportional-scale

HM3 Journal: Transforming controls

I spent the weekend filling out the "Transform" tab in HeroMachine 3, finally arriving at the following layout of controls:

transform

The main addition to the rotate and scale controls is that you can now manually enter values for scaling an item. These text fields also automatically update while you're scaling the character so you can see what the values are.

The new kid on the block is the "Move item" set of controls. As you can imagine, clicking the various direction arrow moves the current item in that direction. In the middle of the controls are four "multiplier" buttons, so you can move it either 1, 5, 10, or 20 pixels at a time. Of course you can still manually click and drag items around as you like, with the current coordinates automatically displaying while you do so in the appropriate boxes. "Reset Location" will move the item back to the default starting position for everything in that slot.

Still to come on this tab are: grouping controls, so you can (for instance) move/rotate/scale everything in the Body slot all at once; a "reset all" type of button that will reset scale, rotation, and position for the current item with just one click; layering controls; outline options (so you can outline individual items in either black or white -- figuring out how to do that for the full set of colors is a headache I don't need); flipping; some sort of "apply all transformations to ..." button, kind of like the paintbrush in the minis, so you can click on items to apply the current item's scale, position, and rotation. And whatever else y'all think of.

I've gotten a lot accomplished this week. Within the next few days I ought to have enough done to start drawing. The first thing I'll do when that time comes, probably, is to convert all the Zombie and Modern Warrior items over. Luckily that turns out to be pretty easy. Before that can happen, though, I need to nail down the little mini toolbar that gets added to the preview box, currently that's just for show. And I also have to get the preview item tab working properly. I'd say with those completed, I'll have the minimum functionality needed to make drawing worthwhile. The rest of the feature set can get added as I go along.

Let me know if you see something that looks like it won't be good, or if you think of something I ought to add but haven't thought of yet.

HM3 Journal: That crazy RGB beat

I spent all day (literally) fulfilling Eric's request in the comments to my last HM3 update, and am happy to say that the basics of manual RBG and alpha color entry are in for HM3. The screen grab here doesn't have the Alpha channel implemented yet, but it's coming:

newcustomcolorarea

All of the 28 color boxes on this page are custom ones, filled by moi. I can put more boxes in there if you want, though even 28 seemed kind of like overkill. Anyway, from this panel you can mouse over the color gradient until you get the color you want and click, saving it to the custom color swatches (and also filling in the hex and RGB fields with that color's values in case you need a starting point).

You can also manually enter a hex value if you prefer that and save that color swatch.

Or, you can enter Red, Green, and Blue colors in the text boxes and save that color.

Meanwhile you can adjust the alpha (transparency) of any particular color area on the figure as well, so you can get those cool see-through skeleton skins and such. There'll be a text box like the RBG ones next to the Alpha slider for that purpose.

I love this -- you guys make a request, it sounds like a good idea that I can hypothetically figure out, and bam, it goes in the program. That's the kind of live, interactive development you can only get with the web.

So thank Eric if this sounds like something you'll get use out of! And if you won't, you can just ignore it -- you're under no obligation to use any of the new advanced color functions at all if you don't want.

And now, the weekend, woot!

HM3 Journal: The code of many colors

I've spent the last two days trying to get the various tabs working in HeroMachine 3, and it's been more aggravating than I thought it would be. The structure is a little bit different, and chasing down all the changes in hundreds of lines of code can be quite taxing. But I think I have the basics working in terms of loading up sets of items. As a bonus, I can even color things! I only have one set of Zombie heads and one set of Zombie body parts active at the moment (I don't want to do too much until I know exactly how it needs to be set up to work) but here's a taste of things so far:

As you can see, a lot of functionality has been condensed into the larger tab structure. The ability to choose your current slot type and the set of items for that slot will remain present at all times, so no matter what you're doing you can change your targeted item. In the minis, the Rotate and Scale functions were always present to the left of the ad, but for HM3 they're being moved to the new "Transform" tab. I'll probably also have a set of "Move" controls there too, so if (as someone mentioned earlier) you have trouble dragging the actual item where you want it to go, you can use arrows to move them remotely, as it were.

I tell you, what's really struck me this week as I've been bearing down and really grinding out the code is just how fricking complicated this thing is. After you code something and it's all working, you kind of forget about it completely. It just is. But then when you have to go back and tweak and expand it, you realize how the gradual accumulation of complexity can turn bits that were very simple looked at one-at-a-time insanely difficult in aggregate.

Anyway, work is proceeding. I had optimistically thought at one point earlier this week that by Monday I'd be drawing items full time but that's starting to look like a fever-dream.

HM3 Journal: Progress

Today I finally figured out the Array problems I was having and can successfully switch from "dupe" mode to "no dupe" mode, with the appropriate items getting added or deleted at the right time, and the little mini preview toolbars loading/unloading properly in the preview boxes. That's a good step. It turns out I made two stupid mistakes, but thanks to Google I found others who'd done the same thing and posted their fixes*. Hooray Internets!

Next up, assigning functions to the preview toolbars, and then making the slot/set selection objects. As far as I can see those are the last major challenges in the back-end development. Once I get those working, I can bring it all into the actual HM3 application. After that I need to firm up the dynamic on-demand loading of the item files and then, believe it or not, I think I am ready to start drawing, hopefully by the end of the week.

As far as choosing a slot and a set of items for it goes**, it looks like that's going to present in the same fashion it does in HM2.x, with two drop-down boxes. One has the list of slots. Choosing one changes the choices in the second drop-down box, which contains all the possible sets for the current slot. One additional wrinkle will be that when you choose a set, its entry in the list will change to a different color or something to let you know it's loaded. It should stay loaded, so you can have all 10 sets of items for the Headgear slot accessible at the same time, which will be nice. Currently with 2.x, you have to choose just one set of items, so if you choose to load "Standard" headgear, for instance, you can't also have the "Modern" set loaded up.

In essence this would allow you to have every possible item drawn for the application accessible at the same time for full customization. In practice, I bet that's going to slow the application down to a crawl, but it ought to work in theory.

* If you're curious, the two mistakes were a) using a UINT type for the counting variable instead of INT, and b) I needed to be counting from the end of the array backwards, and instead was counting from the beginning going forwards. I'd delete an element from the array and try to move on to the next one, but because I was going the wrong way, the next element got assigned to the counter I'd just used. Frustrating. Counting backwards alleviates that problem. Apparently this is common knowledge for good programmers, which clearly I am not. But if you're going to do that you have to use INT as the variable type to allow the counter to go to -1. Which again is something good programmers know but I don't. Sometimes being a self-taught hack sucks!

** "Slot" refers to the part of the body in question -- "Head", "Torso", "Belt", "Pants", etc.; "set" replaces the former term "genre", and refers to a file containing similarly-themed items for the slot -- "Headgear: Modern Military" or "Gloves: Armored", etc.

HM3 Journal: An array of solutions

When you're developing a new application (at least, when I am), a lot of really boring stuff has to happen in the background before you get to all the sexy bits of clicking buttons and drawing laser guns. Here's one example of that.

Continue reading

HM3 Journal: Duplicity

The biggest challenge so far in designing HeroMachine 3 has been how to let the user control multiple items in the same slot, particularly multiple examples of the same item in that slot. For instance, if you want three Colt .45's on the character, trying to present the controls for them in an intuitive way is hard. Today I've been working on how that might work, and I have a screen shot of the simple test movie:

itemtools-sample

The idea here is that when you click on an item to add it to your character, a tool bar gets added to that item's preview box. At a glance, then, you can tell which items are loaded and which are not, which is a deficiency in the current round of Minis. The first item in the new item tool bar is a number with a little drop-down arrow next to it. The idea on this is that if you have the aforementioned three Colt .45s loaded, clicking on the dropdown will cycle through each one in order, from 1 to 2 to 3 and then back to 1. I would probably add something that would briefly highlight the actual item on the character, too, so you know which number goes with which of the guns.

The next button on the tool bar is a lock/unlock toggle. Clicking that will lock the current item so it doesn't get removed when you add another item from that slot.

Next comes the Delete Item button, which would remove that item from the character (and the toolbar from the preview box, so you know that item's not loaded any more).

Finally you have the Reset button, which will return the item in question to the default rotation, scale, and colors.

The "Dupe" button would go away in this scenario. I think it was confusing and non-intuitive to use, and hope that this new way -- focusing on the items -- might be easier.

What do you think?

HM3 Journal: It figures

I spent the latter half of last week finishing up client change requests on the "Horror Mini" (you remember, the one that was supposed to come out at the beginning of December? Yeah, right) and the Zombie Mini, both of which I think are finally Done with a capital D. I think. Hope.

So the last two days or so have been spent thinking more about HeroMachine 3, and drawing out some figures. I'm a bit torn on this score, as I have the sneaking suspicion that the art style I'm using sucks. It's hard to say from the inside, because I don't know if there's a moment when you as a creative person think "OK, this is my style, that's how I'm doing it from here on out." It seems more organic than that to me, that you just sort of fly along, doing what you do, and eventually you look back and realize you could pick out something you drew from a thousand other pieces, not just because you know you drew it but because it looks like you somehow. And wham, there's your style.

I'm not there, not by a long shot. I think the basic figure of the Minis is decent, and I like the stuff I'm doing as the prizes for the Caption Contests, but I still (at almost 40 years of age, blegh!) don't feel like I've figured out yet how I draw.

It's like this. When I look at the Her-O-Matic, everything in it is very tight and cohesive. And that's because he is using Bruce Timm's style, which is very well thought-out and meticulous in its adherence to its own rules. As any animated series must be, when you're relying on hundreds of people overseas who don't even speak the same language you do to draw all those thousands of cels. You have to have your art direction absolutely rock-solid, and it definitely shows in all of Timm's DC Animated Universe stuff.

So when you look at output from the Her-O-Matic, you know in an instant what you're looking at. And it works. It's absolutely a cohesive illustration.

I don't have that, certainly not in HeroMachine 2, which isn't surprising given that it consists of artwork strung out over the course of almost ten years. Given the (let's be honest) not very good figures the whole thing is based on, a lack of a satisfying portrait is unsurprising.

That's one of the things I'm most excited about for HM3 and with the Minis, that I was getting to start from scratch and rework it all from the ground up. And I have to say, when I see the stuff people have come up with, it definitely looks a lot tighter than any previous version. I can't wait till the Game Contest is over and I can see all the entries, but even just the ones in the gallery UGO put out were pretty nice looking.

Which is all a long, angst-ridden way to show the figures I've come up with so far for possible HM3 usage, and to ask if you're happy with the artwork in the recent minis.

HM3 Journal: Day 4

I spent all morning finalizing the Zombifier applet for the client, and am waiting on one final bit of direction before that's totally done. In the meantime I've been refining the basics of HeroMachine 3.

Continue reading