Tudiluu liebe Mitprogrammierer
Ich versuch mein kleines JNA Problem kurz zu fassen^^
Worum es geht:
Ich arbeite mit der Kinect Kamera von Microsoft. Die habe ich in das 3D Animationsprogramm MikuMikuDance Integriert (externe Programmierung).
So ist es möglich das Model mit dem eignen Körper zu bewegen.
Die Position der Knochen können in den einzelnen Frames abgespeichert werden SO wird eine Bewegung simuliert.
Da ich aber schlecht selber die Frames weiterblättern kann während ich das Model bin^^ wollte ich ein Java JNA Programm schreiben, welchesdies für mich erledigt.
An und für sich ne einfache abhandlung.
-Vorher die zu speichernedn Knochen anwählen.
-Programm starten
loop(
-Register Butten wird per Mousepress gedückt
- 10 Frames weiter blättern mit Pfeiltasten
)
Nun scheint das Programm aber nicht die gewünschten aktionen auszuführen im MMD... sie waren nicht mal konstant...
Resultate waren:
Manchmal 2 Frames geblättert sonst nix oder Mauscursor zentrierung.
Im netbeans gestartet wird geklickt und der kursor bewegt sich.. dort funktionierts...
Vill hab ich irgendwas übersehen und jemand kann mir da auf die Sprünge helfen..
greez B00bietrap
-delay 333 ms
Ich versuch mein kleines JNA Problem kurz zu fassen^^
Worum es geht:
Ich arbeite mit der Kinect Kamera von Microsoft. Die habe ich in das 3D Animationsprogramm MikuMikuDance Integriert (externe Programmierung).
So ist es möglich das Model mit dem eignen Körper zu bewegen.
Die Position der Knochen können in den einzelnen Frames abgespeichert werden SO wird eine Bewegung simuliert.
Da ich aber schlecht selber die Frames weiterblättern kann während ich das Model bin^^ wollte ich ein Java JNA Programm schreiben, welchesdies für mich erledigt.
An und für sich ne einfache abhandlung.
-Vorher die zu speichernedn Knochen anwählen.
-Programm starten
loop(
-Register Butten wird per Mousepress gedückt
- 10 Frames weiter blättern mit Pfeiltasten
)
Nun scheint das Programm aber nicht die gewünschten aktionen auszuführen im MMD... sie waren nicht mal konstant...
Resultate waren:
Manchmal 2 Frames geblättert sonst nix oder Mauscursor zentrierung.
Im netbeans gestartet wird geklickt und der kursor bewegt sich.. dort funktionierts...
Vill hab ich irgendwas übersehen und jemand kann mir da auf die Sprünge helfen..
greez B00bietrap
Java:
package mmd_jna;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author evul / Edguy123
*/
public class MMD_MovementSaver {
double x;
double y;
public MMD_MovementSaver()
{
}
public static void main(String[] args) {
MMD_MovementSaver mmd = new MMD_MovementSaver();
int x=0, y=20; //y is the time in seconds that ya wanna record in MMD
try
{
Robot robot = new Robot();
} catch (AWTException ex)
{
Logger.getLogger(MMD_MovementSaver.class.getName()).log(Level.SEVERE, null, ex);
}
Scanner in = new Scanner(System.in);
//Here we get the Position of the Register Button in MMD
System.out.println("Open Winamp with the Song in the background. Insert the time you want to record in MMD. After that you have 10 Seconds to get ready.");
//System.out.println("Then press 0 to start:");
y = in.nextInt();
// if (index == 0)
// {
try
{
Robot robot = new Robot();
robot.delay(10000);
System.out.println("Starting Music");
//starts your music in Winamp
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_INSERT);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_INSERT);
//starts recording in MMD
do {
System.out.println("Staring to record");
//Register button with mouse
robot.mousePress(8);
robot.mouseRelease(8);
//System.out.println("mouse pressed");
//moves 10 Frames ... was too lazy to make a loop xD
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
//System.out.println("did work so far");
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.delay(333);
//Register button with mouse
robot.mousePress(8);
robot.mouseRelease(8);
//moves 10 Frames ... was too lay to make a loop xD
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
//System.out.println("did work so far");
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.delay(333);
//Register button with mouse
robot.mousePress(8);
robot.mouseRelease(8);
//moves 10 Frames ... was too lay to make a loop xD
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
//System.out.println("did work so far");
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.delay(333);
x++;
//well... one second is saved... it repeats till it reached the time you did insert by Y
}
while(x<y);
} catch (AWTException ex)
{
Logger.getLogger(MMD_MovementSaver.class.getName()).log(Level.SEVERE, null, ex);
}
//}
}
}
-delay 333 ms
Zuletzt bearbeitet: