mitm001 5 gadi atpakaļ
vecāks
revīzija
18927b51f3

+ 4 - 4
docs/modules/ROOT/pages/documentation.adoc

@@ -1,6 +1,6 @@
 = jMonkeyEngine Documentation
-:revnumber: 2.0
-:revdate: 2020/07/12
+:revnumber: 2.1
+:revdate: 2020/07/24
 :keywords: documentation, sdk, install
 
 
@@ -78,13 +78,13 @@ a| xref:tutorials:concepts/faq.adoc[Answers to Frequently Asked Questions]
 
 |===
 
-The wiki is designed to be read in the order the links are presented in the navigation menu (left side of page). The topics increase in difficulty the further you progress. You will find links to the next topic at the bottom of every page as well as a Table of Contents, located on the right, to make navigating inside a topic easier. 
+The wiki is designed to be read in the order the links are presented in the navigation menu (left side of page). The topics increase in difficulty the further you progress. You will find links to the next topic at the bottom of every page as well as a Table of Contents, located on the right, to make navigating inside a topic easier.
 
 == Contribute
 
 Are you an experienced Java developer who wants to add new features or contribute patches to the jME3 project?
 
-*  Get inspired by existing xref:jme3/contributions.adoc[contributions]
+*  Get inspired by existing xref:contributions/contributions.adoc[contributions]
 *  link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/CONTRIBUTING.md[How to contribute to jMonkeyEngine]
 *  link:https://github.com/jMonkeyEngine/wiki#jmonkeyengine-documentation[Become a Wiki Editor]
 *  link:http://hub.jmonkeyengine.org/c/contribution-depot-jme3[Chime in on the Contributors Forum]

+ 1 - 1
docs/modules/ROOT/pages/jme3/features.adoc

@@ -47,7 +47,7 @@ See also: xref:jme3/requirements.adoc[requirements].
 **  xref:physics:control/ragdoll.adoc[Ragdoll physics]
 
 *  xref:physics:bullet_multithreading.adoc[Multi-threaded physics]
-*  xref:jme3/advanced/physics#create_a_collisionshape,Mesh-accurate collision shapes]
+*  xref:physics:physics.adoc#create-a-collisionshape,Mesh-accurate collision shapes]
 
 
 == Supported Formats

+ 3 - 3
docs/modules/core/pages/animation/animation.adoc

@@ -1,6 +1,6 @@
 = Animation in jME3
-:revnumber: 2.0
-:revdate: 2020/07/15
+:revnumber: 2.1
+:revdate: 2020/07/24
 
 
 In 3D games, you do not only load static 3D models, you also want to be able to trigger animations in the model from the Java code.
