The Wes Project is about editing animations used in the jMonkeyEngine (JME) game engine.
It contains 2 subprojects:
Complete source code (in Java) is provided under a 3-clause BSD license.
Most of the features work with both the old and new animation systems.
Wes comes pre-built as a single library dependent on the Heart Library, which in turn depends on the standard "jme3-core" library from jMonkeyEngine. Adding Wes to an existing jMonkeyEngine project should be a simple matter of adding these libraries to the classpath.
For projects built using Maven or Gradle, it is sufficient to add a dependency on the Wes Library. The build tool should automatically resolve the remaining dependencies.
Add to the project’s "build.gradle" or "build.gradle.kts" file:
repositories {
mavenCentral()
}
dependencies {
implementation("com.github.stephengold:Wes:0.8.1")
}
For some older versions of Gradle,
it's necessary to replace implementation
with compile
.
Add to the project’s "pom.xml" file:
<repositories>
<repository>
<id>mvnrepository</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.stephengold</groupId>
<artifactId>Wes</artifactId>
<version>0.8.1</version>
</dependency>
For projects built using Ant, download the Wes and Heart libraries from GitHub:
You'll definitely want both class jars and probably the "-sources" and "-javadoc" jars as well.
Open the project's properties in the IDE (JME SDK or NetBeans):
JAVA_HOME
environment variable to your JDK installation:
(In other words, set it to the path of a directory/folder
containing 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" .)
export JAVA_HOME="
path to installation "
set -g JAVA_HOME "
path to installation "
set JAVA_HOME="
path to installation "
$env:JAVA_HOME = '
path to installation '
git clone https://github.com/stephengold/Wes.git
cd Wes
git checkout -b latest 0.8.1
cd
to the extracted directory/folder./gradlew build
.\gradlew build
After a successful build, Maven artifacts will be found in "WesLibrary/build/libs".
You can install the artifacts to your local Maven repository:
./gradlew install
.\gradlew install
You can restore the project to a pristine state:
./gradlew clean
.\gradlew clean
Newer releases (since v0.3.9) can be downloaded from GitHub.
Old releases (v0.2.1 through v0.3.8) can be downloaded from the Jme3-utilities Project.
Newer Maven artifacts (since v0.6.2) are available from MavenCentral.
Old Maven artifacts (v0.4.8 thru v0.6.1) are available from JCenter.
Package names begin with
jme3utilities.
(if Stephen Gold holds the copyright) or
com.jme3.
(if the jMonkeyEngine Project holds the copyright).
The source code is compatible with JDK 7. The pre-built libraries are compatible with JDK 8.
Applications have been created to showcase certain features of Wes. The following demos are found in the WesExamples subproject:
Demonstrates converting the "hurricane_kick" animation (from Adi Barda's ninja-fighter model) to an in-place cyclic animation. The unmodified animation is shown on a white skeleton, synchronized with the converted animation, which is shown on a yellow skeleton.
Demonstrates retargeting the "Dance" animation clip of the Sinbad model to 4 unrelated models: Jaime, MhGame, Oto, and Puppet.
Demonstrates reversing the "StandUpBack" animation clip of the Sinbad model to generate a "LieDown" clip.
Demonstrates trimming and stretching the "SliceHorizontal" animation clip of the Sinbad model to generate a "warn" clip.
The evolution of this project is chronicled in its release log.
Much of the Wes code was originally developed for the Maud editor.
The retargeting code is derived from the Bvhretarget Project.
From September 2017 to January 2019, Wes was a subproject of the Jme3-utilities Project.
Since January 2019, Wes has been a separate project, hosted at GitHub.
Like most projects, the Wes Project builds on the work of many who have gone before. I therefore acknowledge the following artists and software developers:
BoneMapping
and SkeletonMapping
are based)
and also for many helpful insightsconvertToInPlace()
methodsI am grateful to GitHub, Sonatype, JFrog, and Imgur for providing free hosting for this project and 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 can correct the situation: sgold@sonic.net