Avatar SDK Offline Unity plugin  1.9.1
animted_face and head_1.2 pipelines
Main Page

AVATAR SDK OFFLINE PLUGIN

Avatar SDK Offline plugin generates avatars locally on a client device. Internet connection is used only to log the number of avatars to the Avatar SDK cloud. It tries to connect to our server each time before the avatar calculation.
The plugin is available starting from the Pro subscription plan.

Latest version is 1.9.1: Download

Older Releases
Website: https://avatarsdk.com
Support email: suppo.nosp@m.rt@a.nosp@m.vatar.nosp@m.sdk..nosp@m.com

System Requirements

  • Compatibility: Unity 2018.4 onwards
  • Supported platforms: Windows 64-bit; MacOS X; Android 64bit, iOS 10+
  • CPU with AVX instruction set support for desktop platforms (Windows, MacOS)
  • 2Gb+ of free RAM to generate Head 1.2 avatars
  • 1Gb+ of free RAM to generate Animated Face avatars

Available pipelines

This version of the SDK supports Animated Face and Head 1.2 pipelines. Head 2.0 are available in the separate package.

  • Animated Face (animated_face pipeline)
    Bald head with the optional set of blendshapes for animations (45 facial, 17 visemes) and separate haircuts.
  • Head 1.2 (head_1.2 pipeline, base/mobile subtype)
    Predicted head, haircut, and bust with a set of 51 facial blendshapes for animations. All-in-one model with unique topology.
pipelines_comparison_offline.png
Avatar SDK pipelines