@@ -20,7 +20,7 @@ What is required for an animated model? (xref:tutorials:concepts/terminology.ado
 Unless you download free models, or buy them from a 3D artist, you must create your animated models in an *external mesh editor* (for example, Blender) yourself.
 
 *  xref:jme3/features.adoc#supported-external-file-types[Supported External File Types]
-*  xref:jme3/external/blender.adoc[Creating assets in Blender3D]
+*  xref:tutorials:how-to/modeling/blender/blender.adoc[Creating assets in Blender3D]
 *  link:http://www.youtube.com/watch?v=IDHMWsu_PqA[Video: Creating Worlds with Instances in Blender]
 
 What is required in your JME3-based Java class?

+ 4 - 8
docs/modules/core/pages/collision/collision_and_intersection.adoc

@@ -1,13 +1,9 @@
 = Collision and Intersection
-:author:
-:revnumber:
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+:revnumber: 2.0
+:revdate: 2020/07/24
 
 
-The term collision can be used to refer to <<jme3/advanced/physics_listeners#,physical interactions>> (where <<jme3/advanced/physics#,physical objects>> collide, push and bump off one another), and also to non-physical _intersections_ in 3D space. This article is about the non-physical (mathematical) collisions.
+The term collision can be used to refer to <<jme3/advanced/physics_listeners#,physical interactions>> (where xref:physics:physics.adoc[physical objects] collide, push and bump off one another), and also to non-physical _intersections_ in 3D space. This article is about the non-physical (mathematical) collisions.
 
 Non-physical collision detection is interesting because it uses less computing resources than physical collision detection. The non-physical calculations are faster because they do not have any side effects such as pushing other objects or bumping off of them. Tasks such as <<jme3/advanced/mouse_picking#,mouse picking>> are easily implemented using mathematical techniques such as ray casting and intersections.  Experienced developers optimize their games by finding ways to simulate certain (otherwise expensive physical) interactions in a non-physical way.
 
@@ -146,7 +142,7 @@ Supported types:
 
 [NOTE]
 ====
-Note: If you are looking for bounding volumes for physical objects, use <<jme3/advanced/physics#,CollisionShapes>>.
+Note: If you are looking for bounding volumes for physical objects, use xref:physics:physics.adoc[CollisionShapes].
 ====
 
 

+ 4 - 8
docs/modules/core/pages/renderer/making_the_camera_follow_a_character.adoc

@@ -1,10 +1,6 @@
 = Making the Camera Follow a 3rd-Person Character
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+:revnumber: 2.0
+:revdate: 2020/07/24
 
 
 When players steer a game character with 1st-person view, they directly steer the camera (`flyCam.setEnabled(true);`), and they never see the walking character itself. In a game with 3rd-person view, however, the players see the character walk, and you (the game developer) want to make the camera follow the character around when it walks.
@@ -61,7 +57,7 @@ a|Description
 a|setControlDir(ControlDirection.SpatialToCamera)
 a|User input steers the target spatial, and the camera follows the spatial. +
 The spatial's transformation is copied over the camera's transformation. +
-Example: Use with <<jme3/advanced/physics#,CharacterControl>>led spatial.
+Example: Use with xref:physics:physics.adoc[CharacterControl]led spatial.
 
 a|setControlDir(ControlDirection.CameraToSpatial)
 a|User input steers the camera, and the target spatial follows the camera. +
@@ -95,7 +91,7 @@ a|Method
 a|Description
 
 a|setInvertVerticalAxis(true)
-a|Invert the camera's vertical rotation Axis 
+a|Invert the camera's vertical rotation Axis
 
 a|setInvertHorizontalAxis(true)
 a|Invert the camera's horizontal rotation Axis

+ 1 - 1
docs/modules/core/pages/scene/3d_models.adoc

@@ -38,4 +38,4 @@ Learn how to create link:http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV
 
 3D model editors are third-party products, so please consult their documentation for instructions how to use them. Here is an example workflow for Blender users:
 
-*  xref:jme3/external/blender.adoc[Creating assets in Blender3D]
+*  xref:tutorials:how-to/modeling/blender/blender.adoc[Creating assets in Blender3D]

+ 3 - 3
docs/modules/core/pages/util/sky.adoc

@@ -1,6 +1,6 @@
 = How to add a Sky to your Scene
-:revnumber: 2.0
-:revdate: 2020/07/15
+:revnumber: 2.1
+:revdate: 2020/07/24
 
 
 
@@ -54,4 +54,4 @@ Box or Sphere?
 For more information on Skymap creation see:
 
 *  xref:jme3/advanced/free_skymaps.adoc[How to create free skymaps]
-*  xref:jme3/external/blender.adoc#skybox-baking.adoc[SkyBox baking]
+*  xref:tutorials:how-to/modeling/blender/blender.adoc#skybox-baking.adoc[SkyBox baking]

+ 6 - 6
docs/modules/physics/pages/control/ragdoll.adoc

@@ -1,6 +1,6 @@
 = Ragdoll Physics
-:revnumber: 2.0
-:revdate: 2020/07/22
+:revnumber: 2.1
+:revdate: 2020/07/24
 :keywords: documentation, physics, character, NPC, forces, collisions
 
 
@@ -17,7 +17,7 @@ image::control/ragdoll.png[ragdoll.png,width="",height="",align="center"]
 
 == Preparing the Physics Game
 
-.  Create a SimpleApplication with a <<jme3/advanced/physics#,BulletAppState>>
+.  Create a SimpleApplication with a xref:physics.adoc[BulletAppState]
 **  This gives us a PhysicsSpace for PhysicControls
 
 .  Add a physical floor (A box collision shape with mass zero)
@@ -25,7 +25,7 @@ image::control/ragdoll.png[ragdoll.png,width="",height="",align="center"]
 
 == Creating the Ragdoll
 
-A ragdoll is a simple “person (dummy) that you build out of cylinder collision shapes. The ragdoll has 11 limbs: 1 for shoulders, 1 for the body, 1 for hips; plus 2 arms and 2 legs that are made up of two limbs each. In your game, you will likely replace the cylinders with your own (better looking) limb models. In this example here we just use simple cylinders.
+A ragdoll is a simple "`person`" (dummy) that you build out of cylinder collision shapes. The ragdoll has 11 limbs: 1 for shoulders, 1 for the body, 1 for hips; plus 2 arms and 2 legs that are made up of two limbs each. In your game, you will likely replace the cylinders with your own (better looking) limb models. In this example here we just use simple cylinders.
 
 
 === Limbs
@@ -158,12 +158,12 @@ shoulders.applyContinuousForce(true, upforce);
 
 ----
 
-We can use the action to pick the doll up and put it back on its feet, or what ever. Read more about <<jme3/advanced/physics#forcesmoving_physical_objects,Forces>> here.
+We can use the action to pick the doll up and put it back on its feet, or what ever. Read more about <<physics.adoc#orces-moving-dynamic-objects,Forces>> here.
 
 
 == Detecting Collisions
 
-Read the <<jme3/advanced/physics#responding_to_a_physicscollisionevent,Responding to a PhysicsCollisionEvent>> chapter in the general physics documentation on how to detect collisions. You can detect collisions between limbs or between limbs and the floor, and trigger game events.
+Read the xref:collision/physics_listeners.adoc[Physics Listeners] documentation on how to detect collisions. You can detect collisions between limbs or between limbs and the floor, and trigger game events.
 
 
 == Best Practices

+ 4 - 4
docs/modules/physics/pages/control/vehicles.adoc

@@ -1,6 +1,6 @@
 = Controlling a Physical Vehicle
-:revnumber: 2.0
-:revdate: 2020/07/23
+:revnumber: 2.1
+:revdate: 2020/07/24
 :keywords: documentation, physics, vehicle, collision
 
 
@@ -27,7 +27,7 @@ Full code samples are here:
 
 The goal is to create a physical vehicle with wheels that can be steered and that interacts (collides with) with the floor and obstacles.
 
-.  Create a SimpleApplication with a <<jme3/advanced/physics#,BulletAppState>>
+.  Create a SimpleApplication with a xref:physics.adoc[BulletAppState]
 **  This gives us a PhysicsSpace for PhysicsNodes
 
 .  Create a VehicleControl + CompoundCollisionShape for the physical vehicle behaviour
@@ -271,7 +271,7 @@ Remember, the standard input listener code that maps the actions to keys can be
 
 == Detecting Collisions
 
-Read the <<jme3/advanced/physics#responding_to_a_physicscollisionevent,Responding to a PhysicsCollisionEvent>> chapter in the general physics documentation on how to detect collisions. You would do this if you want to react to collisions with custom events, such as adding points or substracting health.
+Read the xref:collision/physics_listeners.adoc[Physics Listeners] documentation on how to detect collisions. You would do this if you want to react to collisions with custom events, such as adding points or substracting health.
 
 
 == Best Practices

+ 5 - 4
docs/modules/physics/pages/control/walking_character.adoc

@@ -1,6 +1,6 @@
 = Walking Character
-:revnumber: 2.0
-:revdate: 2020/07/15
+:revnumber: 2.1
+:revdate: 2020/07/24
 :keywords: documentation, physics, input, animation, character, NPC, collision
 
 
@@ -188,7 +188,8 @@ public class WalkingCharacterDemo extends SimpleApplication
   public void onAnimCycleDone(AnimControl control, AnimChannel channel, String animName) { }
 
   public void onAnimChange(AnimControl control, AnimChannel channel, String animName) { }
-
+...
+}
 ----
 
 
