Sunday, July 1, 2012

Ren'py Data Manager

It's a small utility that allows you to back up your save data for Ren'py-based games with ease. Currently only works with Katawa Shoujo, since that's the visual novel I've been playing at the moment ;p But as I get more involved with other VN's and learn how they structure their save files, perhaps I will add support for them as well.

It's really great if you like to play on multiple computers but hate having to restart the game from the beginning. It also features the ability to backup the persistent data (like which extras you've unlocked).

Screenshot:

Ren'py Data Manager screenshot

Download:

Note: Right now the binaries have only been tested on Windows. My Linux system is down at the moment so I have not had the time to test on Linux; however the software is written in C#, which is cross-platform and can be compiled under Linux with mono. The data path is found based on the Windows version of Ren'py though! The data path may be different on a linux system; since I haven't tested it, I don't know what it's supposed to look like. A simple switch(Environment.OSVersion.Platform) should take care of these different cases though.

Saturday, June 30, 2012

screenshots of what I have so far!

No animation just yet. Still trying to figure out the bone positioning and mapping the bone movements to the vertices of the model, with some consultation from my buddy over at AniMiku, who is undertaking a project quite similar to mine, except his is done in DirectX, and actually works at the moment...

I'm not content to just re-build MikuMikuDance in OpenGL instead of DirectX, though. Here's a trio of of screenshots that showcase some of the rather interesting new features you will find in the Concertroid! animation system:

Nicer rendering and animated textures: You won't see this in the preview, because there are no animations, but if you look closely at the skirt and armband textures between this screenshot and the following screenshot, you'll notice that they're different - changing every frame as the software is doing live rendering.

Miku model rendering

Lights-off mode for added effect: This feature was introduced in the 2011 Sapporo VOCALOID concert done by 5pb. and Marza Animation Planet, although they made a few mistakes. The lighting actually (in my opinion) got worse in the 2012 concert, but regardless of that, their biggest mistake was that they did not use it enough. The first few songs featured lights-off mode, and everything else they just lazily faded out. Since Concertroid! is a live rendering system, there will be no need to worry about that. If there is a delay specified within a certain threshold between two songs in the set list, the lights will go off and the model will still appear to be on the stage.

Lights-off mode

Bone view: This is only a feature for me to see the bones as I am developing the animation system, but it is a feature I will keep in Caltron (the underlying .NET rendering library I am developing alongside Concertroid!) in case other developers might find use for it.

Bone view

I hope you've enjoyed this latest update, look forward to more coming in the next few months (hopefully, if I can get these features all sorted out!)

Friday, June 8, 2012

FINALLY...... you'll never believe this

TL;DR: I fixed the problem, here's the result. For those who want to know the dirty details... I was playing around with Caltron, the rendering engine for PolyMo Live! (now Concertroid!) and I started noticing a peculiar bug in the method that applies the textures. Colors in normal GDI are encapsulated by System.Drawing.Color in the .NET framework, a structure I use to store color values in non-Caltron projects (like Universal Editor). These Colors represent color values using four Int32s (something I've never understood, since colors can really only be practically represented in ranges from 0-255). Whether they're four Int32s or four Bytes, their practical range is still only 0-255. Well, OpenGL expects color values to be formatted as percentages, something I knew full well when I started getting into it. However, as I soon learned, I was forgetting a crucial part to the texture applicator. The RGB color values were not getting divided by 255. So, I just added the necessary division, and voilĂ ! The entire thing went black. See, I had forgotten ANOTHER crucial part to the renderer. I had forgotten to flip the light switch. Yes, the light had been configured with the correct color values and position and whatnot, but I had forgotten to glEnable() the light. Anyway, now that I fixed both of the problems (and found an interesting phenomenon where the light position wasn't completely correct and was actually illuminating INSIDE Miku instead of outside her), I feel it's time to update the blog. So enjoy the latest picture! I should have a test program (and complete source code) released soon, but I found another bug where the software will run on my machine but no one else's. I think it's due to the universal-editor library doing something it shouldn't be doing (namely, attempting to read/write from a read/write-protected location)... so I should have that fixed in no time.

Sunday, June 3, 2012

TGA image loader for universal-editor

Believe it or not, those last screenshots showing polymolive displaying (somewhat flawed) textures on the model were not in the de facto TGA file format (TrueVision "Targa"), they were in Windows Bitmap (BMP) format. I had been converting all the textures to BMP format because it was easier to load the BMP files using the .NET System.Drawing API, which (being based on Windows' own GDI system) does not support more esoteric file formats like TGA. Fortunately, now TGA textures load PERFECTLY... though whether they'll display correctly on the model is another story, but the below screenshot proves that the textures load just fine when displayed in a System.Windows.Forms.PictureBox - so any errors with the model textures is an OpenGL issue and NOT a universal-editor issue!!! Texture loading using TGA format

Wednesday, May 16, 2012

universal-editor and polymolive update...

So I finally got around to doing some decent improvements to polymolive... all thanks to frostworx, whose free-software (GPLv3) libmmd library and dunan program helped me to better understand the PMD model file format and how to go about rendering the model (and textures) using OpenGL.

I've improved the implementation of the PMDDataFormat in universal-editor, correcting some minor model flag bugs that caused the DataFormat loader to not load textures properly (so no matter what I did on the rendering side, I wouldn't see the textures because they never got loaded!)

I've also followed the code in dunan/libmmd to render the PMD files, but as I'm translating the code from C/C++ to C#, I might have missed a few important things (like the correct way to P/Invoke the OpenGL library...) I've attached a screenshot of what I have so far.

The first time I implemented texture processing:

First texture implementation

The improvements:

Second texture implementation

As you can see, the "improvements" are not much; the only good thing is that now you can clearly see she's wearing some clothing, lol ^^;;

I still have to figure out why most of the parts are drawing white instead of skin-tone, and why the entire model seems to be too *light*...

if anyone has experience with OpenGL and wants to provide some assistance, please feel free to leave a comment ... much appreciated ^_^

Saturday, January 28, 2012

why did this not get posted sooner?

A little preview of what is to come in the PolyMo Live! renderer.

This is just a test to see if the program could load the model from the Universal Editor ModelObjectModel.

It took quite a bit of work to actually get the PMDDataFormat to load the model file, and to convince OpenGL to display the model properly, but it finally worked out.

Sadly, textures don't work (I can't seem to figure out how the PMDDataFormat associates which textures go with which sets of vertices (meshes)... Anyone know anything about this?)

Take a look, it's pretty neat so far. Once I figure out how textures work, I can figure out how to take my software one step further than the original Polygon Movie Maker..... how to ANIMATE the textures!

Saturday, January 14, 2012

more pictures... yay =^.^=

This time, it's the remote-control interface login window for PolyMo Live!

(It doesn't do anything now. I just put that window together in 5 minutes... haha!)

If the application looks vaguely familiar, it's because PolyMo Live! is simply a bundle of plugins, editors, object models, and data formats for the Universal Editor platform. Notice that the god-awful Ribbon interface is gone. THAT project I've decided to put on the really-far-back burner for now.

Basically, I'm updating the Universal Editor codebase at the same time I'm working on PolyMo Live! It's really tough, finding out what features should be moved into Universal Editor (affecting all other UE platform-based applications as well) and what features should remain specific to PolyMo Live!

Take a look, it's pretty awesome so far. (The Editor has a concert set list file currently open. That Editor is about ... 45 percent complete? Maybe?)