| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>jMonkeyEngine SDK: Scene Composer :: jMonkeyEngine Docs</title>
- <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/sdk/scene_composer.html">
- <meta name="keywords" content="documentation, sdk, scene, node, asset, light, effect">
- <meta name="generator" content="Antora 2.3.3">
- <link rel="stylesheet" href="../../_/css/site.css">
- <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
- <meta property="og:description" content="jMonkeyEngine SDK: Scene Composer">
- <meta property="og:title" content="jMonkeyEngine Docs">
- <link rel="stylesheet" href="../../_/css/site-extra.css">
- <link rel="stylesheet" href="../../_/css/vendor/docsearch.min.css">
- <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
- <link rel="icon" href="../../_/img/favicon.ico" type="image/x-icon">
- </head>
- <body class="article">
- <header class="header">
- <nav class="navbar">
- <div class="navbar-brand">
- <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
- <img alt="" src="../../_/img/jMonkeyDocLogo.png" height="32" type="image/x-icon">
- </a>
- <div class="navbar-item hide-for-print">
- <input type="text" placeholder="Search docs..." id="search-input"/>
- </div>
- <button class="navbar-burger" data-target="topbar-nav">
- <span></span>
- <span></span>
- <span></span>
- </button>
- </div>
- <div id="topbar-nav" class="navbar-menu">
- <div class="navbar-end">
- <div class="navbar-item theme-switch-wrapper">
- <label class="theme-switch" for="checkbox">
- <input type="checkbox" id="checkbox" />
- <div class="slider round"></div>
- </label>
- </div>
- <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
- </div>
- </div>
- </nav>
- </header>
- <div class="body">
- <div class="nav-container" data-component="docs" data-version="master">
- <aside class="nav">
- <div class="panels">
- <div class="nav-panel-menu is-active" data-panel="menu">
- <nav class="nav-menu">
- <h3 class="title"><a href="../documentation.html">Docs</a></h3>
- <ul class="nav-list">
- <li class="nav-item" data-depth="0">
- <ul class="nav-list">
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="../documentation.html">Getting Started</a>
- </li>
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.3.2-stable">JavaDoc</a>
- </li>
- <li class="nav-item" data-depth="1">
- <button class="nav-item-toggle"></button>
- <a class="nav-link" href="../jme3.html">jMonkeyEngine 3</a>
- <ul class="nav-list">
- <li class="nav-item" data-depth="2">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">Beginner Tutorials</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_node.html">Hello Node</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_asset.html">Hello Asset</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_main_event_loop.html">Hello Main Event Loop</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_input_system.html">Hello Input System</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_material.html">Hello Material</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_animation.html">Hello Animation</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_picking.html">Hello Picking</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_collision.html">Hello Collision</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_terrain.html">Hello Terrain</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_audio.html">Hello Audio</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_effects.html">Hello Effects</a>
- </li>
- <li class="nav-item" data-depth="3">
- <a class="nav-link" href="../jme3/beginner/hello_physics.html">Hello Physics</a>
- </li>
- </ul>
- </li>
- <li class="nav-item" data-depth="2">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">Intermediate Tutorials</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="3">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">Concepts</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/best_practices.html">Best Practices</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/simpleapplication.html">Simple Application</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/features.html">Features</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/optimization.html">Optimization</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/faq.html">FAQ</a>
- </li>
- </ul>
- </li>
- <li class="nav-item" data-depth="3">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">Math Concepts</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/math_for_dummies.html">Math For Dummies</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/math.html">Math</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/math.html">More Math</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/rotate.html">Rotate</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/math_video_tutorials.html">Math Video Tutorials</a>
- </li>
- </ul>
- </li>
- <li class="nav-item" data-depth="3">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">3D Graphics Concepts</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/scenegraph_for_dummies.html">Scenegraph for Dummies</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/beginner/hellovector.html">Hello Vector</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/terminology.html">Terminology</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/how_to_use_materials.html">How to Use Materials</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/intermediate/transparency_sorting.html">Transparency and Sorting</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/external/blender.html">Importing from Blender</a>
- </li>
- <li class="nav-item" data-depth="4">
- <a class="nav-link" href="../jme3/external/3dsmax.html">Importing from 3DS Max</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="../logo.html">Logo Usage</a>
- </li>
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="../bsd_license.html">License</a>
- </li>
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="../github_tips.html">Github Tips</a>
- </li>
- </ul>
- </li>
- <li class="nav-item" data-depth="0">
- <button class="nav-item-toggle"></button>
- <span class="nav-text">SDK</span>
- <ul class="nav-list">
- <li class="nav-item" data-depth="1">
- <a class="nav-link" href="../sdk.html">jMonkeyEngine SDK</a>
- </li>
- </ul>
- </li>
- </ul>
- </nav>
- </div>
- <div class="nav-panel-explore" data-panel="explore">
- <div class="context">
- <span class="title">Docs</span>
- <span class="version">master</span>
- </div>
- <ul class="components">
- <li class="component is-current">
- <span class="title">Docs</span>
- <ul class="versions">
- <li class="version is-current is-latest">
- <a href="../documentation.html">master</a>
- </li>
- </ul>
- </li>
- <li class="component">
- <span class="title">Wiki UI</span>
- <ul class="versions">
- <li class="version is-latest">
- <a href="../../wiki-ui/index.html">master</a>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- </div>
- </aside>
- </div>
- <main class="article">
- <div class="toolbar" role="navigation">
- <button class="nav-toggle"></button>
- <nav class="breadcrumbs" aria-label="breadcrumbs">
- <ul>
- <li><a href="../documentation.html">Docs</a></li>
- <li><a href="scene_composer.html">jMonkeyEngine SDK: Scene Composer</a></li>
- </ul>
- </nav>
- <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/docs/modules/ROOT/pages/sdk/scene_composer.adoc">Edit this Page</a></div>
- </div>
- <div class="content">
- <article class="doc">
- <h1 class="page">jMonkeyEngine SDK: Scene Composer</h1>
- <div id="preamble">
- <div class="sectionbody">
- <div class="paragraph">
- <p>SceneComposer allows you to edit scenes stored in j3o files and add content or modify existing content. Please note that the Scene Composer and Explorer are a work in progress and will provide more powerful functions in the future. Also other plugins will allow creation of more specific game type scenes in jMonkeyEngine SDK.</p>
- </div>
- <div class="paragraph">
- <p>Most buttons in the SceneComposer have tooltips that appear when you hover the mouse over the button for a short while.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="mousecursor-controls"><a class="anchor" href="#mousecursor-controls"></a>Mouse/Cursor Controls</h2>
- <div class="sectionbody">
- <div class="ulist">
- <ul>
- <li>
- <p>Left-click and drag to rotate the camera around the cam center</p>
- </li>
- <li>
- <p>Right-click and drag to move the cam center</p>
- </li>
- <li>
- <p>Scoll the mouse wheel to zoom in/out the cam center</p>
- </li>
- <li>
- <p>Left-click a geometry to select it</p>
- </li>
- <li>
- <p>Right-click a geometry to place the cursor</p>
- </li>
- </ul>
- </div>
- <div class="paragraph">
- <p>In the SceneComposer toolbar are buttons to snap the camera to the cursor, snap the cursor to the selection and etc.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="creating-a-scene-file"><a class="anchor" href="#creating-a-scene-file"></a>Creating a scene file</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p>The jMonkeyEngine SDK stores the scene in a j3o file, this binary file contains the whole scenegraph including all settings for spatials, materials, physics, effects etc. Textures are not stored in the j3o file but as absolute locators to the textures.</p>
- </div>
- <div class="paragraph">
- <p>To create a blank scene file do the following:</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>Right click the “Scenes folder in your Project Assets and select “New→Other</p>
- </li>
- <li>
- <p>Select “Scene to the left then select “Empty jME3 Scene and press “Next</p>
- </li>
- <li>
- <p>Enter a file name for your scene like “MyScene and press “OK</p>
- </li>
- </ol>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="loading-the-scene"><a class="anchor" href="#loading-the-scene"></a>Loading the scene</h2>
- <div class="sectionbody">
- <div class="imageblock right">
- <div class="content">
- <img src="../_images/sdk/jmonkeyplatform-docu-2.png" alt="jmonkeyplatform-docu-2.png" width="421" height="298">
- </div>
- </div>
- <div class="paragraph">
- <p>To open a scene</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>In the Project Explorer, right-click the *.j3o file of the scene</p>
- </li>
- <li>
- <p>Choose “Open in SceneComposer</p>
- </li>
- </ol>
- </div>
- <div class="paragraph">
- <p>Now the SceneComposer window opens at the bottom and displays the scene in the SceneViewer. The SceneExplorer displays the contained scene graph as a tree and when selecting a node, you can edit the properties of the corresponding scene graph object in the Properties window.</p>
- </div>
- <div class="paragraph">
- <p>For now, you only see the cursor in the SceneViewer and a single node (the root node of the scene) in the SceneExplorer.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="adding-light-to-the-scene"><a class="anchor" href="#adding-light-to-the-scene"></a>Adding light to the scene</h2>
- <div class="sectionbody">
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>Select the root node in the SceneExplorer</p>
- </li>
- <li>
- <p>Select “Directional Light in the SceneComposer window</p>
- </li>
- <li>
- <p>Press the “+ button in the SceneComposer window</p>
- </li>
- </ol>
- </div>
- <div class="paragraph">
- <p>A directional light has been added to your scene, you can see it in the SceneExplorer.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="adding-effects-etc-to-the-scene"><a class="anchor" href="#adding-effects-etc-to-the-scene"></a>Adding effects etc. to the scene</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p>You can add a variety of special objects with the SceneComposer, including lights, effects, audio etc.</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>Select root Node in the SceneExplorer</p>
- </li>
- <li>
- <p>Select the object type in the list displayed in the SceneComposer window</p>
- </li>
- <li>
- <p>Press the “+ cursor button in the SceneComposer window</p>
- </li>
- </ol>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="adding-models-to-the-scene"><a class="anchor" href="#adding-models-to-the-scene"></a>Adding Models to the scene</h2>
- <div class="sectionbody">
- <div class="imageblock text-right right">
- <div class="content">
- <img src="../_images/sdk/jmonkeyplatform-docu-3.png" alt="jmonkeyplatform-docu-3.png" width="421" height="298">
- </div>
- </div>
- <div class="paragraph">
- <p>You can directly import 3d models to your scene so that they will be part of your scene file. To be able to import for example an OgreXML file, first export it from your 3D editor to a separate folder in the assets folder of your project (e.g. assets/Models/MyModel/).</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>Place the SceneComposer cursor where you want the model to be</p>
- </li>
- <li>
- <p>Select the parent Node for the model in the SceneExplorer</p>
- </li>
- <li>
- <p>In the Project Explorer right-click the model file you want to import</p>
- </li>
- <li>
- <p>Choose “Add to SceneComposer</p>
- </li>
- </ol>
- </div>
- <div class="paragraph">
- <p>Note that when importing a model the texture paths are stored absolute, so the folder you import the model from will later only be a textures folder because the original model file is not included in the release.</p>
- </div>
- <div class="paragraph">
- <p>Also note that when adding models this way, changes in the original model file will not be reflected in the scene file as its a complete copy of the original file. If you change the original model, delete the models node from the scene and import it again.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="linking-models-to-the-scene"><a class="anchor" href="#linking-models-to-the-scene"></a>Linking Models to the scene</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p>You can also link models/objects into your scene, this way they are reloaded dynamically from the other/original file.</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>Place the SceneComposer cursor where you want the model to be</p>
- </li>
- <li>
- <p>Select the parent Node for the model in the SceneExplorer</p>
- </li>
- <li>
- <p>In the Project Explorer right-click the model file you want to link</p>
- </li>
- <li>
- <p>Choose “Link in SceneComposer</p>
- </li>
- </ol>
- </div>
- <div class="paragraph">
- <p>Note that when linking objects this way, you cannot edit them as part of the scene. To change the model you have to change the original j3o file.</p>
- </div>
- <div class="paragraph">
- <p>Also note that although it its possible to directly link external model files (OgreXML, OBJ etc.), this is not recommended. Convert the original file to a j3o file by right-clicking it and selecting “Convert to jME Binary before linking it. This is required because the original model files are not included in the release version of the application.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="saving-the-scene"><a class="anchor" href="#saving-the-scene"></a>Saving the Scene</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p>When a scene has been changed, press the “save button in the main toolbar or press [Ctrl-S] / [Apple-S] to save it.</p>
- </div>
- </div>
- </div>
- </article>
- <aside class="toc sidebar" data-title="Contents" data-levels="2">
- <div class="toc-menu"></div>
- </aside>
- </div>
- </main>
- </div>
- <footer class="footer">
- <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
- </footer>
- <script src="../../_/js/vendor/docsearch.min.js"></script>
- <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
- <script>
- var search = docsearch({
- apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
- indexName: 'jmonkeyengine',
- inputSelector: '#search-input',
- autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
- algoliaOptions: { hitsPerPage: 10 }
- }).autocomplete
- search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
- function focusSearchInput () { document.querySelector('#search-input').focus() }
- if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
- </script>
- <script src="../../_/js/site.js"></script>
- <script async src="../../_/js/vendor/highlight.js"></script>
- </body>
- </html>
|