@@ -196,7 +197,7 @@ public class WalkingCharacterDemo extends SimpleApplication
 
 To create a walking character:
 
-.  (Unless you already have it) Activate physics in the scene by adding a xref:jme3/advanced/physics.adoc[BulletAppState].
+.  (Unless you already have it) Activate physics in the scene by adding a xref:physics.adoc[BulletAppState].
 .  Init the scene by loading the game level model (terrain or floor/buildings), and giving the scene a MeshCollisionShape.
 .  Create the animated character:
 ..  Load an animated character model.

+ 15 - 19
docs/modules/physics/pages/joint/hinges_and_joints.adoc

@@ -1,11 +1,7 @@
 = Physical Hinges and Joints
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
+:revnumber: 2.0
+:revdate: 2020/07/24
 :keywords: documentation, physics, joint
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
 The jMonkeyEngine3 has built-in support for link:http://jbullet.advel.cz[jBullet physics] via the `com.jme3.bullet` package.
@@ -22,21 +18,21 @@ In this example, we will create a pendulum. The joint is the (invisible) connect
 
 == Overview of this Physics Application
 
-.  Create a SimpleApplication with a <<jme3/advanced/physics#,BulletAppState>> 
+.  Create a SimpleApplication with a xref:physics.adoc[BulletAppState]
 **  This gives us a PhysicsSpace for PhysicsControls
 
 .  For the pendulum, we use a Spatial with a PhysicsControl, and we apply physical forces to them.
