Avatar SDK Offline Unity plugin  2.2.0
Realistic avatar generation toolset for Unity3D
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 2.2.0: 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

Known issues

Available pipelines

This version of the SDK supports only Head 2.0 pipeline and includes two subtypes:

  • Head 2.0 | head/mobile (head_2.0 pipeline, head/mobile subtype)
    Predicted head with a detachable haircut and set of 51 facial blendshapes. The mesh topology of a head is always the same.
  • Head 2.0 | bust/mobile (head_2.0 pipeline, bust/mobile subtype)
    Predicted bust with a detachable haircut and set of 51 facial blendshapes. Unique mesh 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

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. Total size of the resources is about 142 mb. Haircuts take ~ 75 mb, blendshapes ~ 19 mb. For example, if you don't need the "ponytail" haircut, you can delete the directory contains resources of this haircut: "Assets/itseez3d/avatar_sdk/sdk_offline/resources/bin/haircuts/plus/ponytail". This way, you can delete the "Assets/itseez3d/avatar_sdk/sdk_offline/resources/bin/haircuts/plus/ponytail" 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?

  • We have implemented integration with UMA 2 unity plugin for the Offline Avatar SDK. You can generate the head in UMA topology and attach it to the UMA character. More info you can find on the page: Integration with UMA plugin
  • There is legacy sample ("Assets/itseez3d/avatar_sdk/samples_offline/03_fullbody_legacy_sample_offline/scenes/03_fullbody_legacy_sample_offline.unity") where the "Head 2.0 | head/mobile" avatars are attached to the body. 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 scene documentation page.

I have an "EntryPointNotFoundException: initAvatarSdk" error or "DllNotFoundException". 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

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?

~58K triangles for bust/mobile avatars 8 LODs supported ranging from ~4K to ~23K triangles per avatar for bust/mobile.

How can I export the generated model?

The generated avatar can be exported in the OBJ and FBX formats.

  • OBJ format is supported on all platforms: Windows, MacOS, Android, IOS.
  • FBX format is supported on Windows and in the standlaone application on MAC.

How do I get more haircuts or blendshapes?

Please see the scene documentation for parameters_sample scene here.

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