MikuMikuDance viewer

And the building of native bullet? Please don’t let me pull everything out of your nose :frowning:

That’s all.

I don’t make Windows 64bit library yet, but the 32bit library works both Window32/64 platforms and doesn’t need libgcc_s.

I tested it on Vista32/64, Windows XP 64.

It works fine on Java Web Start.



[java]

cmake . -DBUILD_SHARED_LIBS=OFF -DBUILD_DEMOS:BOOL=OFF -DBUILD_EXTRAS:BOOL=OFF -DCMAKE_BUILD_TYPE=Release . -G “MinGW Makefiles”

mingw32-make

[/java]

add build.xml in linker section:

[xml]

<linkerarg value="-static"/>

[/xml]

[java]

ant jar

ant build-bullet-natives

[/java]

Hm, no thats only true when the client runs the 32bit java… ok nevermind… if you get 64bit to compile, please report back.

http://www.youtube.com/watch?v=Wcoeac7AXfg

1 Like

Amazing. Wow. I don’t know what else to say, I’m just blown away…:o



Cheers!

~FlaH

Thanks.

I’m working to release MikuMikuDance Viewer.

features:

GLSL skinning

Software skininng(CPU)

GLSL toon shade

Inverse Kinematics (CCD)

physics simulation

PMD Model reader

Animation(VMD file player)

etc.



I found a bug in JME Engine.

infinite loop when using uniform variables larger than 64 bytes(Matrix4Array etc.).

My MikuMikuDance viewer doesn’t work without this patch.



[patch]

diff -r c866168d8aba -r f0cf53715382 engine/src/core/com/jme3/shader/Uniform.java

— a/engine/src/core/com/jme3/shader/Uniform.java Sun Jul 17 19:35:12 2011 +0900

+++ b/engine/src/core/com/jme3/shader/Uniform.java Sun Jul 17 19:36:07 2011 +0900

@@ -223,6 +223,7 @@



while (multiData.remaining() > 0){

ZERO_BUF.limit( Math.min(multiData.remaining(), 16) );

  •            ZERO_BUF.position(0);<br />
    

multiData.put(ZERO_BUF);

}

[/patch]

Keeps looking better for sure. I have to point out though, there’s some scary business going on with her skirt, especially around the 1:05 mark.

http://youtu.be/-MaN0TkUSgs



Java Web Start (Windows, OpenSolaris x86)
http://chototsumoushinp.dip.jp/miku/souko/hakoiri/

@chotosu:

Checked your lastest video!

The singer is really cute and adorable (since I’m a part-time manga artist in the real-life) :stuck_out_tongue:

I have a few questions about :

1 . How can you manage the eyes and emotion of the character and sync them with the routine of the dance ? ← Really need that info for developing my own facial system…

2. Did you use the JME official cinematic package for camera moves ?



P/s: sorry I didn’t read the whole topic but is this project an “open source” one … And where can i find the repository or the source code ?

since I’m a part-time manga artist in the real-life

Great!

1 . How can you manage the eyes and emotion of the character and sync them with the routine of the dance ? ← Really need that info for developing my own facial system…



MikuMikuDance uses:

forward kinematics

inverse kinematics(CCD)

vertex morphing(for skins)

motion editor:

http://en.wikipedia.org/wiki/MikuMikuDance



2. Did you use the JME official cinematic package for camera moves ?



No,it’s hand-operated.



where can i find the repository or the source code ?

I’m sorry please wait a little more.

I am arranging the sources now.



Thanks.

Hi man!!! Sorry for long reply. I had some problems in my real life…



So, I had a try your shader. It look very nice!!







Uploaded with ImageShack.us



The only thing I would add was Specular Intensity. Or switch Specular lighting at all. In some cases it’s very useful.



The main idea of your shader is:

[java]gl_FragColor = (((AmbientSum + DiffuseSum) * diffuseColor) +

SpecularSum2 * specularColor * light.y * 0.8);[/java]



It’s really cool!!!



As far as I understand you use post effect for edges… Is it work as the toon filter in JME? But “EdgeSize” parameter does not work when I tried to switch JME filter on… :frowning:



I also have a try to make edges one pass… I think it’s possible… and fps will be better without filters.