Getting Started

  • First of all, follow Getting Started instructions on the website (https://accounts.avatarsdk.com/developer/#unity-plugin) and in the auth window to set up the authentication, if you haven't done so yet.
  • The best place to start is the Getting Started sample ("Assets/itseez3d/avatar_sdk/samples_offline/01_getting_started_sample_offline/scenes/01_getting_started_sample_offline.unity").
    You can generate 3D avatar from a predefined photo, upload your photo or take a photo by using a web camera. See the Getting Started sample documentation for basic code usage.
  • Other samples can be found in the: "Assets/itseez3d/avatar_sdk/samples_offline" project directory.
  • Start creating your app by modifying one of the samples or starting from scratch. Good luck!
  • Note: if you need to adjust the behaviour of API functions to your liking we encourage you to create your implementations in a separate class/file, using composition or inheritance. If you modify the plugin files directly you will have trouble upgrading to the new versions later. If you find it impossible to proceed without directly modifying the plugin code (e.g. you found a bug) please let us know - we will try to fix this in the next version.

FAQ

This section will be updated in each version. Last updated: 1.9.1

Does it work on mobile platforms?

"Offline" avatar generation currently works on Windows, Android, iOS and MacOSX. Minimal requirement is 2Gb+ of free RAM.

Why my app installation is so big?

The most of this package take binary resources required to compute avatar directly on the client device and generate hairstyles and blendshapes. These resources are quite heavy. You may consider Cloud SDK version which is is really lightweight and works on all devices, even in WebGL.

How can I reduce the installation size?

Offline SDK brings all the resources (blendshapes, haircuts) with it for both Head_1.2 and Animated Face pipelines. Total size of the resources is 265 mb. Animated Face resources take 122 mb. It includes haircuts - 77 mb, and blendshapes - 23 mb. Head 1.2 resources take 142 mb. Blendshapes take 27 mb of this number.
For example, if you don't need the "female_NewSea_J086f" haircut, you can delete the directory contains resources of this haircut: "Assets/avatar_sdk/sdk_offline/resources/bin/face_resources/haircuts/female_NewSea_J086f". This way, you can delete the "Assets/avatar_sdk/sdk_offline/resources/bin/face_resoirces/haircuts" directory if you are not going to use haircuts at all. The same works for blendshapes sets.

Another solution: you can omit including the binary resources into the package. Instead of it the resources are stored somewhere on the server and the client application downloads them before calculating the first avatar.

How can I attach your 3D head to the body?

If you need to generated a fullbody avatar, please, consider the Cloud version of the Avatar SDK. Offline version doesn't support it.
This version contains only the legacy fullbody sample where the avatar is attached to the headless body. You can find this sample in the "Assets\itseez3d\avatar_sdk\samples_offline\03_fullbody_sample_offline\" directory. Please note that it's just an example of how this can be done in the real app, and the low resolution character provided is just a placeholder, you should replace it with your own body models. This method works for any humanoid rig, but of course, you will have the seam between the neck and the rest of the body, which should be covered with some kind of collar. If you have questions about this feature or you need more advanced functionality (like the seamless attachment to your bodies with texture blending), please contact us at suppo.nosp@m.rt@i.nosp@m.tseez.nosp@m.3d.c.nosp@m.om For now, you're encouraged to take apart this sample to see how it works. See the detailed instruction on the Fullbody Sample documentation page.

I have an "EntryPointNotFoundException: initAvatarSdk" error during building the plugin. How to solve it?

Such error happens when the native library can't be found. Most often reason is invalid target platform in the Build Settings.

  • If you run the plugin in the Unity Editor on MacOS, the target platform should be "PC, Mac & Linux Standalone".
  • In case of Windows, please, make sure that target architecture is set to x86_64

I've got the 14 error code during avatar generation. What does it mean?

Error code 14 means that there are not enough free RAM memory on the device for avatar processing.
Most often this error happens during Head 1.2 avatar generation on Android when the 32-bit application is run on the 64-bit device. Our advice is always use the 64-bit (arm64-v8a) build for Android.

Is avatar generation limited?

Yes, the limit of the avatar generation depends on your subscription plan: Avatar SDK pricing. Offline version of the plugin calculates avatars locally but it reports the number of generated avatars to the cloud.

Is there a trial/free mode for Offline SDK?

Yes, we provide 30-day trial for the Pro subscription plan: https://accounts.avatarsdk.com/subscription/

Does it work in runtime?

Yes, the plugin works in runtime. Any player of your game can generate his avatar.

How many triangles do the avatars have?

9 LODs supported ranging from ~3K to ~24K triangles per avatar for the Animated Face pipeline.
8 LODs supported ranging from ~5K to ~50K triangles per avatar for the Head 1.2 pipeline.

How do I get more haircuts or blendshapes?

Please see the scene documentation for the Parameters Sample scene.

How can I generate cartoonish avatars?

Animated Face pipeline supports "cartoonish" avatars. These avatars differ from the regular by the modified geometry and specific textures. "Cartoonish" Head 1.2 avatars don't support geometry modification, only the texture. See the Cartoonish Sample for details.

What recommendations can I give my users in terms of input photos?

The SDK is pretty robust, but these recommendations will improve the quality (in priority order): Our recommendations:

  • The face should be easily recognizable on the photo. The photo is not blurry.
  • Only for Face pipeline: ask the user to remove hair from the forehead and from the sides of the face, otherwise, hair may appear on the face texture.
  • Uniform good lighting on the photo, without dark shadows or too bright glare
  • A person should keep a neutral facial expression or slightly smile but without opening their mouth. If teeth are visible on the input photo the lip texture might be incorrect.
  • It's best to look straight into the camera without turning your neck or eyes. This way Head pipeline can generate good looking shoulders.
  • We advise removing the glasses because they're reconstructed only in the texture, not 3D mesh. But this is not completely necessary.

How to upgrade to a new version of Avatar SDK

Unfortunately, Unity does not provide a consistent mechanism for plugin upgrades, so the most failproof method is to delete the avatar_sdk folder from your project entirely and re-import the entire plugin. If you have changes in SDK source files (this is not recommended and you should try to avoid this, but sometimes it's inevitable), then you can use diff tool like Meld to manually merge your changes to the new version of the plugin. After upgrading it's highly recommended to re-enter your authentication credentials in Window->itSeez3D Avatar SDK->Authentication and press Save Credentials ...

Support

Any questions about the plugin or the avatar generation, general feedback, bugs, ideas, feature requests: suppo.nosp@m.rt@a.nosp@m.vatar.nosp@m.sdk..nosp@m.com.
For commercial inquiries or licensing questions use busin.nosp@m.ess_.nosp@m.suppo.nosp@m.rt@i.nosp@m.tseez.nosp@m.3d.c.nosp@m.om or suppo.nosp@m.rt@a.nosp@m.vatar.nosp@m.sdk..nosp@m.com