-**  The parts of the “pendulum are Physics Control'ed Spatials with Collision Shapes. 
-**  We create a fixed `hookNode` and a dynamic `pendulumNode`. 
+**  The parts of the “pendulum are Physics Control'ed Spatials with Collision Shapes.
+**  We create a fixed `hookNode` and a dynamic `pendulumNode`.
 
-.  We can “crank the handle and rotate the joint like a hinge, or we can let loose and expose the joints freely to gravity. 
+.  We can “crank the handle and rotate the joint like a hinge, or we can let loose and expose the joints freely to gravity.
 **  For physical forces we will use the method `joint.enableMotor();`
 
 
 
 == Creating a Fixed Node
 
-The hookNode is the fixed point from which the pendulum hangs. It has no mass. 
+The hookNode is the fixed point from which the pendulum hangs. It has no mass.
 
 [source,java]
 ----
@@ -55,7 +51,7 @@ For a rope bridge, there would be two fixed nodes where the bridge is attached t
 
 == Creating a Dynamic Node
 
-The pendulumNode is the dynamic part of the construction. It has a mass. 
+The pendulumNode is the dynamic part of the construction. It has a mass.
 
 [source,java]
 ----
@@ -68,12 +64,12 @@ getPhysicsSpace().add(pendulumNode);
 
 ----
 
-For a rope bridge, each set of planks would be one dynamic node. 
+For a rope bridge, each set of planks would be one dynamic node.
 
 
 == Understanding DOF, Joints, and Hinges
 
-A PhysicsHingeJoint is an invisible connection between two nodes – here between the pendulum body and the hook. Why are hinges and joints represented by the same class? Hinges and joints have something in common: They constrain the _mechanical degree of freedom_ (DOF) of another object. 
+A PhysicsHingeJoint is an invisible connection between two nodes – here between the pendulum body and the hook. Why are hinges and joints represented by the same class? Hinges and joints have something in common: They constrain the _mechanical degree of freedom_ (DOF) of another object.
 
 Consider a free falling, “unchained object in physical 3D space: It has 6 DOFs:
 
@@ -84,7 +80,7 @@ Now consider some examples of objects with joints:
 
 *  An individual chain link is free to spin and move around, but joined into a chain, the link's movement is restricted to stay with the surrounding links.
 *  A person's arm can rotate around some axes, but not around others. The shoulder joint allows one and restricts the other.