Thank you for your feedback.



As far as I understand you use post effect for edges



CartoonEdgeProcessor.java:

[java]

package projectkyoto.jme3.mmd;



import com.jme3.post.SceneProcessor;

import com.jme3.renderer.RenderManager;

import com.jme3.renderer.ViewPort;

import com.jme3.renderer.queue.RenderQueue;

import com.jme3.texture.FrameBuffer;



/**

*

  • @author kobayasi

    */

    public class CartoonEdgeProcessor implements SceneProcessor{

    RenderManager rm;

    ViewPort vp;

    public CartoonEdgeProcessor() {



    }

    @Override

    public void initialize(RenderManager rm, ViewPort vp) {

    this.rm = rm;

    this.vp = vp;

    }



    @Override

    public void reshape(ViewPort vp, int w, int h) {

    }



    @Override

    public boolean isInitialized() {

    if (rm != null) {

    return true;

    }

    return false;

    }



    @Override

    public void preFrame(float tpf) {

    }



    @Override

    public void postQueue(RenderQueue rq) {

    rm.setForcedTechnique("CartoonEdge");

    rm.renderViewPortQueues(vp, false);

    rm.setForcedTechnique(null);

    }



    @Override

    public void postFrame(FrameBuffer out) {

    }



    @Override

    public void cleanup() {

    }



    }

    [/java]



    initialize example:

    [java]

    CartoonEdgeProcessor cartoonEdgeProcess = new CartoonEdgeProcessor();

    viewPort.addProcessor(cartoonEdgeProcess);

    [/java]



    material setting example:

    [java]

    mat.setFloat("EdgeSize", 0.02f);

    [/java]

I also have a try to make edges one pass… I think it’s possible…. and fps will be better without filters.

One pass algorithm is easy.

But I chose two pass algorithm because two pass algorithm is more beautiful than one pass algorithm.

Hi man again!!!



I tried to make an outline in one pass… well, it looks not so good as 2 passes. It depends of a polygon count of a model. Low poly models look bad.

If you know any other way how to make an outline… it would be good.





I added to your fragment pmd. Green lines are edges:



[java]vec4 colour;

vec3 N = normalize(normal);

vec3 V = normalize(vViewDir.xyz);

if (dot(N, V) < 0.2) colour = vec4(0,0.5,0,1);



else colour = (((AmbientSum + DiffuseSum) * diffuseColor) +

SpecularSum2 * specularColor * light.y * 0.8) ;



gl_FragColor = colour;[/java]









Uploaded with ImageShack.us

Hi.

I released MikuMikuDance for JME3(MMDLoaderJME) ver0.8.

Library source 7,368,359 bytes

http://chototsumoushinp.dip.jp/miku/download/MMDLoaderJME3-0.8.zip

Sample source 455,423 bytes

http://chototsumoushinp.dip.jp/miku/download/MMDLoaderJME3Sample-0.8.zip

Sample source(Hakoirimusume dance and music) 3,608,630 bytes

http://chototsumoushinp.dip.jp/miku/download/MMDLoaderJME3Sample_hakoiri-0.8.zip

test data

http://chototsumoushinp.dip.jp/miku/download/MMDLoaderJME3-testdata-0.8.zip




It moved to sourceforge:

http://sourceforge.jp/projects/mikumikustudio/





System Requirements:

OS Windows, OpenSolaris x86

Tested video cards:

nVidia GeFoce Go 6150, GeForce7600GT, GeForce8400GS, GeForce9600GT

Thanks.

1 Like

I’m unable to download it from where I’m at, but could you please specify what license this material is under? If there are multiple licenses to adhere to make sure to specify that.

The license of source codes is new BSD license.

The materials included in samples are free for non-commercial use.

But it’s necessary to get the permission of the author for commercial use.

The authors are listed in README.txt.

Great. Thanks for sharing man!

Hehe, got that cute dancer dance in my desktop for a while , hey @chototsu , It’s silly to ask : how can I get more song and dance routine for that little angel?

Sorry, one texture file was insufficient.

Please download this and overwrite.

http://chototsumoushinp.dip.jp/miku/download/MMDLoaderJME3-testdata-0.8.zip