NOTE: Relese 0.5.0 has API breaking changes

Note: This package supports the Photon multi-user networking bundle AND requires that bundle to build.

By clicking either of the buttons above, you acknowledge that you have read and agree to the IMVU Creator Program Participation Agreement. 

FEATURES:

  • Login to IMVU: Users login with their IMVU username (WebGL apps that are published to the IMVU site will auto-authenticate)
  • Load a user's avatar, directly into Unity, with the outfit they are currently wearing
  • Load a user's info and 2d images for the user's avatar
  • Load a the user's list of friends, paginated
  • Load friend avatars from the user's friend list to be used as NPCs (loads their "profile" outfit, not the currently worn outfit)
  • Automatic support for level of detail (LOD), keeping your frame rate up
  • When loading IMVU assets and data we handle network retries and throttling for you, keeping your app robust
  • IMVU Feed: read images from IMVU feeds and post screenshots to the user's personal IMVU feed (IMVU has personal, subscribed and recommended feeds)
  • Avatar Outfits: load images of each of the user's outfits. Load each outfit as a new avatar in your app and show outfit details
  • Multi-User support: Added network support and samples for multi-user experiences. The UNetAssetLoader and PhotonAssetLoader components will synchronize the loading of IMVU assets. (Version 0.3.0 has two unity packages available. One supports Photon, the other does not require Photon and can be used with UNet.)
  • 0Auth Support: The 0.4.0 release now uses oAuth for logins. You are required to register your app with IMVU (as noted in the setup documents) and now customers will leverage the safe and secure oAuth flow for logging in.

Once the avatar is in your game you can use ragdoll, equip the character with items, add actions, etc. Anything you can do in Unity3d you can do with these new avatars...and IMVU customers can use THEIR avatars within the experience you create.

CODING EXAMPLES:

These scenes, along with sample code, are shipping with the API for your reference:

  • Equip: Login, load the user's avatar into the scene and provide 4 buttons that equip the avatar with swords
  • Feed: Read and display 7 images from the user's personal IMVU feed
  • FeedPostTest: Take a screenshot and display a dialog allowing the user to post that screenshot to their personal IMVU Feed
  • Friends: Login, load a paginated list of the avatar's friends and load each friend avatar into the scene when clicked on by the user
  • Identity: Login, load the user's avatar into the scene and display a 2D image of the avatar along with some user details
  • Logout: Show how login and logout works
  • MaterialType: load an avatar and look at it using Lit, Unlit and Physically Lit shaders. (Unlit shaders greatly reduce the GPU overhead, and are particularly useful on mobile.)
  • Outfit: Display images for each of the user's outfits. When the user selects one his/her avatar is updated with that outfit
  • Photon: Run multiple instances of this sample and load multiple avatars into one multi-user scene (requires Photon)
  • Ragdoll: Login, load the user's avatar into the scene and provide buttons to drop the avatar into ragdoll mode and back
  • UNet: Run multiple instances of this sample and load multiple avatars into one multi-user scene (uses UNet)

RELEASE NOTES:

v0.5.0   (12/18/15)

This Release Has Breaking Changes!

  • Imvu.Login() and Imvu.Logout() have been renamed to Imvu.Connect() and Imvu.Disconnect()
  • Promise.Then() and Promise.Catch() can no longer take lambdas with no return type. Instead use the new functions Promise.Match(), Promise.MatchVal() and Promise.MatchErr() to handle those cases.
  • The Promise constructors that took a value or error directly are gone. Instead, use the static functions Promise.Val() and Promise.Err(). These are less ambiguous.
  • Result.Ok() has been renamed to Result.Val()
  • Result.IfOk() and Result.IfErr() have been renamed to Result.MatchVal() and Result.MatchErr()
  • Result.IsOk() and Result.IsErr() have been renamed to Result.HasVal() and Result.HasErr()
  • Promise.Branch() was removed. It was confusing and rarely used
  • Results can now be chained. The Result.Then() and Result.Catch() functions mirror the functions by the same name on Promise. The lambdas passed to them can return a Result or a Promise.
  • Remove Result.MakePromise(). Since Result is now chainable, and Result.Then() and Result.Catch() can also return a Promise, this should no longer be necessary.
  • See our blog, Promises Explained, for more info

