HM3: The name’s the thing

When you save your character image in HeroMachine 3, it will now have the name of your character (if any) as the default file name instead of "hm3-beta". The name comes from the last character you saved or loaded.

Note that this is preparation for the long-awaited "quick save" and "undo" features, the next major code change initiative. Woot!

43 Responses to HM3: The name’s the thing

  1. Captain Kicktar says:

    Yay! Saves time when finishing up, but I can’t wait for an undo and quicksave button, they’ll be really useful.

  2. ams says:

    Just a suggestion, any chance we could get a warning box or confirmation when hitting the delete button? Or maybe move the location of said button, change color? It’s right next to the reverse button and in haste have sometimes mistakenly hit the delete by accident erasing all precious work.

  3. Jeff Hebert says:

    ams, yes, that is definitely on the list. I was going to do it as part of this Undo programming, but now that you mention it, I should probably do that first since it’ll be super easy.

    I’ll probably tackle that right after the morning feeding of the equines.

  4. Anarchangel says:

    Yes. I agree with ams. I’ve wanted that for a very long time. I’ve accidentally hit that delete button a few times now.
    (Glad to know I’m not the only one who does that)

  5. Worf says:

    @Jeff: Were you reading my mind??? I was just about to post on the last HM3 thread that what I really wanted next was the “undo” feature. Glad the coding is coming along great, and I really love the new stability. Haven’t been able to lock it up yet. Keep up the good work.

    on a semi-side note, are we getting ready for beta status?

  6. Nick Hentschel says:

    This will be nice; trying to sort out (and rename) all of those “beta4” and “beta5” items in my Downloads box was a little annoying. Thanks again!

  7. The Civillian says:

    Jeff! or anyone els, more importantly IMP!!! check this out!! about 13sec in….

    LDM was stolen from IMP!!! along with other characters prob!

  8. The Civillian says:

    more stolen characters!! all of wich were finalists in a character contest at one point!!

  9. The Civillian says:

    no worries, i fixed there wagon.

  10. NEON_N64 says:

    Undo? Wow, that would be really really cool 🙂

    Seriously, you’re doing a great Job with HM3 Jeff.

  11. spidercow2010 says:

    Woot! indeed.

  12. Jake says:

    Sounds great, Jeff. I’ve noticed some of the changes that you’ve done that I’m pretty impressed with, such as how changing between items keeps the same layer. That was always a minor annoyance.

    Currently when I save a character as a JPG or PNG, it kind of corrects the orientation of the character so that the head is always in the same position. Do you think you could change that so it saves just what is seen on the window at that time? Usually, it isn’t a big deal, but when I do smaller characters, I like to orient them lower in the picture to show the difference in size.

  13. CPrime says:

    Really, guys? I’ve never hit the delete button. I guess I’m just more focused than the rest of you…

    Ok, I’m full of crap. I’ve hit the delete button too.

  14. Fyzza says:

    I’m having the same problem Jake is having, so I’m having to manually print screen when I save the image if I have any items that stray out of the default position which I want to keep in the picture.

  15. Jeff Hebert says:

    Jake and Fyzza, I don’t understand what you’re saying. Can you post an example, maybe, of how it SHOULD look and then how it looks on export? Or tell me what steps I would take to replicate it within the actual app?

  16. Jeff Hebert says:

    OK, the “Are you sure you want to clear all” dialog window is now live.

  17. MetallicaFan says:

    Any possibility of a lock item button? Lock multiple items together so that if you move one you move both. Could be useful for positioning custom items.

  18. Jeff Hebert says:

    That would be a neat feature, MetallicaFan, but it would be a fairly large undertaking and is almost definitely outside the scope of work I want to undertake for the initial release.

  19. ams says:

    Thanks for the clear all dialog window. Great stuff!

  20. CPrime says:

    A grouping feature would be incredible to have, but yeah I totally see what Jeff is saying. I’m not even a programmer but I can totally imagine how complicated it would be to do.

  21. Jake says:

    Sorry this has taken me so long.

    This is Chunko done with print screen

    This is Chunko oriented at exactly the same place, but the second I save it directly using Hero Machine, it reorients the character up.

    It does this for every character, but is rarely an issue unless they are a different size.

  22. Jeff Hebert says:

    Wow, that is interesting, Jake. Thanks so much for posting them. So let me get this straight, originally you’d moved the head down quite a bit, right? Did you do that with just moving it, or did you build the body and scale it all down from there?

  23. Me, Myself & I says:

    Well I’ve been a little distracted lately and not around interacting here as much as I’d like for the past couple of months due to working in two careers at the moment. Unfortunately the two careers at once will persist for a while until I phase the old one out in about nine months.

    One of the reasons that I haven’t been entering into the contests was that I commit a significant portion of time to an image (the old perfectionist vs. anal retentive dichotomy). Even then I would be willing to stay up to the wee hours or do whatever was necessary because I enjoy making the art (there I said it, HM creations can definitely be considered art in my opinion).

    The issue I’ve had of late is that I could not justify spending the time lately if HM3 was just going crash on me part way through. Considering the amount of detail I usually include, this would happen in almost every image I made regardless of the precautions taken. So I was planning to be patient and wait things out a little until the rewrite happens and some of the bugs were worked. Ideally just until I could avoid the extra time killer the bugs can be. Don’t get me wrong, I wasn’t giving up on HM3 at all as giving up isn’t really in my nature. Just waiting a while.

    I for one am very pleased to see that this phase of coding has begun. Frankly I’m impressed with the speed at which Jeff is making progress! I’m excited enough that I am going to give it another shot this weekend and see that I can come up with for the contest, despite time constraints.

    I just wanted to take a drawn out moment to thank Jeff for his dedicated efforts, ingenuity and vision. Thank you for seeing this through Jeff!!!

  24. Jeff Hebert says:

    OK, I tried replicating this and I can’t. If I add a new standard male body, scale it way down vertically, then add a head and drag it down to fit, and add the floor and wall like you have, it all prints out as a PNG properly using either setting.

    I’m a little stumped, does anyone else have the steps required to replicate the bug?

  25. Jeff Hebert says:

    Thanks MMI, I am glad you stuck with me. Frankly I am a bit surprised at how quickly the debugging is proceeding as well — I thought I was looking at a serious, ground-up total rewrite, but in reality it’s been eminently tweakable. For which I am profoundly grateful!

    I am looking forward to you putting it through its paces, hopefully you can stress it enough to break it so I have something new to fix 😉

  26. Me, Myself & I says:

    Working on it now Jeff; I’ll see what I can do to break it :). I did just get an idea for another little feature. Don’t know how difficult it would be to add though.

    Can an option be added to select “Multiples for All” Categories instead of having to select it every time?

  27. Worf says:

    @Jeff: I experienced something similar to the problem Jake reported. I wanted to send you my .sol file w/instructions but I can’t find your e-mail…

  28. Me, Myself & I says:

    Worf (27) near the top right of this screen you will see an icon that looks like a white envelope on a purple background. When you place your cursor over it the words “Contact Us” appear. Send your instructions there and Jeff will get it.

    Jeff (25) Broke it. It will take me a couple days to get the instructions ready to explain how and where it occurred for me. I’ll briefly describe the symptoms now though;

    Selecting an item a second time(when multiples is already selected) does not always result in the item appearing. Selecting a third time makes the item appear. Once you’ve arranged the third item the way you want it you can scroll through to the second item and it will then appear and act normally. It can happen on the third, fourth, or thirteenth (etc.) time you select the same item as well.

  29. Worf says:

    @MMI: Thanks, but I can’t send the .sol file that way…

    @Jeff: Meanwhile here’s a graphical explanation…

    This is the HM3 screen just before I export to png:

    Here is the saved png:

    And here is the HM3 screen after the save:

    Notice that in both the saved png and the screen after the tip of the trident is off the screen, but not in the before screen.

    Hope that helps, otherwise I can try to get you the .sol file….

  30. Myro says:

    MMI (28): I think I had the same thing happen to me a couple days ago, but I didn’t think anything of it at the time. After all, I had already made one mistake that night by not paying attention, I was somehow convinced it was my fault.

    Jeff (24): Now that I’m back home in front of my computer, I’m pretty sure I can replicate the problem that Jake has been having. With some luck, I’ll have a recipe card available for you in your mail to show you how it happened, but what it boils down to is that if you click on “All Items” in the “Grouping For Scale, Rotate & Move” section of the Transform tab, it screws things up.

  31. Jeff Hebert says:

    My direct email is but Myro put together a nice PDF explaining the issue.

    Basically when you use the “All” setting, your’e not just moving each item at once, you’re changing the scaling or position of the “shell” movie clip that holds all the items within it.

    But the export feature ALSO does that — it sets the scale of the holding movie clip to whatever is appropriate for the size you chose, then once it’s done exporting the image it scales it all back to the default settings.

    Bottom line, I’ll probably have to change the way the “All” feature works, so instead of messing with the holding movie clip it cycles through and moves each item individually, one at a time. That will mess up rotation, but movement should work all right.

    For that not to happen, you’ll have to rotate or move each item either as part of a group below “all” or individually, then they should export properly.

  32. CPrime says:

    My head hurts…

  33. Panner says:

    Bugs. It’s what’s for dinner. These are not related to exporting, but I’ll post them here anyway.

    Staying Single
    Description: Makes a Slot enter a bugged mode where all added items become sticky.
    Severity: Mild

    -Start hm3a15 clean
    -Load Body-FemaleStandard
    -Switch to ‘Multiples’
    -Add two torsos (second item)
    -Switch to ‘Singles’
    -Click on any preview box to add an item. The item will be sticky. Stickiness is limited to the Body slot.

    All items added from the current slot will be sticky. Saving and reloading (soft load works) will convert the sticky items to real items. Contrary to the old sticky bug, this one is ‘WYSIWYG’. When loading the character, it will look exactly like it did when saved (no items switched).

    Ghost Wolf in the Machine
    Description: Creates a control bar that cannot be deleted, and without a corresponding item.
    Severity: Very mild

    -Start hm3a15 clean
    -Load Companion-Standard
    -Switch to ‘Multiples’
    -Add two wolves
    -Click the arrow on the control bar. The box should now read ‘1’.
    -Click the ‘X’ on the control bar. The box should now read ‘0’.
    -Click the ‘Clear all items’ button and confirm. The wolves will disappear, but a control bar will remain.

    The ghost wolf doesn’t really do any harm other than causing confusion. If a file is saved with a ghost wolf it will disappear upon clean load of that file. Soft load will not remove a ghost wolf.


    Now, if you should happen to have both a ghost item and a sticky item of the same item, that’s when it gets interesting, because sometimes two wrongs apparently make a right! By first making a ghost and then creating an identical item with the intent of making it sticky, the presumably sticky item will actually be almost fully functional!

    The sticky ghost will reside in item number zero, and can therefore not be selected by clicking the arrow on the control bar. Selecting it by clicking it in the workfield works perfectly though, and it can then be dragged, rotated, relayered, and many other things that ordinary stickies don’t allow. Saving and soft loading will turn the sticky into a normal item but keep the ghost (this is consistent with above behavior). Hard loading will turn the sticky into a normal item and delete the ghost, leaving one item that looks exactly the way it was saved (again, this is consistent).

  34. Jeff Hebert says:

    Panner, you’re a stud. Thanks again for being so thorough, with this information I am sure I can track down and squash these bugs.

    In fact, by way of thanks I am going to make an Official Judgement and award you the equivalent of a Contest winning prize — you can pick any item you like and I’ll include it in HM3. Or, you can choose to have your portrait done for HM3 instead. Or, finally, if you like you can choose a subject and I’ll do a Sketch of the Day style illustration for you (you pick the concept and I run with it).

    Thanks again for the info, you’re been enormously helpful.

  35. Panner says:

    Wow, thanks Jeff, that’s mighty generous of you. You know, chasing bugs is sort of fulfilling in itself – contributing to making the hm3 experience more pleasant. That doesn’t mean I’m not going to take you up on that offer, of course, since there are a couple of pieces I’ve been wanting. I’m going to go with something I think many people can enjoy – a Stonehenge background!

    I’ll leave the details to you, but I think this makes a nice reference pic –

    You’re the better judge here, so go with whatever works the best. Thanks again!

  36. Jeff Hebert says:

    Ooo, good choice! I’ve added it to the list.

  37. Panner says:

    MMI, I read through your document guide, and allow me to shed some light on what you call Issue #1. When placing a new item, the item inherits properties from the most recently placed item from the same Slot (or default values if there are none). Most properties are inherited, including position, scaling, colors, patterning etc.

    (Side note to Jeff, if it’s easy to remove inheriting masking, that’d be pretty awesome)

    However, the alpha values are not inherited properly. This is a bit unintuitive, but I’ll explain as best I can. When a new item is added, two sets of data is created. One set for the image (what you see in the workfield) and one set that you can see in the color tabs. I’ll call these sets the Image data and Actual data. Say you have a ‘Parent’ item with alpha values A1, A2, AL (for color 1, 2 and Line, value range is [0, 1]) and you add a new item. This is how alpha values are inherited as of hm3a15:


    alpha 1 = A1
    alpha 2 = A2
    alpha L = AL

    Child Image data:

    alpha 1 = A1*A2
    alpha 2 = A2
    alpha L = AL*A2

    Child Actual data:

    alpha 1 = A1
    alpha 2 = 1.00
    alpha L = AL

    As you see, inheriting from a parent with very low alpha 2 will make the child image practically invisible. As soon as you mouse over the new item in the workspace, HM will realize it screwed up and change the Image data to the Actual data. This is not always practical if, for example, a large transparent object is covering the workspace. And the Actual data is wrong anyway.

    Ugh, that took way too long to map out. And I’m supposed to be rearranging furniture. Well screw that.

  38. Me, Myself & I says:

    Panner (38) I’ve noticed before how the transparency of a subsequent item doesn’t copy accurately as you describe. That doesn’t explain why an item might dissapear but selecting it another time or two makes it then appear.

  39. Panner says:

    MMI: No, it doesn’t. I’m thinking it might be related, since it presents pretty much the same – invisible item that later appears for some reason.

  40. Jeff Hebert says:

    Thanks again, Panner, that was great info. I figured out the bugs causing the two behaviors and have fixed them. All alpha values now transfer correctly to new items. And you can now select two of the same item, change to “Single”, and pick any other item and the previous ones are correctly removed.

    Interestingly the alpha bug has been there a long time and I had no idea. On that one, I just messed up the object that was supposed to be inheriting the alpha property for color2 — it was getting applied to the entire item instead of just color2. Stupid.

    The other one was also a fairly simple fix, I just had to add a check if the tool bar actually existed before trying to remove it.

    Thanks again for the clear troubleshooting and bug report, it made both fixes super simple to find and implement.

  41. Jeff Hebert says:

    MMI, thanks so much for the very clear and informative bug reports!

    The first problem (moving an item 600 pixels down, then adding another one and being unable to select it) basically arises because the way I built this originally, you could only drag items around by the mouse. With that, I had to have a bounding box limiting where you could move it — basically meaning you couldn’t drag anything past the edges of the box where the character and items appear. Later I added the manual “Click the arrows to move the object” feature, and there was no limit on this. So whereas before you could only have moved the background in question down 100 pixels or so, now you can move it wherever you want.

    However, when you click on an object, the old bounding box rules apply, and weirdness happens when you are clicking on an object that’s already outside the bounds of what that part of the program thinks is possible.

    The easiest solution is for me to remove the bounding box limitation on clicking and dragging, which is probably what I will do.

    The second problem, which I believe is essentially “I don’t want masking to go away when I add another object”, can be resolved by, as Panner suggested, just making masking non-transferable. So in other words, if you have a Background that’s masked to some other object, then you add a second Background, it should appear unmasked.

    Is that the behavior you would like to see as well? My impression is that most people would prefer that to the current method of having your previously masked item automatically unmasked but I didn’t want to just do that without checking first.

  42. Panner says:

    Jeff: I suppose there are both advantages and drawbacks to changing masking. The advantages are that you don’t sometimes need to go back and remask (with relayering as needed) a ton of items when you want to add a new one. The drawback is that it’s practical to test items in Singles mode without needing to remask every time, for example when choosing a weapon (masked to the hand).

    I’d say to let it work differently in Singles and Multiples modes, but that’s just confusing. In conclusion, I vote for changing masking to non-transferable.