-
Notifications
You must be signed in to change notification settings - Fork 8
UnityLocomotionMMU
The UnityLocomotionMMU is a basic MMU modelling walking behavior. The MMU uses global path planning in conjunction with local steering to generate collision-free walk motions. The MMU is based on an animation tree using motion capture data.
Property | Values |
---|---|
Name | UnityLocomotionMMU |
ID | daimler.com:UnityLocomotionMMU/1.0 |
VendorDomain | daimler.com |
Vendor | Daimler Buses |
Author | Felix Gaisbauer |
Short description | MMU models walking behavior based on an animation tree inside Unity. |
Long description | MMU models walking behavior based on an animation tree inside Unity using the Mecanim animation system. |
Programming Language | Unity,C# |
Development Tools | Unity, Visual Studio 2017 |
Service dependencies | PathPlanningService |
MMU dependencies (Motion types) | - |
File dependencies | UnityLocomotionMMU (Asset bundle) |
Application dependencies | requires Unity 2018.4 Adapter or newer |
Additional Libraries | - |
MotionType | Locomotion/Walk |
Events | End, Abort |
Basic MMU | yes |
License | MIT |
In the following an overview of the functionalities and parameters of the UnityLocomotionMMU are provided.
Name | Type | Required | Description |
---|---|---|---|
TargetID | MGeometryConstraint(ID) | yes | ID of the walk target. |
UseTargetOrientation | bool | no | Defines whether the target orientation given by the TargetID object is used. |
ReplanningTime | float | no | The time after which the MMU replans the current path. |
Trajectory | MPathConstraint(ID) | no | Specifies an optional trajectory that is traversed by the LocomotionMMU. |
Velocity | float | no | Specifies the max velocity of the avatar. |
ForcePath | bool | no | Specifies if a straight line path should be used if no path can be found. |
The most important parameter required by the MMU is the TargetID. This parameter defines the target location that should be reached. The parameter is an ID pointing to a respective MGeometryConstraint embedded in the instruction. Moreover, it can be specified whether the rotation given by the target object is used or not. By default, the rotation is ignored.
The MMU provides further parameters such as replanning time. The replanning time defines the time after which the MMU computes a new path. This parameters is especially suitable for dynamic environments. Additionaly, the MMU supports the definition of trajectores using the MPathConstraint class. It uses the 2D path specified within the constraint. Finally the MMU has further parameters for defining the walking velocity, as well as for enabling/disabling the optional transition modeling.
The MMU has no specific scene parameters.
MSceneObject target1 = new MSceneObject(....);
//Walk instruction to walk to a specific target
MInstruction walkInstruction = new MInstruction(System.Guid.NewGuid().ToString(), "Walking to target location","walk")
{
Properties = new Dictionary<string,string>()
{
{"TargetID", target1.ID}
}
};
MConstraint constraint = new MConstraint(System.Guid.NewGuid().ToString());
MGeometryConstraint targetConstraint = ....;
constraint.GeometryConstraint = targetConstraint;
//Walk instruction to walk to a specific target using an MGeometryConstraint
MInstruction walkInstruction = new MInstruction(System.Guid.NewGuid().ToString(), "Walking to target location","walk")
{
Properties = new Dictionary<string,string>()
{
{"TargetID", constraint .ID}
},
Constraints = new List<MConstraint>()
{
constraint
}
};
MConstraint constraint = new MConstraint(System.Guid.NewGuid().ToString());
MPathConstraint trajectory = new MPathConstraint(...);
constraint.PathConstraint = trajectory;
//Walk instruction to walk to a specific target
MInstruction walkInstruction = new MInstruction(System.Guid.NewGuid().ToString(), "Walking to target location","walk")
{
Properties = new Dictionary<string,string>()
{
{"Trajectory", constraint.ID}
},
Constraints = new List<MConstraint>()
{
constraint
}
};
The UnityLocomotionMMU is realized within the Unity3D engine. In principle, the MMU uses the Unity Animator component and a humanoid avatar rig. The Animator contains multiple animations for walking motions. Moreover, an animation-tree is utilized to blend between the different motions. For steering the avatar through the scene, a global path planning is used in conjunction with local motion planning. In particular, the PathPlanningService is required to execute the MMU.
Provided as basic MMU with MIT license.
- What is the MOSIM Framework?
- Components of the Framework
- Repository Structure
- RPCs with Apache Thrift
- Setting up the MMI-Environment
- MMU Development
- Target Engine Integration
- Integration in Unity
- Integration in UE4
- Integration in 3rd Party Engines
- Service Development
-
Intermediate Skeleton & Retargeting
- Concept of the Intermediate Skeleton
- Retargeting Service and Configurator
- Retargeting in Unity
- Retargeting in UE4
- Constraints