-*  A door hinge is one of the most restricted types of joint: It can only rotate around one axis. 
+*  A door hinge is one of the most restricted types of joint: It can only rotate around one axis.
 
 You'll understand that, when creating any type of joint, it is important to correctly specify the DOFs that the joint restricts, and the DOFs that the joint allows. For the typical DOF of a <<jme3/advanced/ragdoll#,ragDoll>> character's limbs, jME even offers a special joint, `ConeJoint`.
 
@@ -102,11 +98,11 @@ private HingeJoint joint;
     ...
     // hookNode and pendulumNode are created here...
     ...
-    
+
     joint=new HingeJoint(hookNode.getControl(RigidBodyControl.class), // A
                      pendulumNode.getControl(RigidBodyControl.class), // B
                      new Vector3f(0f, 0f, 0f),  // pivot point local to A
-                     new Vector3f(0f, 1f, 0f),  // pivot point local to B 
+                     new Vector3f(0f, 1f, 0f),  // pivot point local to B
                      Vector3f.UNIT_Z,           // DoF Axis of A (Z axis)
                      Vector3f.UNIT_Z  );        // DoF Axis of B (Z axis)
 
@@ -136,7 +132,7 @@ bulletAppState.getPhysicsSpace().add(joint);
 
 == Apply Physical Forces
 
-You can apply forces to dynamic nodes (the ones that have a mass), and see how other joined (“chained) objects are dragged along. 
+You can apply forces to dynamic nodes (the ones that have a mass), and see how other joined (“chained) objects are dragged along.
 
 Alternatively, you can also apply forces to the joint itself. In a game, you may want to spin an automatic revolving door, or slam a door closed in a spooky way, or dramatically open the lid of a treasure chest.
 
@@ -149,7 +145,7 @@ joint.enableMotor(true, -1, .1f);
 ----
 
 .  Switch the motor on by supplying `true`
-.  Specify the velocity with which the joint should rotate around the specified axis. 
+.  Specify the velocity with which the joint should rotate around the specified axis.
 **  Use positive and negative numbers to change direction.
 
 .  Specify the impulse for this motor. Heavier masses need a bigger impulse to be moved.

+ 1 - 2
docs/modules/sdk/nav.adoc

@@ -39,7 +39,6 @@
 ****  link:https://www.youtube.com/watch?v=D7JM4VMKqPc[Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk]
 //*  <<sdk/attachment_bones#,Animation and Attachment Bones Editing>>
 ***  xref:filters.adoc[Post-Processor Filter Editor and Viewer]
-//*  <<sdk/blender#,Blender Importer>>
 ***  xref:core:app/state/application_states.adoc[Application States]
 ***  xref:core:scene/control/custom_controls.adoc[Custom Controls]
 ***  xref:vehicle_creator.adoc[Vehicle Creator]
@@ -49,7 +48,7 @@
 ***  xref:increasing_heap_memory.adoc[Increasing Heap Memory]
 ***  xref:log_files.adoc[Log Files]
 ** Available external plugins
-***  xref:ROOT:jme3/contributions.adoc[Contributions]
+***  xref:contributions:contributions.adoc[Contributions]
 ***  xref:neotexture.adoc[Neo Texture Editor for procedural textures]
 ***  link:http://www.youtube.com/watch?v=yS9a9o4WzL8[Video: Mesh Tool &amp; Physics Editor]
 **  xref:development.adoc[Developing plugins for jMonkeyEngine SDK]

+ 3 - 3
docs/modules/sdk/pages/model_loader_and_viewer.adoc

@@ -1,6 +1,6 @@
 = jMonkeyEngine SDK: Importing and Viewing Models
-:revnumber: 2.0
-:revdate: 2020/07/09
+:revnumber: 2.1
+:revdate: 2020/07/24
 :keywords: documentation, sdk, tool, asset, scene
 
 
@@ -23,7 +23,7 @@ The jMonkeyEngine SDK includes a tool to install the correct exporter tools in B
 .  If you are presented a filechooser, select the folder where your blender scripts reside.
 .  Press "`Install`" in the window that opens.
 
