- Notifications
You must be signed in to change notification settings - Fork3
An editor for jMonkeyEngine 3-D models (code has New BSD license)
License
stephengold/Maud
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Maud is an editor for the animated 3-D models used withthe jMonkeyEngine (JME) game engine.
Anticipated uses:
- customize models created by others
- develop animations from motion-capture data
- copy/retarget animations between models
- convert models in other formats to native J3O format
- troubleshoot issues with models (or with the model-asset pipeline)
Summary of features:
- load models from local filesystems, JAR/ZIP archives, or HTTP servers
- import models fromBlender/glTF/IQE/Ogre/Wavefront/Xbuf and save to native J3O format
- import animations fromBiovision Hierarchy (BVH) files
- visualize animations, axes, bones, bounding boxes, lights,mesh vertices, physics objects, and skeletons
- merge models or geometries
- split geometries
- apply transforms to meshes or child spatials
- browse animations, bones, keyframes, lights, material parameters,material-parameter overrides, mesh vertices, physics objects,physics shapes, scene-graph controls, spatials, tracks, and user data
- play animations forward/backward at various speeds and pause them
- create new animations from poses or by altering/mixing existing animations
- retarget bone animations from one model to another using skeleton maps
- create new attachments nodes, lights, physics controls, scene-graph controls,scene-graph nodes, and user data
- insert keyframes into animations and bone tracks
- rename animations, bones, lights, spatials, and user data
- change animation speeds/durations
- behead/mix/truncate animations
- reduce/resample/wrap animations and tracks
- translate animations for support or traction
- delete animations, keyframes, lights, material parameters,material-parameter overrides, scene-graph controls, spatials, tracks,and user data
- modify bone/spatial transforms (translation, rotation, and scale)
- modify batch hints, cull hints, lights, material parameters,material-parameter overrides, render-queue buckets, shadow modes, and user data
- review the edit history and undo/redo edits
- customizable mouse-button assignments and keyboard shortcuts
Java source code is provided undera 3-clause BSD license.
Maud was designed for a desktop environment with:
- a wheel mouse and
- a display at least 640 pixels wide and 720 pixels tall.
- How to download and run a pre-built release of Maud
- How to build and run Maud from source
- Using Maud
- 3-D Models
- Bones
- Animations
- The displayed pose
- The skeleton map
- The edit history
- Scripting
- Command-line arguments
- External links
- Wish list
- Conventions
- History
- Acknowledgments
- Install a 64-bitJava, if you don't already have one.(Maud no longer supports 32-bit Java.)
- Point the
JAVA_HOME
environment variable to your Java installation.(In other words, set it to the path of a directory/foldercontaining a "bin" that contains a Java executable.The path might be something like "C:\Program Files\Java\jre1.8.0_301"or "/usr/lib/jvm/java-11-openjdk-amd64/" .)
- using Bash or Zsh:
export JAVA_HOME="
path to installation"
- usingFish:
set -g JAVA_HOME "
path to installation"
- using Windows Command Prompt:
set JAVA_HOME="
path to installation"
- using PowerShell:
$env:JAVA_HOME = '
path to installation'
- Install the latest Maud release from GitHub:
- Browse tothe latest release
- Follow the "Maud.zip" link.
- Save the ZIP file.
- Extract the contents of the saved ZIP file.
cd
to the extracted "Maud" directory/folder that contains "bin" and "lib".- Run the Maud startup script:
- using Bash or Fish or Zsh:
./bin/Maud
- using Windows Command Prompt:
./bin/Maud.bat
- using PowerShell:
.\bin\Maud.bat
- Install a 64-bitJava Development Kit (JDK),if you don't already have one.
- Point the
JAVA_HOME
environment variable to your JDK installation:(In other words, set it to the path of a directory/foldercontaining a "bin" that contains a Java executable.That path might look something like"C:\Program Files\Eclipse Adoptium\jdk-17.0.3.7-hotspot"or "/usr/lib/jvm/java-17-openjdk-amd64/" or"/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home" .)
- using Bash or Zsh:
export JAVA_HOME="
path to installation"
- usingFish:
set -g JAVA_HOME "
path to installation"
- using Windows Command Prompt:
set JAVA_HOME="
path to installation"
- using PowerShell:
$env:JAVA_HOME = '
path to installation'
- Download and extract the Maud source code from GitHub:
- using Git:
git clone https://github.com/stephengold/Maud.git
cd Maud
git checkout -b latest 1.0.0-beta2
- using a web browser:
- browse tothe latest release
- follow the "Source code (zip)" link
- save the ZIP file
- extract the contents of the saved ZIP file
cd
to the extracted directory/folder
- Run theGradle wrapper:
- using Bash or Fish or PowerShell or Zsh:
./gradlew build
- using Windows Command Prompt:
.\gradlew build
After a successful build,archives for distribution will be found inbuild/distributions
.
You can run the local build using the Gradle wrapper:
- using Bash or Fish or Zsh or PowerShell:
./gradlew run
- using Windows Command Prompt:
.\gradlew run
You can restore the project to a pristine state:
- using Bash or Fish or Zsh or PowerShell:
./gradlew clean cleanSandbox
- using Windows Command Prompt:
.\gradlew clean cleanSandbox
Maud's user interface consists of 4 screens:"Start", "Editor", "Display Settings", and "Bind".The Start Screen loads first. It merely displays the Maud logo whileinitialization completes. It should automatically transition to the EditorScreen after a few seconds.
The Editor Screen is Maud's main screen, where 3-D models are visualized, browsed,and edited. There's a menu bar across the top and a message bar across the bottom.Most of its user interfaceis split into overlapping sub-windows called "tools".
At last count, Maud had 52 tools.Each tool can be independently hidden or made visible.
Selecting a tool makes it visible and moves it to the top layer for convenientuse, but you can use a tool without it being on top.The controls in a tool work even when partly obscured by other tools.You can move a tool by dragging its title bar with the left mouse button (LMB).
If a tool gets in your way, you can hide it by clicking onthe X in its upper right corner with the LMB.Hiding a tool won't affect anything else, so it's always a safe move.
Clicking a button in the menu bar with the LMB activates the corresponding menu.Menus are modal: activating a menu disables all other user interfaces in Maud.When a menu is active, the remainder of the screen darkens,and the mouse cursor becomes a right-pointing magenta arrow.You can then select a menu item by clicking on it with the LMB or RMB.
Many menu items display icons to help indicate what they do:
- a right-pointing black arrow to activate a submenu
- a wrench icon to select a tool
- a dialog-box icon to open a dialog box or go to a different screen
- a pencil icon to immediately edit the loaded skeleton map or target model
- a bone icon to select a bone
- an ogre's head to immediately load anOgre model
- and so forth.
Menus are context-sensitive, so for instance you'll see many more optionsin the Animation menu when a real animation is loaded than when the model isin its bind pose.
The first 10 items in each menu are numbered.For instance, the first item in the menu bar islabeled "1] View". The numbers indicate keyboard shortcuts fornavigating menus. When no popups are open,you can select the View Menu by pressingthe "1" key on the main keyboard (but NOT the "1" key on the numeric keypad).
Keyboard shortcuts in the Editor Screen include:
- "." or "Pause" to pause/restart the loaded animation(s)
- "Esc" to exit from the active menu (or if there's no active menu, to exit from Maud)
- "H" to toggle the visibility of the menu bar and the status bar
- "X" to create a checkpoint
- "Z" to undo to the previous checkpoint
- "Y" to redo to the next checkpoint
- "F1" to switch to the Bind Screen
Mouse-button assignments and keyboard shortcuts can be customized using theBind Screen (or by editing the "Interface/bindings/editor.properties" assetprior to startup)in which case shortcuts described in this document might not work.
At startup, the Editor Screen displays a "scene" view of a single 3-D model:Jaime, from the jme3-testdata library, with no tools selected.
Startup actions can be customized using the "Settings -> Update startup script"menu item (or by editing the "Scripts/startup.js" asset prior to startup)in which case Maud's initial state might differ from that described here.
A scene view consists of a 3-D render of a loaded model, possibly with abackground, a 3-D cursor, a supporting platform, and/or overlaid visualizations.Visualizations can include axes, a bounding box, a mesh vertex, physics objects, and/or askeleton. If you load and play an animation in a scene view, you'll see themodel move, rather like it would in a game.
When the mouse cursor is in a scene view, you can use the "A" and "D" keysto rotate the model left and right. (These keys don't alter the model itself,only its orientation in the view.) You can also press:
- "B" to select the bone closest to the mouse pointer
- "E" to deselect the selected bone
- "Q" to open the "View -> Scene options" menu
- "V" to select the mesh vertex closest to the mouse pointer
- "W" to deselect the selected mesh vertex
The Editor Screen can also display "score" views of loaded animations.A score view is a schematic diagram, like a musical score, with bones arrangedvertically and time (indicated by a gnomon) progressing from left to right.When the mouse cursor is in a score view, the following keyboardshortcuts may prove helpful:
- "B" to select the bone track closest to the mouse pointer
- "G" to grab the gnomon and (while key is held down) drag it with the mouse pointer
- "K" to select the keyframe closest to the mouse pointer
- "Q" to open the "View -> Score options" menu
While Maud can onlyedit one model at a time, the Editor Screen can be splittodisplay 2 different models.(This is useful when merging models orretargeting animations from one model to another.)The model being edited is called the "target" model.The other model is called the "source" model.
The Editor Screen can also be split to display 2 views of the same model.
When the editor screen is split, you can adjust the horizontal position of theboundary by dragging it with the RMB.
The Editor Screen operates in 3 "view modes":"Scene Mode", "Score Mode", and "Hybrid Mode".You can change the view mode using the "View -> Select mode" submenu oruse the backtick ("`") keyboard shortcut to cycle through these modes.
With no source model loaded: | With a source model loaded: | |
---|---|---|
In Scene Mode... | A full-width scene view of the target model | A split display with a scene view of the source model on the left and a scene view of the target model on the right |
In Score Mode... | A full-width score view of the target model | A split display with a score view of the source model on the left and a score view of the target model on the right |
In Hybrid Mode... | A split display with a score view of the target model on the left and a scene view of the target model on the right |
Each view has its own camera.Generally, the mouse wheel and middle mouse button (MMB) control Maud's cameras.Rotate the mouse wheel to move a camera forward or backward.In scene views, drag with MMB to turn the camera.In score views, drag up/down with MMB to scroll the view down/up.
Beyond that, it gets complicated, since scene-view cameras operate in2 "movement modes" and 2 "projection modes".The "Camera Tool" (selected using "View -> Scene options -> Camera")is used to select these modes.
"Orbit Mode" is a scene-view camera's default movement mode.In orbit mode, the camera orbits a central point.In orbit mode, turning the camera also changes its location, making it easy toview models from many directions.By the default, the central point is the "3-D cursor" -- a user-selectedlocation, typically visible as a small, black/yellow, 6-pointed starat the center of the view.
Move the 3-D cursor to a new location by clicking LMB on an object in the view:either the model or the platform.The 3-D cursor doesn't attach to other objects, so moving or altering objectsin the scene won't affect the location of the 3-D cursor.The "Cursor Tool" (selected using "View -> Scene options -> Cursor")can alter the appearance of the 3-D cursor.The "Camera Tool" (selected using "View -> Scene options -> Camera")can be used to redefine what the camera orbits.
"Fly Mode" is a scene-view camera's alternative movement mode.In fly mode, the camera disregards the central point.This is useful for close-up viewing of places the 3-D cursor can't easily reach,such as the interior of a model.
"Perspective Mode" is a scene-view camera's default projection mode,and "Parallel Mode" is the alternative.In Parallel Mode, the mouse wheelalters the scale of the projection without actually moving the camera.
Standard keyboard shortcuts affecting the scene-view cameras:
- "Numpad-0" to toggle between movement modes
- "Numpad-1" to move (or rotate) a camera to a horizontal view
- "Numpad-5" to toggle between projection modes
Score views don't have anything analogous to the 3-D cursor, but you canmove the score-view camera up/down by clicking LMB where you want it to look.
As mentioned above, Maud always has a (target) model loaded,and an additional model (the source model) can also be loaded.The source model can't be modified; only the target can be modified.
The "Model Tool" (selected using "Models -> Tool") displays basicinformation about the target model.
Models are loaded from assets, which may be located in theJava classpath (built into Maud) or in a local filesystem or on a web server.
Before loading a model from a local filesystem, you must specifya where in the filesystem the model's assets are located:select "Settings -> Add asset location",then navigate to the asset folder (typically it contains a "Model" subfolder),and select "! add this folder".Or if the assets are in a JAR/ZIP file, simply select that file.
To load a model as the target model, select the "Models -> Load" menu item,then select an asset location, then navigate to the model file.To load a model as the source model, select "Models -> Source model -> Load",then select an asset location, then navigate to the model file.
Maud can of course load models in jME's native binary format.To be recognized, such models must have filenames ending in ".j3o".
Maud can also import models in other formats:
- Blender 3D (filename must end in ".blend")
- glTF (filename must end in ".glb" or ".gltf")
- Inter-Quake Export (filename must end in ".iqe")
- Ogre DotScene (filename must end in ".scene")
- Ogre XML (filename must end in ".mesh.xml")
- Wavefront OBJ (filename must end in ".obj")
- Xbuf (filename must end in ".xbuf")
In addition, Biovision Hierarchy animations can be imported as models.To be recognized, such animations must have filenames ending in ".bvh".The imported model will consist of a single scene-graph node without any geometries.
To write the target model to a file in jME's native binary format,open the save dialog: "Models -> Save".Modify the base file path as desired, and click on the "Save" button.The suffix ".j3o" is automatically appended to the base file path.Note that materials and textures are not saved.
By default, models loaded from the classpath or from an archive will be written to a"Written Assets" folder under Maud's working folder.When loading assets, Maud treats this folder as if it overrides the classpath.
In jME, "bones" are named parts of a 3-D model that can influencevertices in the model's meshes.A single vertex can be influenced by up to 4 bones.A bone can also influence other bones, called its "children".A bone with no children is a "leaf" bone.A bone with no parent is a "root" bone.
Each bone has a "head" around which it pivots.However, a jME bone need not have a well-defined "tail", a length,nor even a direction.
In a scene view, Maud visualizes each bone as a round dot(red or green by default)connected to its children by lines (white by default).(You can customize these colors using the "Skeleton Tool":"View -> Scene options -> Skeleton".)
In a score view, each bone is represented by horizontal "staff".If space permits, the staff includes a rectangular name label on the left.If the bone is tracked (more about that later) the staff also includesup to 10 stacked "sparklines" bracketed by a pair of "finials".The sparklines, rendered in 4 colors, represent animation data,and the finials help identify which sparkline is which.
Before editing a bone in Maud, you must "select" it.In a scene view, the selected bone (if any) is typically indicated by3 arrows, denoting the axes of its local coordinate axes.
The "Bone Tool" (selected using "Bone -> Tool") controls and describesthe target model's selected bone.
Maud provides many ways to select a bone.
The "Bone -> Select" submenu enables you to select a bone in thetarget model by name:
- from among all bones in the selected skeleton, or
- from among the root bones in the selected skeleton, or
- from among all bones with attachments nodes, or
- from among all bones with tracks in the loaded animation, or
- from among the children of the selected bone.
It also enables you to navigate the bone hierarchy "By parent"or cycle through bones in numeric order ("Previous" and "Next").
The Bone Tool ("Bone -> Tool") provides a more convenient interface to these sameselection options.
The quickest way to select a bone is to click the right mousebutton (RMB) on or near it in a scene view.This works for both the source model and the target model.However, since bones can appear close together in scene views,and since the RMB is also used to select objects other than bones,use this technique with caution.
In jME, "animations" are usually found as part of a 3-D model.Each animation has a name and a duration.
Maud treats the model's bind pose like a zero-durationanimation for many purposes.
A real animation is stored in anAnimControl
and composed of "tracks", usually bone tracks.Each bone track transforms a single bone.An animation need not include a track for every bone.Maud refers to bones that have tracks in the loaded animationas "tracked bones".
Each track is composed of series of "keyframes", starting at time zero.
The (Target) Animation Tool (selected using "Animations -> Tool")controls the target model's loaded animation.There's also a Source Animation Tool ("Animations -> Source tool")to control the source model's loaded animation.
In Maud, "loading" an animation means selecting itfor visualization, playback, and/or editing.
To load an animation for the target model,select "Animations -> Load" and then the name of the animation.To load an animation for the source model,select "Animations -> Load source" and then the name of the animation.
Once an animation is loaded, Maud can play it forward or backward at speedsof up to 2x.Each animation tool has a slider to control the speed and directionof playback.
Each animation tool also has a button to pause/resume the loaded animation.As mentioned above, you can also use the "." keyboard shortcutto pause/resume loaded animations.
By default, Maud "loops" to the start (or end) of the loaded animationwhen playback reaches the animation's end (or start).Using the animation tools, you can instruct Maud to pause and/or reversedirection ("pong") instead.
Using the animation tools, you can also "pin" a loaded animation.Pinning an animation forces all its root bones to the model originfor display (scene-view) purposes.
While an animation is playing on the target model, Maud typically refreshesthe model's bone transforms on every frame.Once the animation is paused, however, the target model's bone transforms(called the "displayed pose") can be modified independentlyof the loaded animation.
Use the "Bone-Translation Tool" ("Bone -> Translate") to modify the localtranslation of the selected bone in the displayed pose.Use the "Bone-Scale Tool" ("Bone -> Scale") to scalethe selected bone in the displayed pose.And use the "Bone-Rotation Tool" ("Bone -> Rotate") to rotatethe selected bone in the displayed pose.
In scene views, you can also rotate the selected bone by grabbingany of the bone's 3 axis tips with the RMB and dragging with the mouse.The axis tips are constrained to an invisible sphere surrounding theselected bone's head, so for many mouse-pointer screen locations,2 axis directions are possible.While you're dragging a bone axis, Maud remembers whether the axisinclines toward the camera or away from it.You can toggle this inclination using the "S" shortcut key.
The displayed pose has many uses. For instance:To save a pose (creating a new, zero-length animation from it)select "Animations -> Add new -> Pose".To insert keyframes (and replace any pre-existing keyframes)at the current time in the loaded animation,select "Animations -> Edit -> Insert keyframes".To insert a keyframe (or replace the pre-existing keyframe)at the current time in the selected bone track,select "Keyframe -> Insert from pose".To alter all keyframes in the selected bonetrack, use the "Set all to pose" buttons in the "Keyframe Tool"("Keyframe -> Tool").
You can also use the displayed pose like a paste buffer, to copy bone transformsfrom one time to another.For this to work, you must "freeze" the pose so Maud won'toverwrite it as soon as the animation time changes.To freeze the pose, either tick the "freeze" check box in the Animation Toolor use the "F" keyboard shortcut.Then go to the animation time when you want to paste and select"Keyframe -> Insert from pose" (to paste to the selected bone track)or "Animations -> Edit -> Insert keyframes" (to paste to all bone tracks in the loaded animation).Remember to unfreeze the pose afterward!
Once an animation is created for one model, it's a simple matter tocopy it to another model, provided both models have identicalskeletons.
To retarget animations between models with different skeletons, Maudrequires a "skeleton map" to match up bones in the source model withcorresponding ones in the target model.(Corresponding bones may have different names and/or indices.)
Furthermore, since jME bones don't have defined tails,it's often necessary to adjust bone orientations when retargetinganimations between models.To automate these adjustments, each bone mapping in a jME skeletonmap includes a "twist" rotation value.
Maud can load skeleton maps from assets, editthem, save them, and use them to retarget animations.A few sample skeleton maps are build into Maud, such as "SinbadToJaime" whichmaps Sinbad's skeleton to that of Jaime.
Use the "Mapping Tool" ("Map -> Tool") to load and edit skeleton maps.To do anything with a skeleton map, you must have a source model loaded.To add a mapping between 2 bones, select the source bone in the sourcemodel and the target bone in the target model, then click LMB onthe "Map" button in the lower left or use the equals ("=") keyboard shortcut.
As long as the 2 selected bones map to each other in the loaded map,the corresponding bone mapping stays selected.You can unmap the selected bone mapping (with the "Unmap" button) oradjust its twist value with the "Twist Tool" ("Map -> Twist tool").
When editing a skeleton map, it's helpful to seeits effect on the target model in real time.To do this, click LMB on the "Show retargeted pose" button in the Mapping Tool orselect "Animations -> Load -> ( retargeted pose )".With this pseudo-animation loaded:
- changing the source pose automatically updates the target pose,
- changing the skeleton map automatically updates the target pose,
- selecting a mapped source bone also selects the corresponding target bone,
- selecting a mapped target bone also selects the corresponding source bone, and
- dragging an axis of the target bone automatically updates the twist value of the selected bone mapping.
To save the loaded skeleton map, select "Map -> Save".
When you're ready to retarget animations between models,use the "Retarget Tool" ("Animations -> Add new -> Retarget source animation").
Like any serious editor, Maud provides an "undo" capability.
Maud's undo capability is based on checkpointing the editor's state.Tool visibility and positioning are not checkpointed, nor are shortcutkey bindings, but nearly everything else is, including selections, view mode,view options, and loaded models, maps, and animations.
By default, Maud creates a checkpoint before editing or unloading any map or model.You can also create a checkpoint manually using the "X" keyboard shortcut.To undo changes since the most recent checkpoint, use the "Z" keyboard shortcut.
To safeguard work since the last checkpoint,the "Z" key often creates a new checkpoint as well.To redo each change you've undone, use the "Y" keyboard shortcut.
To help you visualize and navigate your edit history,Maud provides a "History Tool" (selected using "History -> Tool").
The edit history occupies heap memory.To release this memory, you can delete the history using "History -> Clear".
Maud places a limit on the number of checkpoints you can have at any one time.The default limit is 8.You can alter this limit using the History Tool.
Maud has a built-in JavaScript scripting capability basedon theNashorn engine.
During startup, Maud looks for a "/Scripts/startup.js" asset.The built-in startup script (on the classpath) simply loads the Jaime model.However, if Maud finds a custom script in the "Written Assets" folder,it executes the custom script instead of the built-in one.
To auto-generate a custom startup script,select "Settings -> Update startup script".The generated script will initialize:
- asset locations
- global options such as view mode, boundary position, menu-bar visibility,performance debug mode, base index, and tweening techniques
- most scene-view and score-view options
- the screen positions of any selected tools
Note that customized hotkeys and display settingsare not included in the startup script.Maud has other mechanisms to make them persist.
To remove a custom startup script,select "Settings -> Revert startup script to default".
The following arguments can be specified on the command line (or in the Gradlebuild script) to configure Maud prior to executing its startup script:
--forceDialog
(or-f
)to show the JME3 "Display Settings" dialog during startup.This dialog can be used to edit display properties (such as resolution)in case they become corrupted. If this argument is notspecified, Maud shows the dialog only if it believes(based on JME3 AppSettings) that this is the first time it has run.--openGL3
(or-3
)to force LWJGL to use the core OpenGL3.2 renderer.Forcing this renderer enables Maud to run on systems withnon-proprietary GPU drivers.--skipStartup
(or-s
)to bypass the startup script. If this argument is not specified, Maudlooks for a startup script and attempts to execute it before displaying theEditor Screen.--verbose
(or-v
)to generate verbose log output.This output may assist in diagnosing certain issues.
YouTube videos about Maud:
- January 2018 demo (pick-and-drag editing):https://www.youtube.com/watch?v=OLLl7xiuCw0 (8:43)
- December 2017 demo (importing animated models via glTF):https://www.youtube.com/watch?v=tv7QgAtwDCA (7:47)
- September 2017 spatial animation clip:https://www.youtube.com/watch?v=EDtiYu-u_Ls (0:12)
- September 2017 demo part 2:https://www.youtube.com/watch?v=2kmxOzDCl_8 (28:22)
- September 2017 demo part 1:https://www.youtube.com/watch?v=4UwxbsOewow (15:02)
- June 2017 retargeted animation clip:https://www.youtube.com/watch?v=yRjh1rAsipI (0:09)
- May 2017 demo (out-of-date!):https://www.youtube.com/watch?v=fSjsbyBWlPk (9:13)
BVH resources:
- BVH format description:http://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
- motion-capture data from CMU's Graphics Lab, converted to BVH by Bruce Hahn:https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture
- free motion-capture data from Ohio State University's ACCAD:https://accad.osu.edu/research/motion-lab/system-data
Maud is incomplete.The following features are on my "to do" list, in no particular order:
- advance/delay keyframe(s)
- better support for physics controls/joints/objects/shapes
- smoother camera motion in score views
- select bone mappings that don't correspond to the loaded models
- export a model toOBJ format
- export an animation toBVH format
- localization
- more scene-view options for platform
- tool tips
- mirror an animation/pose
- joint-angle limits for models
Maud's source code is compatible with JDK 7.
World coordinate system: the Y axis points upward (toward the zenith).Prior to loading a model that uses the Z-up convention, select the "+Z up"load orientation in the Settings Tool ("Settings" -> "Tool").
The first keyframe in each track must be at time=0.
Since April 2017, the Maud project has been hosted athttps://github.com/stephengold/Maud
Maud began as a demo application for the jme3-utilities-debug library,part of the jme3-utilities project athttps://github.com/stephengold/jme3-utilities
Maud incorporates code fromjMonkeyEngine and theBVH Retarget Project.
Like most projects, Maud builds on the work of many whohave gone before. I therefore acknowledge the followingartists and software developers:
- Rémy Bouquet (aka "nehon") for creating the Jaime model and theBVH RetargetProject and also for many helpful insights
- Paul Speed (aka "pspeed") for many helpful insights
- David Bernard (aka "david_bernard_31") for creatingXbuf
- Adam T. Ryder (aka "tryder") for creatingjME-TTF
- Tobias Jung for creatingProFont
- Nathan Vegdahl, for creating the Puppet model
- Can Bican, for creating the Jprefctl preferences editor
- Zi Ye, for creating the Sinbad model
- Alweth on hub.jmonkeyengine.org forumsfor providing
IQELoader
for use, free of charge - the brave souls who volunteered to be alpha testers for Maud, including:
- "Jesterrrrrr"
- Moff Kalast
- Adam (aka "safari")
- Ryan (aka "yaRnMcDonuts")
- "raistm"
- Remy Van Doosselaer (aka "remy_vd")
- "Ali_RS"
- "Toboi"
- plus the creators of (and contributors to) the following software:
- Adobe Photoshop Elements
- theBlender 3-D animation suite
- theBullet real-time physics library
- theCheckstyle tool
- theFindBugs source-code analyzer
- theFirefox andChrome web browsers
- theGit revision-control system and GitK commit viewer
- theGitKraken client
- theGradle build tool
- theIntelliJ IDEA andNetBeans integrated development environments
- theJava compiler, standard doclet, and virtual machine
- jMonkeyEngine and the jME3 Software Development Kit
- theLinux Mint operating system
- LWJGL, the Lightweight Java Game Library
- theMakeHuman 3-D character creation tool
- theMarkdown document-conversion tool
- Microsoft Windows
- theNifty graphical user-interface library
- Open Broadcaster Software Studio
- the PMD source-code analyzer
- ProFont, the programmers' font
- theRealWorld Cursor Editor
- theWinMerge differencing and merging tool
I am grateful toGitHub,JFrog, andImgurfor providing free hosting for this projectand many other open-source projects.
I'm also grateful to my dear Holly, for keeping me sane.
If I've misattributed anything or left anyone out, please let me know, so I cancorrect the situation:sgold@sonic.net
About
An editor for jMonkeyEngine 3-D models (code has New BSD license)