Unclaimed Package Is this your package? Claim it to unlock full analytics and manage your listing.
Claim This Package

Install via UPM

Add to Unity Package Manager using this URL

https://www.pkglnk.dev/track/motionai.git#upm

README

MotionAI

openupm License: MIT

Register for license key

To use our SDK a license key is required which is generated after a short registration and your acceptance of the license terms.

--> Register to get the license key

Our beta-sdk is actually completely free for non commercial usage/testing. See details in the license terms.

Please contact us for commercial use. info@evomo.de


Requirements

  • The EvomoUnitySDK is currently only available for iOS.
  • The EvomoUnitySDK requires a minimum Xcode 11.4 with Swift 5.2
  • The EvomoUnitySDK requires a minimum iOS target of 12.1.
  • The EvomoUnitySDK only supports 64 bit builds.

Install

We recommend using the OpenUPM to install it by running:

openupm add com.evomo.motionai

But if you wish to use it without installing an external dependency you can add the scope and dependencies using:


{
  "scopedRegistries": [
    {
      "name": "package.openupm.com",
      "url": "https://package.openupm.com",
      "scopes": [
        "com.solidalloy.type.references",
        "com.evomo.motionai",
        "com.openupm"
      ]
    }
  ],
  "dependencies": {
    "com.evomo.motionai": "[Latest-Release-Version]"
  }
}

Quick Setup

  1. Register for a license key
  2. Create an SDK License Asset Create an SDK by clicking on Evomo -> MotionAI -> Create SDK Settings and add your license key.
  3. Place MotionAIManager component in your scene and reference the SDKSettings you created.
  4. Attach the MotionAIController component to your player.
  5. Choose a model that you wish to track inside the MotionAIController editor
  6. Subscribe to the events in the "Tracked Moves" object inside the Controller

Important Components

MotionAIManager

This component handles the communication with the inference engine Native SDK, handles the controller pairing and propagates the acquired messages to the registered controllers.

If automatic pairing is checked the controllers found in the scene are registered to the manager.

MotionAIController

This component reacts to the messages and dispatches different events depending on the given movement performed. It can be used with the stock component or override (for example).

There are multiple ways to react to the events. You can directly reference the used model component as shown in the example above, but all the event handling can also be done through the editor by accessing the "Tracked Moves" object inside the editor and subscribing to the desired move.

Models

These represent a usable container inside of Unity with the metadata of different trained neural networks. They are autogenerated and are read only. You should only initialize these components via a dropdown in the Model Manager class inside the MotionAIController component.

The models are representations of the tracked movements with their events, these are exposed in the MotionAIController in the Tracked Moves class.

Model Type defines if you would like to track Full Movements(Fitness) or Elmos(Gaming). Full movements are a collection of succesive Elemental Movements (Elmos for short) performed in a certain order.

A full list of the available movements and elmos can be found here

Feel free to explore the different models found in the models folder to get a better understanding of which moves/elmos are present in each model.

**Movesense Sensor Usage **

  • Select Sensor Type Movesense in the SDK-Config
  • You have to scan for the movesense sensor every time before you start movement tracking
  1. Execute ScanForMovesense() of MotionAIManager GameObject
  2. Turn on the Movesense device by connecting both pins on the backside and hold the sensor near the smartphone till it beebs
  3. Execute StartTracking() of MotionAIManager GameObject ...
  4. After the tracking session execute StopTracking() of MotionAIManager GameObject

MotionAIControlDebugger

The ControlDebugger is an interface to send debug movements with a delay and play your games in the editor. An EvoDebugInputAsset Scriptable Object (Evomo -> MotionAI -> InputDebugAssets) is used to map the keyboard keys to the the desired movement and/or the controller device ID.

This is placed in the object which contains a MotionAIController

Examples

Further examples can be found in the samples of the package or in the following prototypes:

Building

1: Export/Build the xcode project from unity.

Be sure to set the minimum iOS version to 12.1 and the supported arch to ARM64 only in your unity player settings before exporting.

Cocoa Pods

2: Install Cocoa Pods on your Mac

sudo gem install cocoapods

3.1: Install pods

Navigate to the project folder and run pod install on the console. From then on use the generated project workspace and you should be good to go.

This process only needs to be done the first time you export from unity. For following builds you can use the 'append' option.

If you use the replace option then you will need to follow these steps again.

3.2: Optional: Update Evomo SDK

Upgrade the evomo cocoa pod if needed with the shell command pod update in your Xcode project folder.

Then go into the Xcode workspace and clean the project build folder with: Product > Clean Build Folder

Optional: Add the Evomo cocoa pod file manually (normally it will be automatically created after building)

Run pod init in the project and add the following cocoa pod to the targets of your pod file:

pod 'EvomoUnitySDK'

Add an extra source to the top of the podfile:

# Evomo private specs repo source
source 'https://bitbucket.org/evomo/evomopodsrelease.git'

IMPORTANT NOTE:

Once again you must check if you have a target named 'UnityFramework' and if so add the pod to that target only. If you do not have that target in your podfile then you should add the pod to the target named 'Unity-iPhone' only.

Example Podfile:

# Evomo private specs repo source
source 'https://bitbucket.org/evomo/evomopodsrelease.git'

# Standard cocoapods specs source
source 'https://github.com/CocoaPods/Specs.git'

# Uncomment the next line to define a global platform for your project
platform :ios, '12.1'

target 'EvomoUnitySDK' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
	
  pod "EvomoMotionAI/Basic"

  # Pods for EvomoUnitySDK
end

Hint

To avoid manual inputs in Apple App Store Connect setup the encryption config.

Unless your app is using some special encryption you can simply add Boolean a key to your Info.plist with name ITSAppUsesNonExemptEncryption and value NO.

Total Installs
0
Last 30 days
Unique IPs
0
Approximate users

Installs Over Time

Operating Systems

No data yet

Top Countries

No data yet

Git Versions

No data yet

Embed Install Badge

Add an install count badge to your README

Style
Preview
pkglnk installs badge
Markdown
[![pkglnk installs](https://www.pkglnk.dev/badge/motionai.svg?style=pkglnk)](https://www.pkglnk.dev/pkg/motionai)
HTML
<a href="https://www.pkglnk.dev/pkg/motionai"><img src="https://www.pkglnk.dev/badge/motionai.svg?style=pkglnk" alt="pkglnk installs"></a>

Comments

No comments yet. Be the first!