NetMission Engine

xD

new boss, RIDLEY GIBS! xD

Latest update: animations can be saved and loaded.

In other words, they’re ready to be incorporated into the game engine (but I’ll finish off the remaining features first), and I can demo new features here by posting an animation viewer with working animations.

Back from two weeks worth of trips.

Latest update: scaling parts is possible. It’s not fully supported by the UI yet, but it seems to work otherwise, with a small glitch I’m looking into.

I hadn’t anticipated my model animator becoming such a large and complex system, so I also spent a while refactoring large chunks of it. It still needs more work.

Oh, and the table view of all key frames works well. Key frames can be selected and deleted, too. Next up is being able to move them.

I’ve made several animations now that they can be saved. It’s pretty fun.

I hope I can get this done soon. There are a few features missing that can’t be left out, and then we’ll be able to animate everything from Thardus to Metroid Prime, solving all of the enormous issues we would face if every frame had to be sprited in MS Paint.

You need to have this thing export animations as an animated gif… I could REALLY use that.

For um.

This.

Wow.

I assume you can split those layers into separate parts (like upper leg, lower leg, foot, etc.), right?

GIF exporting would come in handy, but at this point it seems too complicated for me to implement in a timely fashion. Probably the closest I would come is exporting a folder containing PNGs for each frame and then letting the user make a GIF. But no guarantees.

This reminds me – right now there is no support for alpha transparency beyond one transparent background color. adds another feature to the to-do list

Thanks for the suggestion. :smiley:
May I ask what the fusion suit animations would be for?

Not just that… I could use your program to animate for an entire game I’m working on.

I plan on using it to animate the basic sections, then go over the seems of each one to smooth it out.

Back from another trip with more progress.

Full user interface for scaling parts added, and color changes are supported.

The key frame table is enhanced a bunch: key frames can be selected and moved around, the view can be filtered to show only certain types (rotation, scaling, etc.), and you can open up specific key frames to see a graph of the surrounding curve… and then change the slope through those key points.

This model animator is close to being done. I leave for college in a week… My priorities are likely to change in unknown ways. I hope my work on NetMission can continue.

this is the 2D animator you speak of?

Yep.

Here, I’ll use pictures.


User interface for scaling. The mins and maxes of the bars can be adjusted, and the ends are sticky, making it easy to get to integers (like x1 or x2 scaling). The two axes have separate scales, as you can see.

Here’s the table.

From here you can display different types of key points (scaling, rotations, etc.) or all of them at once. You can select them, drag them around to different times, and delete them. Let’s open one of the points up.


Here’s a graph of the curve through one of the key points (red dot). All the slopes through these points are calculated by default as you edit the animation (to make the animation look pretty smooth).

This particular curve is the rotation of one of the parts. So in the animation, the part swings up to that angle, overshoots a little, and then comes back slightly. From this screen, we can edit the slope or speed at which the part travels through that angle.


I say to myself, “I want this part to go really fast through that angle and overshoot it a ton!” This is the result. It took one click.

Yeah, it’s a really obscure detail, but slope-editing is going to be more useful soon when both sides entering the angle can have separate slopes. (like a V or a ^ or a _/, etc.)

Here’s an example: you’re animating Thardus, and you want him to slam his fist into the ground. With the default calculated slope, his fist will overshoot and go into the ground (to make the animation look pretty smooth). But you don’t want smooth–you want it to SLAM! You can compensate a little by adding more key points, but really the solution is to edit the slope when it reaches the ground. Go to the ground really fast, then stop. No problem.

That’s actually possible now, but the user interface doesn’t support it yet. Getting there.

Really good work troid. Mind letting us know what programming language you are using? Dare I ask… C++?

Egad i hate that language. I learned java where everything is in a class… C++ is like a procedural oriented language with classes plopped in. I personally think it’s a mess.

really? i learned C++ first and i hate java xD

Pretty much this.
Actually, I learned Python first and I hate Python.

this so hard