Bug Fixes:

  • Attempt to connect when there is no Internet connection can no longer cause a NullReferenceException
  • Posting to the IMVU Feed was broken in 0.4.1 and is now fixed

Other Changes:

  • You will now receive a console warning if you attempt to connect when no OAuth settings have been set
  • You will now get a console error if you attempt to build for Android without setting the custom protocol in the AndroidManifest.xml

v0.4.1       (12/1/15)

New Features:

  • Add ID to UserInfo, to uniquely identify a user
  • Add Imvu.loggedIn to check whether the user is currently logged in

Bug Fixes:

  • OAuth login now works on Android
  • No longer load AP outfits. Avatars will be loaded with their General Audience (GA) outfits for now. This is the first step and separating content by ratings. Later Access Pass (AP) clothing can be shown to users who have AP rights, while others will always see GA outfits, for their protection.
  • No longer create a ServiceProvider in the scene when using the Logout button in the IMVU Settings window.

v0.4.0     (11/20/15)

OAuth:

  • Login will occur on the IMVU website instead of inside the app, so no more placeholder login dialog
  • Authentication will be remembered between sessions
  • The app now requests certain capabilities when authentication occurs, which gives the user assurances about what it will and won't be able to access
  • Login is now possible from WebGL apps
  • The API remains the same, but some additional setup is required, see the Setup section of the docs
  • Logout: It's now also possible to log out in order to login with a different account, see logout demo
  • LocalLoginSettings is gone, as it's redundant now that authentication is saved between sessions anyway

Other New Features:

  • Default Load Settings: The default LOD settings and material type can be configured in the editor. These defaults can be altered at run time, and optionally saved to the user's local storage.
  • Load Options cleanup: The optional LOD settings and material type parameters when loading an asset are now specified in a cleaner way. These parameters, if specified, will override the configured defaults.
  • Load Options work with Photon and UNet now
  • Mesh objects are now sorted into parent objects by LoD level

Bug Fixes:

  • Avatars without animators will now be upright
  • Loading spinner is now always centered on the avatar

