I am a newbie in JME.
I have a project in Netbeans where I want to add a 3D animated model. According with the documentation, the model was created using MakeHuman tool and Blender tool to add the animations. The model was exported using Blender and OgreXML. So there is a scene file, a mesh file, and skeleton file for the main mesh, there are also several mesh and skeleton files for componentes of the main mesh.
JME is used to create the needed code (see below) to load the model and animations inside a Netbeans project.
I have the following libraries added to the project:
- jme.jar
- jme3-core.jar
- jme3-desktop.jar
- jme3-lwjgl.jar
- jme3-jogg.jar
- jme3-plugins.jar
- jme3 blender.jar
- j-oog.oggd.jar
- lwjgl.jar
- lwjgl_util.jar
- xmlpull-1.1.3.1.jar
The main mesh is called male_body, as well as the material file and skeleton file.
== Code
package modelviewer;
import com.jme3.animation.AnimControl;
import ele.log.Logger;
import com.jme3.app.SimpleApplication;
import com.jme3.light.DirectionalLight;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Node;
import com.jme3.system.AppSettings;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.jme3.app.state.VideoRecorderAppState;
import com.jme3.light.AmbientLight;
import com.jme3.math.FastMath;
import com.jme3.math.Quaternion;
/**
-
Used to load the model and play the animations
-
@author Trevor Meiss
-
@author Todd Cunningham
*/
public class Viewer extends SimpleApplication implements AnimationListener {/**
- The character model file.
/
public static final String CHARACTER_MODEL_FILE = “Models/male/ogre/male_body.scene”;
/* - Repeat count for animations.
/
public static final int ANIMATION_REPEAT_COUNT = 1;
/* - Special pose used for begin and end.
/
public static final String ENTER = “WalkForwardWave”;
/* - Special pose used between animations.
/
public static final String WAIT = “WaitShort1”;
/* - Main mesh name containing AnimControl with all animation names.
/
public static final String MAIN_MESH_NAME = “male_body”;
/* - Repeat threshold value for repeating the same animation in a row.
/
public static final int ANIMATION_REPEAT_THRESHOLD = 3;
/* - Emotional int values.
/
public static final int MAD_EMOTION = 3, BORED_EMOTION = 2, EXCITED_EMOTION = 1;
/* - List of animations loaded from model file.
/
private ArrayList animations;
/* - The animation controller.
*/
private AnimationController animationController;
public static JFrame window;
public static JPanel modelPanel;private int cycleCount = 0;
private int lastEmotion = -1;public static void main(String[] args) {
Viewer app = new Viewer();
final AppSettings appSettings = new AppSettings(true);
appSettings.setFullscreen(false);
appSettings.setResolution(640, 480);
appSettings.setSamples(8);
appSettings.setVSync(false);
app.setSettings(appSettings);
app.setShowSettings(false);
app.start();
}@Override
public void simpleInitApp() {
setDisplayStatView(false);
setDisplayFps(false);//Disable mouse for changing view flyCam.setEnabled(false); viewPort.setBackgroundColor(ColorRGBA.LightGray); final DirectionalLight dl = new DirectionalLight(); dl.setColor(ColorRGBA.LightGray); dl.setDirection(new Vector3f(-0.1f, -1f, -1).normalizeLocal()); rootNode.addLight(dl); final AmbientLight al = new AmbientLight(); al.setColor(ColorRGBA.LightGray); rootNode.addLight(al); final Node player = (Node) assetManager.loadModel(CHARACTER_MODEL_FILE); rootNode.attachChild(player); animationController = new AnimationController(player); animationController.setAnimationListener(this); String mainSpatialName = null; for (final String spatialName : animationController.getSpatialNamesWithAnimations()) { if (spatialName.startsWith(MAIN_MESH_NAME)) { mainSpatialName = spatialName; } } if (mainSpatialName == null) { return; } //System.out.println("Main mesh: " + animationController.getSpatialNamesWithAnimations()); final AnimControl control = animationController.getAnimControl(mainSpatialName); if (control != null) { //populate the list of available emotions animations = new ArrayList<>(control.getAnimationNames()); //play the first animation animationController.animate(ENTER, 1f, 1f, 1); } stateManager.attach(new VideoRecorderAppState()); //set model view angle cam.setLocation(new Vector3f(0, 2f, 3f)); cam.setRotation(new Quaternion().fromAngleAxis(-FastMath.PI * 0.10f, new Vector3f(1, 0, 0)).mult( new Quaternion().fromAngleAxis(FastMath.PI, new Vector3f(0, 1, 0))));
}
@Override
/**- Updates animation manually.
-
@param tpf time per frame
*/
public void simpleUpdate(float tpf) {
super.simpleUpdate(tpf);
animationController.update(tpf);
}
@Override
/**-
Controls which animation plays after an animation finishes
-
@param animationName name of animation that finished
*/
public void onAnimCycleDone(final String animationName) {
//Read user emotion
int emotion = AnimationSelector.getAnimationCode() / 10;
Logger logs = Logger.getLogger();// 1 = excited, 2 = bored, 3 = frustrated, for debug
//System.out.println("The response code is: " + emotion);// check if emotion is same as last emotion experienced
if(emotion == lastEmotion)
cycleCount++;
else {
cycleCount = 0;
lastEmotion = emotion;
}// do not repeat the same emotion more than 3 times in a row
if(cycleCount < ANIMATION_REPEAT_THRESHOLD) {
//the user gives a correct response
if(SelectorUserEventAdapter.userResult == 2) {
animationController.animate(“HeadNodSlow”, 1f, 1f, 1);
SelectorUserEventAdapter.userResult = 0;
} else if (SelectorUserEventAdapter.userResult == 1) { // the user gives an incorrect response
animationController.animate(“HeadShakeSlow”, 1f, 1f, 1);
SelectorUserEventAdapter.userResult = 0;
}if(emotion == MAD_EMOTION) { animationController.animate("ShrugElbowsBent", 1f, 1f, 1); } else if(emotion == BORED_EMOTION) { animationController.animate("WaveAttention", 1f, 1f, 1); } else if(emotion == EXCITED_EMOTION) { animationController.animate("CelebratoryDance", 1f, 1f, 1); }
} else {
animationController.animate(WAIT, 1f, 1f, 1);
}
}
@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
} - The character model file.
== EndofCode
When I run the program, I got the output below with a lot of warnings (I delete some of them as they are repetitive) and a SEVERE error.
Any ideas on how to solve this issue will be appreciated.
== Output
Aug 24, 2016 5:01:48 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.0 Beta
Aug 24, 2016 5:01:48 PM com.jme3.system.Natives extractNativeLibs
INFO: Extraction Directory: /Users/mchaveze/NetBeansProjects/eleCompanion3D-2
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglCanvas$GLCanvas addNotify
INFO: EDT: Creating OGL thread.
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglCanvas$GLCanvas addNotify
INFO: EDT: Telling OGL to create display …
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglAbstractDisplay run
INFO: Using LWJGL 2.9.3
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglCanvas makePbufferAvailable
INFO: OGL: Pbuffer has been created
Aug 24, 2016 5:01:49 PM com.jme3.renderer.lwjgl.LwjglRenderer initialize
INFO: Caps: [FrameBuffer, FrameBufferMRT, FrameBufferMultisample, OpenGL20, OpenGL21, ARBprogram, GLSL100, GLSL110, GLSL120, VertexTextureFetch, TextureArray, FloatTexture, FloatColorBuffer, FloatDepthBuffer, PackedFloatTexture, SharedExponentTexture, PackedFloatColorBuffer, NonPowerOfTwoTextures, MeshInstancing]
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: null
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: null
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: Intel Inc.
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 2.1 INTEL-10.14.73
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: Intel HD Graphics 4000 OpenGL Engine
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 1.20
Aug 24, 2016 5:01:49 PM com.jme3.system.lwjgl.LwjglTimer
INFO: Timer resolution: 1,000 ticks per second
Aug 24, 2016 5:01:50 PM com.jme3.asset.DesktopAssetManager
INFO: DesktopAssetManager created.
Aug 24, 2016 5:01:50 PM com.jme3.renderer.Camera
INFO: Camera created (W: 200, H: 200)
Aug 24, 2016 5:01:50 PM com.jme3.renderer.Camera
INFO: Camera created (W: 200, H: 200)
2016-08-24 17:01:50.095 java[2677:729869] 17:01:50.095 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API’s in AudioComponent.h.
Aug 24, 2016 5:01:50 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: AudioRenderer supports 64 channels
Aug 24, 2016 5:01:50 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio effect extension version: 1.0
Aug 24, 2016 5:01:50 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio max auxilary sends: 4
Aug 24, 2016 5:01:50 PM com.jme3.material.MaterialDef
INFO: Loaded material definition: Unshaded
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Gui Node)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
Aug 24, 2016 5:01:50 PM com.jme3.scene.Node attachChild
INFO: Child (Statistics View) attached to this node (Gui Node)
Aug 24, 2016 5:01:50 PM com.jme3.material.MaterialDef
INFO: Loaded material definition: Phong Lighting
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: alpha_to_coverage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: colour_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_check
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_func
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: illumination_stage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_clip_planes
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_scissor
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: normalise_normals
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: polygon_mode
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: scene_blend_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: shading
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: transparent_sorting
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: scale
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: colour_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: alpha_to_coverage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: colour_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_check
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_func
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: illumination_stage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_clip_planes
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_scissor
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: normalise_normals
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: polygon_mode
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: scene_blend_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: shading
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: transparent_sorting
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: scale
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: colour_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: alpha_to_coverage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: colour_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_check
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_func
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: illumination_stage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_clip_planes
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_scissor
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: normalise_normals
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: polygon_mode
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: scene_blend_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: shading
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: transparent_sorting
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: scale
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readTextureUnitStatement
WARNING: Unsupported texture_unit directive: colour_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: alpha_to_coverage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: colour_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_check
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_func
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: depth_write
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: illumination_stage
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_clip_planes
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: light_scissor
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: normalise_normals
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: polygon_mode
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
WARNING: Unsupported pass directive: scene_blend_op
Aug 24, 2016 5:01:50 PM com.jme3.scene.plugins.ogre.MaterialLoader readPassStatement
[… MORE SIMILAR WARNINGS
…]
Aug 24, 2016 5:01:52 PM com.jme3.scene.Node attachChild
INFO: Child (male) attached to this node (Models/male/ogre/male_body-scene_node)
Aug 24, 2016 5:01:52 PM com.jme3.scene.Node attachChild
INFO: Child (male_body) attached to this node (male)
Aug 24, 2016 5:01:53 PM com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,6,main]
java.lang.NullPointerException
at com.jme3.scene.plugins.ogre.MeshLoader.applyMaterial(MeshLoader.java:215)
at com.jme3.scene.plugins.ogre.MeshLoader.startSubMesh(MeshLoader.java:284)
at com.jme3.scene.plugins.ogre.MeshLoader.startElement(MeshLoader.java:652)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:380)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.jme3.scene.plugins.ogre.MeshLoader.load(MeshLoader.java:873)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:273)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:408)
at com.jme3.scene.plugins.ogre.SceneLoader.startElement(SceneLoader.java:327)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:357)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.jme3.scene.plugins.ogre.SceneLoader.load(SceneLoader.java:449)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:273)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:408)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:418)
at modelviewer.Viewer.simpleInitApp(Viewer.java:103)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:231)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:129)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:205)
at java.lang.Thread.run(Thread.java:745)
Aug 24, 2016 5:01:53 PM com.jme3.renderer.lwjgl.LwjglRenderer cleanup
INFO: Deleting objects and invalidating state
Aug 24, 2016 5:01:53 PM com.jme3.system.lwjgl.LwjglAbstractDisplay deinitInThread
INFO: Display destroyed.
BUILD STOPPED (total time: 1 minute 36 seconds)