-Also check out xref:ROOT:jme3/external/blender.adoc[how to create compatible models in blender] and xref:tutorials:concepts/multi-media_asset_pipeline.adoc[how to organize your assets].
+Also check out xref:tutorials:how-to/modeling/blender/blender.adoc[how to create compatible models in blender] and xref:tutorials:concepts/multi-media_asset_pipeline.adoc[how to organize your assets].
 
 
 == Using the model files directly

+ 3 - 4
docs/modules/tutorials/pages/beginner/hello_asset.adoc

@@ -1,7 +1,6 @@
 = jMonkeyEngine 3 Tutorial (3) - Hello Assets
-:author:
-:revnumber:
-:revdate: 2020/07/06
+:revnumber: 2.0
+:revdate: 2020/07/24
 :keywords: beginner, intro, documentation, lightnode, material, model, node, gui, hud, texture
 
 
@@ -413,7 +412,7 @@ Now you know how to populate the scenegraph with static shapes and models, and h
 
 *See also:*
 
-*  xref:ROOT:jme3/external/blender.adoc[The definitive Blender import tutorial]
+*  xref:how-to/modeling/blender/blender.adoc[The definitive Blender import tutorial]
 *  xref:concepts/multi-media_asset_pipeline.adoc[Asset pipeline introduction]
 *  If you want to learn how to load sounds, see xref:beginner/hello_audio.adoc[Hello Audio]
 *  If you want to learn more about loading textures and materials, see xref:beginner/hello_material.adoc[Hello Material]

+ 1 - 1
docs/modules/tutorials/pages/concepts/faq.adoc

@@ -162,7 +162,7 @@ You create sounds in an audio editor, for example, Audacity, and export them as
 
 * xref:ROOT:jme3/advanced/3d_models.adoc[3D Models]
 * xref:concepts/multi-media_asset_pipeline.adoc[multi-media asset pipeline]
-* xref:ROOT:jme3/external/blender.adoc[Creating assets in Blender3D]
+* xref:how-to/modeling/blender/blender.adoc[Creating assets in Blender3D]
 * link:https://www.blender.org[Download Blender]
 * link:http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro[Blender intro tutorial]
 * link:http://en.wikipedia.org/wiki/Comparison_of_3D_computer_graphics_software#Features[Comparison of 3D graphic software features (Wikipedia)].

+ 2 - 2
docs/modules/tutorials/pages/concepts/multi-media_asset_pipeline.adoc

@@ -7,7 +7,7 @@
 Assets are files that are not code. Your multi-media assets includes, for example, your textures (image files), models (mesh files), and sounds (audio files).
 
 *  You create textures in a graphic editor, for example link:http://gimp.org[Gimp], and export them as PNG or JPG.
-*  You xref:ROOT:jme3/external/blender.adoc[create models] in a 3D mesh editor, for example link:https://www.blender.org[Blender], and export them in GLTF, Wavefront OBJ, or any xref:ROOT:jme3/features.adoc#supported-external-file-types[Supported External File Type].
+*  You xref:how-to/modeling/blender/blender.adoc[create models] in a 3D mesh editor, for example link:https://www.blender.org[Blender], and export them in GLTF, Wavefront OBJ, or any xref:ROOT:jme3/features.adoc#supported-external-file-types[Supported External File Type].
 *  You create sounds in an audio editor, for example link:http://audacity.sourceforge.net[Audacity], and export them as WAVE or OGG.
 
 == Asset Pipeline
@@ -104,7 +104,7 @@ It is imperative to keep the same directory structure from beginning to end. If
 
 == Create 3D Models
 
-Install a mesh editor such as xref:ROOT:jme3/external/blender.adoc[Blender] or 3D Studio MAX. Reuse textures and materials as much as possible. *Consult the mesh editor's documentation for specific details how to do the following tasks.*
+Install a mesh editor such as xref:how-to/modeling/blender/blender.adoc[Blender] or 3D Studio MAX. Reuse textures and materials as much as possible. *Consult the mesh editor's documentation for specific details how to do the following tasks.*
 
 
 [TIP]