Limitations:

  • Android oAuth support is not fully supported yet...we are working on that. For now focus on iOS and WebGL
  • The developer page (https://secure.imvu.com/developer/) is a very early page for testing. We are developing a much better experience. This is more for developers to test oAuth right now. You will need to register your apps there, along with which platforms they use...and you will need to register a list of avatar names that are allowed to login to your app during your test cycle.

v0.3.5         (10/8/15)

Features:

  • Shaders
    • Add a new MaterialType, called Lit, which uses Unity's legacy shaders, useful when lighting is desired but the fancy PhysicallyLit MaterialType would be overkill
      • NOTE: The loaders now default to the `Lit` shaders instead of the `PhysicallyLit` shaders. This should give you a frame-rate improvement, but it will require you to change which shaders are added to your Always Loaded Shaders list. See the setup instructions for help with this.
    • Moved Unlit shaders into the shaders directory, as they still need to be added to the Always Included Shaders list to work properly. Also divided the shaders into sub-directories to make it easier to intelligently choose which ones to add.
  • Product Information
    • The OutfitModel now includes a list of Product IDs (PIDs) [Thanks Xavier!]
    • Add ProductModel, which contains info on products, and a ProductCollection, for a list of ProductModels, which can be accessed from GetProducts off the OutfitModel or LookModel

Fixes:

  • Added a warning when shaders are used that aren't added to the Always Included Shaders list

v0.3.4         (10/5/15)

Improvements:

  • Unlit Shaders - You can now load avatars with simple, unlit shaders. This greatly reduces the GPU overhead, and is particularly useful on mobile. [Thanks Selzier!}
  • Unity 5.2.1p1 support (this is now the recommended build)
  • Improved load time on some avatars by not loading a bunch of extraneous data
  • Added a MaterialType demo, to demonstrate Unlit shaders vs. Physically Lit shaders

Fixes:

  • Fix various bugs which caused the API to break on Android and iOS.

v0.3.3         (9/16/15)

New Features:

  • A spinner now appears under the avatar while it's loading. The effect can be changed by replacing IMVUnity/Resources/LoadingIcon.prefab
  • PhotonAssetLoader and UNetAssetLoader now have an OnLoaded() virtual function, which is called when it finishes loading an avatar

Demos:

  • Friend demo now supports clicking on friends to load their avatars
  • Camera position adjusted in most demos
  • Feed demo reads from the subscribed feed instead of the recommended feed
  • Fixed a subtle bug in the spawn points in the Photon demo

Bug Fixes:

  • Avatar meshes would often be culled incorrectly, this is fixed

v0.3.2         (8/18/15)

  • The Photon demo no longer uses tags to identify spawn points, because the tags will not be properly configured in the project it's imported into (thanks VR49)
  • The Photon demo now outputs error messages when it fails to connect to the Photon matchmaking server
  • The LOD section of the docs are updated to properly reflect the deprecation of AssetLoader (thanks Rieno) 
  • Misc small fixes for the docs

v0.3.1         (8/4/15)

General Changes:

  • Added the TextureLoader to the documentation, which was missed in the last release
  • The Equip demo now uses AssetInfo to access bones, which is the correct approach

Bug Fixes:

  • Fixed a bug where some bones were badly scaled
  • Fixed a bug where transparent meshes in avatars were being rendered in the wrong order
  • FIxed a bug where the PhotonAssetLoader wouldn't ever accept the promise returned by the Load function
  • Fixed a bug where the PhotonAssetLoader would attempt to load the avatar a second time on the local player

NOTE: We currently suggest using version 5.1.1f1 of Unity3D. We have seen problems with 5.1.2f1, particularly with webGL builds.


v0.3.0         (7/31/15)

New Features:

  • IMVU Feed: read images from IMVU feeds and post screenshots to the user's personal IMVU feed (IMVU has personal, subscribed and recommended feeds)
  • Avatar Outfits: load images of each of the user's outfits. Load each outfit as a new avatar in your app.
  • Multi-User support: Added network support and samples for multi-user experiences. The UNetAssetLoader and PhotonAssetLoader components will synchronize the loading of IMVU assets. (Version 0.3.0 has two unity packages available. One supports Photon, the other does not require Photon and can be used with UNet.)

Improvements:

  • Simplified: Remove the populated field from RestModels and RestCollections. This simplifies the code for accessing most IMVU data.
  • Better Errors: Promise and Result error cases now use the Error class instead of strings. This makes it much easier to write code that's aware of specific error types.
  • Imvu.Login() can now be safely called multiple times. Safely call it any time you need the UserModel of the logged-in player.
  • Cancel button on Login dialog is now configurable. By default the Cancel button is not present. Pass a Boolean argument to have it appear.
  • Mesh GameObjects now have unique names, as requested by our developer community.
  • LoadAssetComponent has been renamed to LocalAssetLoader.
    • The AssetLoader is no longer intended to be used directly. Use the LocalAssetLoader instead.
  • Promise.All now guarantees that the resulting list will be in the same order as the provided list.

Bug Fixes:

  • Fixed a bug that made animated textures skip frames.

Notes:

  • Remember to delete the previous API package before installing this new version
  • We are using Unity3D version 5.1.2f1
  • If you use the IMVU API package that supports Photon then you will be required to install the Photon package for it to build
  • The login dialog now reads from Assets/IMVUnity/login.json for a json file of the form:

    {

        "username":"myname",

        "password":"mypwd"

    }

If this file exists and you are in the editor then you will be auto logged in, for debugging. (If you use GIT, you may want to add this file to your .gitignore file so you don't check it in accidentally.)


v0.2.0         (7/8/15)

New Features:

  • Access to friend list (see the new Friends demo)
  • Loading friend's avatars
  • Mesh Level of Detail
  • Added the Branch function to Promise (see the documentation)

API Breaking Changes:

  • REST is now renamed to Imvu, so REST.Login() is now Imvu.Login()
  • Many fields removed from UserInfo, to reflect a change coming to the back-end service
  • LoadAssetComponent.Load() now returns a Promise, instead of taking a callback as an argument

Other:

  • Improved loading reliability
  • A Promise Catch clause that returns another Promise will now handled properly

v0.1.6         (6/15/15)

Changes:

  • Fixed a bug in how avatars with bone scalars were rendered
  • Fixed "isFinite()" error messages that were caused by static meshes
  • Temporarily disabled self-illuminated textures because they were making materials look white

v0.1.5         (6/10/15)

Changes:

  • Source moved into a DLL
  • Support self-illuminated textures
  • Support animated textures