It’s in C++.
Java and C++ each have their time and place. My program probably isn’t the time and place for C++. :stuck_out_tongue:
Oh well.

========== IMPORTANT ==========

I’m starting college soon, as in I’m moving in tomorrow. Even though the 2-D model animator has come a long way and can make pretty awesome animations, I will probably have to put it aside while I settle into a completely different everything. I enjoy working on my engine and have every desire to continue building it.

Edit:
The animator is far enough along that I was planning to make a full animation of a certain creature (not Meta Ridley) that demonstrates all of the features, but I didn’t have time to make that animation. You’ll just have to take my word that it’s really far along, and I’ll plan on making that animation when I can find the time (see above paragraph).

so is the rotation and such done in-house or does there need to be a separate image for each angle of the part? If it IS done in house, does it anti-alias?

Any idea of when this’ll be far enough along to release? I would like to make use of it.

So, as promised, I have updates.
The slope editing screen works perfectly, and I worked on a lot of the GUI stuff to make the whole program a little easier to use (like ‘z’ to cancel a new change). Animated textures (like a gif) are more robustly supported now, and you can change their speed throughout the animation (even backwards). I also set up a directory tree system and other misc. background things.

But yesterday… I made a breakthrough! I finally have a system in which my program can ask the user a question and have them type in an answer!

“But Troid!” you say. “How can we trust you to make an entire game engine when you can’t even do something like that! That takes one line of code in many languages!”

Fear not. Pure win32 programming in C++ is complicated beyond belief. I’ve been searching and searching and I finally found this and immediately snatched it:
http://www.codeproject.com/KB/dialog/w32inputbox_1.aspx
The two essential source files combined total 429 lines of code, saturated with probably-half-deprecated win32 nonsense. Can you see why I’ve been struggling to figure that out on my own? I’m glad somebody else wrote it.

“Troid! Why are you using win32 when there are so many better solutions for making simple windows and dialogs!” I decided on win32 many years ago because I didn’t know any better, and I haven’t really touched that part of the code much since then. I’m going to change to something better eventually, but right now I need to focus on this model animator.

Anyway, this was the last obstacle stopping me from making all the necessary features in my animator. All I need now is some time.

I can’t wait until my next demonstration!

The visual display is all OpenGL, so it can display these models however it wants. Right now the rotation is in-house and it’s anti-aliased.

Marker system in place:

Sure, it’s simple and stupid… but it’ll let you provide useful cues for each frame. This way you don’t have to hard-code into your project which frames to shoot flames or play sounds, or where to spit acid from. So you can change the animation all you want and the engine will respond to your updated cues, as long as you tell it what “playRobotSound” means and such.

Pixel artwork by Dazuro Ghenari, which I blurred after the screenshot was taken.

So I played through Other M for the first time and got 100%, after avoiding spoilers for months and not having a clue what I was getting myself into.

;_;

So I don’t have much of an update because of my time spent on Other M.

I fixed a few glitches that you don’t need to know about, and I wrote in all the code for loading animation-specific textures. (Like if one animation needs MR to blink or something, you can load in a blinking MR face and make him blink at one point)
So far this new code is completely untested unfortunately. My computer will explode when I try it out, I’m sure.

So I only have nine things left on my to-do list. Things like “add undo support in anim/frame-setting screen” and “import/export positions.” And then I can start showing it off. Should be fun.

Nobody understands more than us.

Hi guys. So I’m due for another update. And I’m happy about this one. :smiley:

I combined the “Part Animation Maker,” the “Model Editor,” and the “Model Animator” into one program and revised the old code slightly to use the new file/directory system. It’s much more organized and stable now.

I still have some work to do, but I have a nice break from school coming up. I might record a video of the animator in action sometime. It’s more than usable, and has been for a while, but I want to make sure enough features get implemented so that it can power an entire game like Net Mission or P2D.

Oh yeah and this.
I believe it’s time for a certain 20th letter of the Greek alphabet to mature past its baby steps. Think about it…