@Override
    public void simpleInitApp() {

        flyCam.setMoveSpeed(30f);
        
        DirectionalLight dl = new DirectionalLight();
        dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal());
        rootNode.addLight(dl);

        BitmapFont font = assetManager.loadFont("Interface/Fonts/Default.fnt");
        display = new BitmapText(font);
        display.setSize(font.getCharSet().getRenderedSize());
        display.setText("");
        display.setLocalTranslation(5, context.getSettings().getHeight() - 5, 0);
        guiNode.attachChild(display);

        inputManager.addMapping("SWITCH_MASKS", new KeyTrigger(KeyInput.KEY_SPACE));
        inputManager.addListener(this, "SWITCH_MASKS");

        setupModel();
        createAnimMasks();
        testSerialization();
        playAnimations();
        updateUI();
    }
Tests {@link SingleLayerInfluenceMask}.

The test runs two simultaneous looping actions on separate layers.
<p>
The test <strong>fails</strong> if the visible dancing action does <em>not</em>
loop seamlessly when using SingleLayerInfluenceMasks. Note that the action is
not expected to loop seamlessly when <em>not</em> using
SingleLayerArmatureMasks.
<p>
Press the spacebar to switch between using SingleLayerInfluenceMasks and
masks provided by {@link ArmatureMask}.

@author codex
jme3-examples/src/main/java/jme3test/model/anim/TestSingleLayerInfluenceMask.java