+ 3 - 3
docs/modules/tutorials/pages/how-to/modeling/blender/blender_gltf.adoc

@@ -1,6 +1,6 @@
 = Exporting Models as GlTF meshes from Blender
-:revnumber: 3.0
-:revdate: 2020/07/13
+:revnumber: 3.1
+:revdate: 2020/07/24
 
 This section discusses how to export scenes from Blender (2.8+) in glTF format appropriate for use by `AssetManager.loadModel`.
 
@@ -20,7 +20,7 @@ Blender 2.7 had a number of problems in exporting glTF; these notes refer exclus
 
 == Creating Models
 
-Details of how to create models in Blender that are compatible with jME are given at xref:jme3/external/blender.adoc[Creating assets in Blender3D]. Follow all details on that page for creating models before attempting an export.
+Details of how to create models in Blender that are compatible with jME are given at xref:how-to/modeling/blender/blender.adoc[Creating assets in Blender3D]. Follow all details on that page for creating models before attempting an export.
 
 Before exporting a model all transforms need to be applied. This performs the required transforms on the vertices in a mesh to reset the transforms on the object. To apply all transforms in Blender 2.8, select each object (in object mode, not edit mode) then choose from the `Object` menu `Apply/All Transforms`.
 

+ 5 - 5
docs/modules/tutorials/pages/how-to/modeling/blender/mixamo.adoc

@@ -1,6 +1,6 @@
 = Animating Blender Models With Mixamo
-:revnumber: 2.0
-:revdate: 2020/07/15
+:revnumber: 2.1
+:revdate: 2020/07/24
 
 
 
@@ -34,7 +34,7 @@ To properly animate your models there are a few rules you should follow.
 
 [TIP]
 ====
-See xref:jme3/external/blender.adoc[Creating assets in Blender3D] for help on creating jME3 compatible models.
+See xref:how-to/modeling/blender/blender.adoc[Creating assets in Blender3D] for help on creating jME3 compatible models.
 ====
 
 == Blender FBX Export
@@ -256,7 +256,7 @@ Your rigged file is now ready to export. Export your model using one of the xref
 
 == Appending Blender Animations
 
-Follow the directions for xref:jme3/advanced/mixamo.adoc#mixamo-animations.adoc[Mixamo Animations], xref:jme3/advanced/mixamo.adoc#mixamo-download.adoc[Mixamo Download], xref:jme3/advanced/mixamo.adoc#creating-blender-animations.adoc[Creating Blender Animations], xref:jme3/external/blender.adoc#action-baking[Blender Action Baking] and xref:jme3/external/blender/blender_buffer_clearing#the-linked-action-buffer,Clearing The Linked Action Buffer] for all animations you wish to append to your *rigged* animation file.
+Follow the directions for xref:jme3/advanced/mixamo.adoc#mixamo-animations.adoc[Mixamo Animations], xref:jme3/advanced/mixamo.adoc#mixamo-download.adoc[Mixamo Download], xref:jme3/advanced/mixamo.adoc#creating-blender-animations.adoc[Creating Blender Animations], xref:how-to/modeling/blender/blender.adoc#action-baking[Blender Action Baking] and xref:jme3/external/blender/blender_buffer_clearing#the-linked-action-buffer,Clearing The Linked Action Buffer] for all animations you wish to append to your *rigged* animation file.
 
 .  If your `Rigged` file is closed, open it.
 .  From the `Info` header, change the Layout to `Default`.
@@ -305,7 +305,7 @@ In the `Dope Sheet Editor` make sure no `Actions` are selected in the `Action Ed
 
 An `Action` that has not been pushed down into the `NLA Stack` will block your `NLA Strip` from playing.
 
-Some export methods bake your actions automatically on export, others don't. Test the animation in-game and if your animations are all messed up, try xref:jme3/external/blender.adoc#action-baking[baking them] or use a different exporter.
+Some export methods bake your actions automatically on export, others don't. Test the animation in-game and if your animations are all messed up, try xref:how-to/modeling/blender/blender.adoc#action-baking[baking them] or use a different exporter.
 ====
 
 Your NLA strip should look something like this: