Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This guide will explain each step of the Animate Anything processes.
The Animate Anything service is currently in an early access stage. As with all innovations we’ve honed the spec for our MVP, choosing to offer a wide variety of categories for launch with a basic support function, so whilst Animate Anything is in its ”experimental phase” please bear with us.
To begin let's open the Animate Anything web tool and sign in or sign up to get started.
Before uploading make sure that your model (and relevant external files) have been prepared correctly. Please check out our guide on How to get the Best Possible Results for your Model.
Proceed to the upload page to upload your model to the Animate Anything web tool. You can either drag and drop or Browser your computer for the 3D model files.
When your files are uploaded you will see a list appear underneath of the drag and drop box. In this example we have provided an OBJ file which requires an MTL (and a PNG file for the texture of the model when applicable.)
Please keep the following restrictions in mind when uploading your model.
A single file must not exceed 30MBs.
All files must not exceed 100MBs.
One mesh at a time please!
Include necessary external files (OBJ requires a MTL file and unembedded GLTF files require a BIN file.)
Include all texture files if they are not embedded in the model file.
Models with more than 20k vertices will be decimated (reduced to 20k vertices.)
Once all files are uploaded, please review the model processing constraints and tick the checkbox to enable the continue button. Select continue to proceed to the next stage.
On the left side of the page you will see your 3D model appear and to the right you will see the model name and model type textboxes. If there is any uncertainty regarding the model types, select the question mark icon to learn more about the most common names for your model.
Provide the name you would like to give this model as well as what kind of model it is. In this example, I've uploaded a dog so the model type would be dog or canine. The model type field will check your input to make sure it's a verified subcategory. Then select the continue button.
You will be navigated to the model category page so that we can confirm that you are receiving the correct rig for your model. The model type correctly categorized the example model as a Canine & Feline under the quadruped category however there may be a circumstance where you will need to manually change the subcategory. Simply select a valid subcategory for your model to process. Select the continue button to proceed.
The next step is to ensure that the model is facing the correct direction, if you followed the Preparing your 3D model guide than your model should match the rotation reference image. If your model does not match the rotation reference, we can fix it right from this view. You can select the quarter circle on any of the front, side, or top views of your model to rotate.
If you make any mistakes and want to revert back to the original rotations, you can always select the 'Reset rotation' button to go back to default. Once the model is aligned with the rotation reference all that is required is to select if the model is symmetrical or not. The purpose of this symmetry identifier so to provide the best possible rig for both situations. In the next stage we will demonstrate how this effects the generation of the rig. Select continue to proceed.
Please note users are more likely to receive better results if the model is symmetrical.
Depending on the category selected during the previous page, your model will follow one of three paths.
Animation Workflow: You've uploaded a humanoid or animal to rig and animate the model.
Parts Workflow: You've uploaded a vehicle such as a car or bike to separate the various parts (wheels) for animation.
Static Workflow: You've uploaded an object that does not require animations such as an object or flora.
Now that the Tweak your rig page has displayed, it's time to double check that we are happy with the results of the rig. We can rotate the model in the 3D view port by clicking and dragging and we can zoom using the middle scroll button. In this example, the auto-rigging process did a great job in placing the nodes however it's recommended to do some fine-tuning to receive the best possible results.
To adjust the bones of this rig, select the desired red node and use the provided arrow gizmo to move the node in 3D space. This gizmo should look familiar if you have used a 3D modeling software like Blender, Maya, 3DsMax, or even Unity and Unreal.
Remember during the last step we provided the information about it's symmetry? Since we marked this model as symmetrical, we can see it in action with the Mirror selection option. Additionally when you select any of the leg nodes, you'll see that the mirrored node is also selected. This feature is to simplify the process of make sure that the arm and leg bones remain perfectly symmetrical.
If you were to mark your model as asymmetrical, this option would be irrelevant and is not displayed.
Mirror selection can be disabled so that you can work with a single node at a time.
Keep in mind that you can always revert to the default rig by selecting the Reset Rig option. The same is true for the camera position of the 3D model viewport.
Once we are happy with the rig we can proceed to the file step, select the View Animations button to continue.
You will be redirected to our loading page while Animate Anything is animating your model. Once the animations have completed you will be navigated to the Animation page to see your final results!
Please note that the expected wait time for processing models during this stage is 8 - 30 minutes depending on the model type and vertices count.
Finally, we can see the animations in action! The page will display your 3D model's animation in the 3D view port to the left and a list of animations on right. From here you can select each animation buttons to view it in the 3D view port.
You can download a single animation by selecting the Download button in the viewport or download all animations by selecting the Download all animations button.
Please note it will take some time in order to generate all the formats, however the fastest format to be generated is the FBX version.
This version of the rigged and animated model will be saved in your "My World" page. This model will also be accessible in your favorite Anything World plugin to streamline the process!
The parts workflow does not animate a vehicle model, rather it separates a single vehicle mesh into multiple parts.
All steps up until this point are the same as the other flows. Once we have applied the correct rotation and marked as symmetrical or asymmetrical from the rotation view, we can select the continue button to proceed.
This process is relatively quick and should only take 2 - 5 minutes to complete processing.
Once completed, you will be automatically be re-directed to the parts viewer page. The right panel will display the model parts key which represents the identified parts of the model. In the provided example we have a body (blue), a front wheel (pink), and a hind wheel (green).
This means that when download this model, there should be three separate mesh files. One for the front wheel, one for the hind wheel, and one for the body.
These parts will retain their global position when imported to your favorite 3D software or game engine!
Models will follow the static workflow when providing keywords that relate to plants, objects, or places. Your model will be accessible for all Anything World platforms such as the Anything Unity plugin and the Anything Unreal plugin. Animate Anything is a great place to store your model's for any project!
Here we have uploaded a palm tree as our example, once the tree has been identified we can proceed to the category page.
Once we have ensured that the model is categorized as a static model, we can proceed to the rotation page by selecting the continue button.
Here we can see how the model will be displayed when either importing the model to a Anything World plugin or when downloading the model.
Processing a static model is a very fast process and should take less than 2 minutes to complete.
From this view you can see your model as it will appear across all of the Anything World plugins as well as download the model as an OBJ file.
All workflows will lead you to the processed models section of the My World page. Here you can see your personal repository uploaded models.
Keep in mind that your processed models are accessible from the Anything Unity plugin and Anything Unreal plugin. To access your processed models from these plugins, navigate to the My World panel and open the processed models sub section.
Learn how to build and deploy real-time game applications using Anything World in minutes! We support Unity, Android, iOS and Web!
Anything World is an innovative platform that combines AI, voice computing and 3D rendering with layers of behavioural intelligence. We enable users to request and play with any object imaginable. It’s the easiest and fastest way for developers to create AI-driven 3D experiences powered by voice.
At Anything World we provide unity SDK where you can browse the collection of many different 3D characters which are fully textured and animated with our own custom set of behaviours!
Anything World is a platform that enables developers to build interactive 3D experiences up to 40% faster and more cost-effective than anyone else. Thanks to the power of AI. As a developer using our platform, you can browse an extensive collection of many different 3D assets and integrate them directly into your projects.
Anything World allows you to bring your projects to life with 3D characters ready to be used for games, interactive experiences and immersive tech development such as augmented reality and virtual reality, where 3D is at its core.
Take a look at our showcase and get inspired!
That's a great question! In terms of extreme and even most mild cases where the uploaded mesh does not resemble the subcategory, you will likely fail to process. In some minor cases, users can successfully rig and animate a model that closely resembles the desired subcategory.
Unfortunately there is no way to re-rig the model once the model has completed the Animate Anything process, however we intend to fix that in the near future!
3D models lose reference to the necessary external image files often, especially when downloading them from 3D model website. Make sure those external image files are connected or associated properly in your 3D file. We recommend opening the file in Blender first to ensure that the file structure didn't break.
The missing material/texture plays no role in how the rig and animations are generated. You can always apply the material and texture to the animated version of the model in your favorite 3D modeling software.
If your model looks like this then you most likely have a broken reference (meaning the picture file is not where the 3D file expected it to be). If this is the case there is an easy fix, (Assuming we are using Blender) simply open the Shader Editor by selecting the top left icon icon of any of the panels and navigating to the Shader Editor option under the General panels.
In the 3D viewport, change to Object mode and select the component that is missing texture (or open the material's properties panel).
From here we should see a box that is connected to the base color parameter for the Principled BSDF node. Selecting the file icon should open a file browser, from here navigate to the the missing texture file. Repeat for any relevant files (normals, metallic, etc.) by finding the associate parameter and replacing the missing file in Shader Editor.
Head over to the section to begin developing with Anything World.
Check out our section or our .
If you have any questions, join our , send us an email at hello@anything.world, reach out on , connect on , or to say hello.
When you export the file from Blender be sure to either strip the path or embed the textures by using the correct path option for the relevant file type.
Biped
Human & Humanoid
Mini Humanoid, Blob Humanoid, Biped Dinosaur, Large Hopper
Quadruped
Canine & Feline, Lean Hooved Mammal, Long-neck Mammal, Bear & Co, Tortoise, Turtle, Ferret & Co
Hefty Hooved Mammal, Elephant, Lizard, Salamander & Co, Tailed Rodent & Co, Skunk & Armadillo, Crocodile, Primate, Tailless Rodent & Co, Small Hopper, Long-necked Dinosaur
Insect & Arachnid
Ant & Co, Crustaceans, Hopper Insect, Beetle & Co, Ladybug & Co, Small-winged Insect, Big-winged Insect, Scorpion & Co, Spider & Co
Bird & Flyer
Flying Bird, Walking Bird, Hopping Bird
Winged Dragon, Waddling Bird
Vehicles
4-wheel Vehicle, 3-wheel Vehicle, 2-wheel Vehicle
1-wheel Vehicle, Helicopter, Airplane, Biplane, Spaceship, Ship, Submarines, Tanks
Water Creatures
Fish & Cetacean
Snakes & Worms
Worm & Co, Snake & Co, Cobra & Co
Static
Object, Flora & Place
Biped
Human & Humanoid
Idle
Parry – Arm
Jump
Parry – Axe
Jump - Start
Attack – Axe
Jump - Fall
Draw – Axe
Jump - End
Sheathe – Axe
Walk
Idle – Axe
Run
Crawl
Talk
Cross Punch – Left
Cross Punch – Right
Crouch
Crouch Walk
Dance
Die
Shout
Drive
Eat
Get into – Bed
Get up – Bed
Get up – Couch
Get up – Driving
Get up – Lying Down
Get up – Sitting
Kick – Left
Kick – Right
Lie Down
Idle – Lying Down
Punch – Left
Punch – Right
Put Away - Gun
Draw – Gun
Shoot
Running Jump
Running Jump – Start
Running Jump – Fall
Running Jump – End
Sit
Sit Down – Driving
Eating - Sitting
Idle - Sitting
Sleep
Attack – Sword
Draw – Sword
--
--
--
--
Quadruped
Canines & Felines
Idle
Jump
Jump – Start
Jump – Fall
Jump – End
Walk
Run
Lean Hooved Mammal
Idle
Jump
Jump – Start
Jump – Fall
Jump – End
Walk
Run
Long-Neck Hooved Mammal
Idle
Walk
Run
Bears & Co
Idle
Walk
Run
Tortoises
Idle
Walk
Turtles
Idle
Idle – in Water
Walk
Swim
Ferrets & Co
Idle
Walk
Run
--
--
--
--
Winged
Flying Birds
Fly
Glide
Walking Birds
Idle
Walk
Hopping Birds
Idle
Walk
Hop
Yes! Models that are created using our Generate Anything tool can then be animated using our Animate Anything tool. Keep in mind however, that the model needs to fit into our supported categories in order to successfully receive a rig and animations.
Generated models are provided in the following formats: FBX, GLB, GLTF, OBJ & USDZ Downloads include both the mesh and texture of the model.
Absolutely! Generated Models can be downloaded as-is and can be opened in 3D editing software to make any adjustments you like.
Frequently asked questions about Anything World
You will have a monthly free API call limit depending on the tier. This limit includes all requests made from the model browser in editor (eg. clicking on a model and bringing it into the scene in Unity) and during the runtime of the project (eg. calling a model through the scripting API in engine, making a request directly to our API).
You will be notified via email when you are 100 requests away from reaching your free allowance in the month, after the free requests have been reached the API calls will be paid on a per request basis.
For more information on tiers and to calculate usage fees visit our website.
We offer an Anything World plugin which can be installed on the Unity and Unreal game engines, with additional platforms coming soon! Projects can be packaged for computers, web browsers, mobile platforms and others using the game engines. Our library of 3D models can also be found in our website, and please see the next section for custom model processing.
We're pleased to announce that users can upload and animate their own models through the Animate Anything web tool. See our guide on Getting the Best Possible Results for your Model for more details on preparing your model for Animate Anything.
We also support also support uploading models through API request and with our Python Package.
We're open to discussing custom content with select partners! Reach us at hello@anything.world.
You can reach us via support@anything.world or connect with the community on Discord and we'll help out!
Here you can get a general idea of how our tool currently responds to the most commonly used text prompts and image examples and what quality of model you can expect.
Please refer to this table for our current expectations of model generation from our Generate Anything tool by category, as well as whether or not that category can then be animated using our Animate Anything tools.
Be aware that this table references the reliability of the generation, and not the quality of the textures produced, which may vary.
Please note, our Generate Anything tool is in the Early Access stage and outliers may occur in generations of any type. This table is to be used as a general guide and is by no means exhaustive or definitive.
Result Key - High: regularly good results | Average: mostly good results | Low: unpredictable results
Biped
Human
High
High
Supported
Humanoid
High
High
Supported
Blob
Average
High
Coming Soon!
Mini Human/noid
High
High
Coming Soon!
Dinosaur
High
High
Coming Soon!
Large Hopper
High
High
Coming Soon!
Quadruped
Feline/Canine
High
Average
Supported
Lean Hooved Mammal
High
Average
Supported
Long-neck Mammal
High
High
Supported
Bear & Co
High
Average
Supported
Tortoise
Average
Average
Supported
Turtle
Average
High
Supported
Ferret & Co
High
Average
Supported
Hefty Hooved Mammal
Average
Average
Coming Soon!
Elephant
High
Average
Coming Soon!
Lizard
High
Average
Coming Soon!
Salamander & Co
High
Average
Coming Soon!
Tailed Rodent & Co
Average
High
Coming Soon!
Skunk & Armadillo
High
Average
Coming Soon!
Crocodile
High
Average
Coming Soon!
Primate
Average
Average
Coming Soon!
Tailless Rodent & Co
High
High
Coming Soon!
Small Hopper
High
High
Coming Soon!
Long-necked Dinosaur
High
High
Coming Soon!
Insect & Arachnid
Ant & Co
Average
Low
Coming Soon!
Crustaceans
High
Average
Coming Soon!
Hopper Insect
High
Average
Coming Soon!
Beetle & Co
Average
Low
Coming Soon!
Ladybug & Co
Average
High
Coming Soon!
Small-winged Insect
Average
High
Coming Soon!
Big-winged Insect
Average
Average
Coming Soon!
Scorpion & Co
Average
Low
Coming Soon!
Spider & Co
Average
High
Coming Soon!
Bird & Flyer
Flying Bird
High
Low
Supported
Walking Bird
High
High
Supported
Hopping Bird
High
Average
Supported
Winged Dragon
High
High
Coming Soon!
Waddling Bird
High
High
Coming Soon!
Vehicles
1-Wheel Vehicle
Low
High
Coming Soon!
2-Wheel Vehicle
High
High
Not yet recommended for generated models
3-Wheel Vehicle
Average
High
Not yet recommended for generated models
4-Wheel Vehicle
Average
High
Not yet recommended for generated models
Helicopter
High
High
Coming Soon!
Airplane
High
High
Coming Soon!
Biplane
Average
Average
Coming Soon!
Spaceship
Average
Average
Coming Soon!
Boats & Ships
High
High
Coming Soon!
Submarine
Average
High
Coming Soon!
Tanks
Low
Low
Coming Soon!
Water Creatures
Fish & Cetacean
High
High
Coming Soon!
Snakes & Worms
Worm & Co
Average
High
Coming Soon!
Snake & Co
High
Average
Coming Soon!
Cobra & Co
High
Average
Coming Soon!
Static
Objects
High
High
Unsupported
Flora
High
High
Unsupported
Buildings
High
High
Unsupported
Models in supported Animate Anything categories still need to comply with our Animate Anything constraints and requirements. For further information, please refer to our Animate Anything documentation.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Updates:
Major UI updates.
Add Collider & Add Rigidbody Make settings are enabled by default.
Several animated models failed to play when imported to a Unity scene.
Make Settings failed to persist between Unity sessions.
Default Behaviour script for Humans walk indefinitely towards a unreachable goal.
Known Bugs:
Android builds fail to compile.
WebGL builds fail to compile.
Serialize Asset has been disabled due to issues when importing assets.
Colliders added through Make Settings are inaccurately calculated for some models.
We understand the frustration that may be caused from these issues and we want to assure you that our development team is actively working to address these bugs with a hotfix in the near future.
We greatly appreciate your understanding and continued support. If you encounter new issues or have any suggestions, please don't hesitate to reach out to us. Your feedback is invaluable in making our software better.
Thank you for being a part of our community.
You can download the package from your profile in Anything World's website.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Updates
My Processed Models: Introduced a feature for users to view and manage their processed models from Animate Anything website.
Drag & Drop Functionality: Improved model placement with an intuitive drag & drop interface.
Click-to-place mode: Similar to Drag & Drop but seamless and continuous to improve usability.
Enhanced Welcome Screen: A redesigned welcome experience to guide users on effectively utilizing the tool.
Auto-Saving Settings: The settings page now automatically saves changes, ensuring user preferences are preserved.
Area grid alignment: Now you can use the area of a GameObject to relocate the new models and change the parameters to realign them automatically until you like it.
WebGL Compatibility: Resolved issues to enable seamless WebGL builds.
Placement Accuracy: Enhanced algorithm for precise placement of objects on surfaces.
Model Capsule: Resolved problems with the capsule orientation and size.
Undisposed network resources leading to potential memory leaks.
Serialisation: Serialisation now allows the user to generate prefabs from the created model.
Animations: All animations associated with the skeletons of the models the user choose to import should now be available to be used in Unity.
UI Interface: Bugs pertaining to the My World window, AI Creator, and Model Browser have been resolved, including collection names now needing to be unique and legacy UI being replaced with the new and improved variant.
This and much, much more!
We greatly appreciate your understanding and continued support. If you encounter new issues or have any suggestions, please don't hesitate to reach out to us. Your feedback is invaluable in making our software better.
Thank you for being a part of our community.
You can download the package from your profile in Anything World's website.
Setup your Unreal project
This page introduces the Anything World plugin for Unreal Engine 5 and gives indications on how to install it and start using it. This plugin allows you to browse for static and animated 3D models in Unreal and spawn them directly in your Unreal projects.
The Anything World plugin for Unreal Engine 5 is currently in early access and its features should be considered experimental and may change significantly in later updates. Please take this into account when considering using this plugin in your specific use case.
Requirements:
Unreal Engine 5.0, 5.1, 5.2, 5.3 or 5.4.
Unreal C++ Project
Visual Studios 2019
Anything World Account Details
Anything World SDK
The plugin has been tested in using the Visual Studios IDE and Visual Studio Code however additional testing is required to ensure it is well supported in other platforms.
If you're completely new to Unreal it might be a good idea to learn a bit about the Unreal interface. The documentation provided by the Unreal team is a great place to start learning.
Once you've got the basics down, follow this guide and see how to get started with creating 3D content in Unreal!
Create an account through the Anything World website to get access to the Anything World SDK for Unreal.
Our REST API requires a unique developer API key for authentication in order to allow make APIs calls.
The Anything World SDK requires the project to be created or converted to a C++ project in order to compile successfully.
If an existing project containing the AnythingWorld SDK fails to compile on startup, first remove the SDK from plugins folder of the project, open the project, and generate a C++ class. Once the project has been successfully converted, users may install the Anything World SDK within the plugins folder.
Download the latest version of the Anything World plugin for Unreal Engine 5 (not the Unity package) from your account page in Anything World’s website.
In your file browser, extract the “AnythingWorld” plugin folder from the zip file.
In your file browser, copy the “AnythingWorld” folder and paste it inside the “Plugins” folder of your Unreal project.
Example: if your project is called “Example”, it should have a top-level folder called “Example”, with folders like “Content”, “Plugins”, etc., and “AnythingWorld” needs to go inside “Plugins”. If you don't have a “Plugins” folder, create it first.
Open your Unreal project in the Unreal Editor of Unreal Engine 5. In the main menu bar, navigate to “Edit” → “Plugins” to open the plugins available in your project. In a section called “Other”, you should see the Anything World plugin and tick the plugin’s checkbox.
You will then see an “AnythingWorld” section in the main menu bar of the Unreal Editor. You can click it to show “Settings” and “Anything Search”. Click “Anything Search”.
Log in to your Anything World account. Internally, this action will grant the plugin access to your Anything World API key, which is necessary to interact with our server.
Now you should be able to see the landing page of the Anything World browser, which you may want to dock. You can see the featured models on the top, and other relevant sections of models below, such as those with the highest number of likes and the most used models.
You can search for specific models by entering a query in the text bar and pressing enter. After a small time, results will appear, and you may want to filter and sort them with the available options if you want.
Clicking on any model will add it to your current level, where you can manipulate it as any actor. If the model’s thumbnail in the browser had a play icon in the top left corner, it means it is an animated model, so you will be able to see it playing animations when you play in the level.
You can access the animations, mesh, materials and textures in the “DynamicAssets” folder within the plugin’s content folder, via Unreal’s content drawer.
If the Plugins Folder does not appear automatically you can enable the Plugin folder to display by selecting the settings option on the Content Drawer and enabling 'Show Plugin Content'
For the model to be able to move through the world with a simple default random movement behaviour, you need to add a NavMeshBoundsVolume to the level.
Adjust the location and scale of the volume to cover the walkable surface of the map. You may want to turn on the navigation visualization option pressing “P”.
If you now press the play button, you will see how the model moves around!
After you clicked to place the first model, you may notice a “AWMeshManager” was added to the scene. It controls the placement of models in a grid-like fashion, and exposes as editable properties the number of columns and the spacing between rows and columns, that you may edit based on your preferences, as well as the grid origin location.
If you want to include really large models in your project, you will need to add an additional supported agent in your project settings within the Navigation System section. We recommend you this profile to ensure that all large models in our database will work correctly.
One example of a large model in our data base is red_dinosaur#0000.
If you try to load and run a large model, you will see the AWCharacter flickering at the spawning point trying to find a path.
If you only need static models, you can skip this warning. This topic only affects animated models.
If you need more information about the navigation system in unreal, you can consult it in its documentation. https://docs.unrealengine.com/5.0/en-US/navigation-system-in-unreal-engine/
This page introduces the Anything World plugin installation process for Unreal Engine 5.2 on MacOS M1 and M2 chipsets.
Many steps of the first time setup process will not be required for subsequent Unreal 5.2 project creation. If you have follow this setup process previously and would like to create a new project feel free to skip to the Quick Setup Section.
Requirements:
Minimum macOS version: 12.5 Monterey or newer
Recommended macOS version: Latest macOS Ventura
The Anything World plugin for Unreal Engine 5.2 is currently in early access and its features should be considered experimental and may change significantly in later updates. Please take this into account when considering using this plugin in your specific use case.
Step 1: Install Dependencies
Install Unreal 5.2, Visual Studio Code, and XCode 14.1 or above on your MacOS.
Once XCode is installed, open terminal and begin the installation for Clang/Clang++.
Enter the provided terminal command to install Clang/Clang++:
You can verify that Clang/Clang++ was successfully installed by providing terminal with the following command:
Step 2: Setup Visual Studio Code Extensions and .NET
Download and install the .NET dependency for Visual Studio Code.
Verify that the .NET dependency is installed by opening terminal and providing the dotnet --info
command. You should receive information regarding the current version of the .NET SDK.
It is recommended to review the official Visual Studio Code documentation in order to setup Clang for MacOS.
In order to successfully compile an Unreal 5.2 C++ project on MacOS the following Extensions are required:
VSCode Extensions:
Step 3: Configure Unreal 5.2
Open the Epic Game Launcher, navigate the Unreal Engine view, and select the Launch Unreal Engine 5.2 button.
Switch to the Games panel, select your preferred template, change the project default option to a C++ project, provide a project name, and select the Create button.
Once the Unreal Editor is ready, open the Editor Preferences by selecting Unreal Editor > Preferences.
Use the search bar to find the General - Source Code setting and switch the Source Code Editor to Visual Studio Code.
Next let's open the project files in Visual Studio Code by navigating to Tools > Open Visual Studio Code from within the Unreal Editor.
Now that the Visual Studio Code is set as the default IDE close the Unreal Editor application.
Step 4: Install the Anything World Plugin and generate the project files
Download the latest version of the Anything World Unreal Plugin from the Anything World Profile page.
Unzip the package, open the Mac folder, then unzip the 5.2 package. Copy the newly created Anything World folder and navigate to your Unreal 5.2 project folder (Documents > Unreal Projects > Your project name. Create a new folder called "Plugins" and paste the Anything World Plugin inside this folder.
Now that the Anything World Plugin is installed we recommend re-generating the project files for the Unreal 5.2 project.
Re-generating the project files may cause issues or lost work with an existing project. We recommend creating a backup version of the project before proceeding with cleaning the project files. Please reach out to us on our Discord or at Support@Anything.World for additional help.
To re-generate the project files we need to delete the following folders from the Unreal 5.2 project.
Binaries
DerivedDataCache
Intermediate
Saved
Find and copy the file path for your Unreal 5.2 .uproject file:
Open terminal and navigate to the following Unreal 5.2 installation path:
Next provide terminal with the following command:
Make sure to add the Single quote '
character in front of the beginning and at the end of the file path. The first single quote should added after the -project=
and the end single quote should be added before the -game
command.
Your terminal will display this message:
Now that the project files have been re-generated we are able to build, compile, and debug the project using Visual Studio Code.
Step 5: Update task.json to include the "-architecture=arm64" argument
Return to the project files in Visual Studio Code and open the tasks.json file within the .vscode folder.
Find the label named "<Your Project Name>Editor Mac Development Build" and add the provided argument to the list of args:
Select the dropdown that displays "Launch <your project name>" and set the option "Launch <your project name> Editor (Develoipment)" as the default.
Press the Play icon to launch your projects then Visual Studio will display the debug icons, press the play icon twice to proceed.
Users may receive a security notification from Apple when launching the project. If this occurs, open System Preferences for Mac, open Security and Privacy, and select the Allow Anyway button. You may need to unlock the setting by selecting the lock icon before accepting.
Once this Anything World dylib is allowed re-launch the project from Visual Studio Code.
Congratulations! You have completed the first time setup process for installing the Anything World Plugin for Unreal 5.2 on MacOS.
This section assumes that you have successfully installed the Anything World MacOS plugin previously on your current machine, if not please review the first time setup guide before proceeding.
Step 1: Create an Unreal 5.2 Project
Open the Unreal 5.2 Project Browser, choose your template, and change the project to C++:
Once created, the Visual Studio Code IDE should automatically open along with the Unreal 5.2 editor.
Step 2: Add the Anything 5.2 plugin to the project's plugins folder.
Navigate to the project folder by opening Documents > Unreal Projects > Project
Create a new folder and name it Plugins
then copy and paste the Anything World folder inside the newly created project's plugins folder.
Restart the Unreal 5.2 project and allow the AnythingWorld.dylib to run by opening the System Preferences for Mac and navigate to Security & Privacy.
Users may receive a message from Unreal stating "Plugin 'AnythingWorld' failed to load because module could not be loaded. If this occurs please allow access via System Preferences >Security & Privacy and re-open the project.
Once all of the applications have been accepted re-open the project from within the Epic Games Launcher and you should have access to the Anything World plugin!
This guide will explain each step of the Generate Anything processes.
The Generate Anything service is currently in an early access stage, so whilst Generate Anything is in these earlier stages, please bear with us! Before anything else, you need to started by opening Animate Anything website and signing in or signing up.
Next, you have to decide if you want to create a model using either our Image to 3D tool, or out Text to 3D tool. To begin with, we'll take a look at Image to 3D, but go ahead and scroll ahead if you're looking for Text to 3D instead.
Firstly, navigate to Generate Anything, which can be found on the top right of the Anything World toolbar.
On the Generate Anything homepage, select "Create from image" (right-hand button)
Either Drag and drop your image file or click "Browse your files" to navigate to the image file you want to use. Remember to refer to our Best Practices for Best Results page before uploading so you can properly prepare your image for the best outcome.
You can then add a Model Name in the provided text box, however this is optional. The mandatory checkbox confirms you have read and accepted our system constraints, as well as the terms of use of the tool.
Image-To-3D constraints are as follows:
Use a transparent background or a single-coloured one.
Feature just one object, creature or character in the image. You should avoid even floor elements, and shadows on the floor or background.
The image should be moderately illuminated. Avoid excessive occlusion or extreme shininess.
Creatures or characters in images should display all their limbs clearly and follow conventional poses, ideally symmetrical. Otherwise, it is more likely to get an unexpected number of limbs in the model or other defects.
The image should be of high quality, avoiding blurriness, noise, text and other watermarks. Even in those conditions, please note that the system is not perfect and fine-grained details such as fingers, face details or accessories may not have outstanding quality.
Use JPG, JPEG or PNG images. If you are prompted that the image exceeds the file size limit, try reducing the resolution or modifying compression settings.
When you're ready to proceed, press Generate.
After pressing Generate, you will be taken to the generation progress screen, which shows you the status of your generation. This process can take up to six minutes.
Once your model has finished processing, you will be presented with the finished generation.
From here, you can choose to download the model as-is, generate another model, or go ahead and animate the model using our Animate Anything tool. Your generated model will also be avaliable to view in My World, under generated models, so you can access it any time!
If you haven't already, navigate to Generate Anything, which can be found on the top right of the Anything World toolbar.
On the Generate Anything homepage, select "Create from Text prompt" (left-hand button)
Write your text prompt into the provided text box, then select the appropriate checkboxes.
The Optional checkbox provides an option to generate your model with a standard pose that would be best suited for animation, should you want to use this. If you have a particular pose in mind for your prompt, it is recommended that you keep this unchecked.
The mandatory checkbox confirms you have read and accepted our system constraints, as well as the terms of use of the tool.
Text-To-3D Constraints are as follows:
Describe a single object, creature or character in a noun phrase, adding only the adjectives you consider necessary, for example “blue cat” or “monkey with elephant head”.
Avoid over-complicating the prompt: if there are multiple ways of expressing your idea, use the simpler one. For example, “yellow submarine” is simpler than “submarine painted in yellow” or “submarine, yellow”.
Avoid non-English or very uncommon words, accents or other symbols when possible. Support for additional languages may come in the future.
Limit your text prompt to 100 characters.
When you're ready, hit Generate.
After pressing Generate, you will be taken to the generation progress screen, which shows you the status of your generation. This process can take up to six minutes.
Once your model has finished processing, you will be presented with the finished generation.
You can now decided to download the model as-is, generate another model, or animate the model using our Animate Anything tool. Your generated model will also be available to view in My World, under generated models, so you can access it any time!
You can find all your successfully generated models in My World. To access this area, either select 'My World' from the dropdown menu when you hover over your profile image in the top right of the web application, or alternatively you can select 'My World' from the navigation on the left whilst on your personal Dashboard.
Once you navigate to My World, you can view your generated models by selecting the option 'Generated Models'. This will show you a truncated selection of your generated models. In order to view all models, be sure to select 'View All' on the right-hand side of the screen.
You can tell which method was used to generate a model by referring to the icon on the top-left of the thumbnail.
From the generated models screen, you can either select the model by clicking the thumbnail to be taken to the model viewer, where you can download your model, or you can press the 'Animate' button to be taken directly to the Animate Anything interface and start the process of animating the selected model.
On the Model Viewer Screen you will be able to download your generated model. You can do this by pressing the button marked 'Download'
Generated Models can be downloaded in the following formats:
FBX, GLB, GLTF, OBJ & USDZ
If you wish to animate your model using our Animate Anything tool, all you need to do is press the button marked 'Animate Model' which will lead you through the Animate Anything interface. For further information on this process, please refer to our documentation here.
Here you can find information on how best to use our Generate Anything tool to ensure you get the best possible results for your model generation, whether you choose to use image or text generation.
Images with busy backgrounds may cause issues with generation, including but not limited to unwanted textures and mesh misshaping. To avoid this, it is best to remove all backgrounds and keep the image focus entirely on the subject for your model.
Additionally, try to avoid having more than one subject in the image, otherwise the tool may not be able to determine which source to use for the model.
Try your best to ensure the source for the model in your image has all limbs visibly separated in some way (e.g. gaps between legs, arms) to ensure a clean, concise generation.
Higher resolution images may take a little longer to generate but will likely provide higher texture quality on the finished model.
If you are unable to separate your model source from the background, it is best that the background and subject have a contrast between them to help determine the model source. This can be done by having a bright background, or by increasing the intensity of colour, sharpness and detail of the model in the image.
Remember to consider that when using an image with a background there is always a chance that some of the background image may leak into the final texture, or some mesh irregularities may occur, especially in cases where the model source and background have similar colours.
Be wary of artifacts in your images, especially in white or empty space, and these may create anomalies in your model generation.
Ensure your text prompts are clear and concise. Spelling errors may cause issues with generation, so be sure to proof read your prompt before generation.
When writing your text prompts, the level of detail matters depending on what you're after. For example, if you're looking for a generic cat model, you can simply use the prompt "cat". However, if you require specific details, you can include this in the prompt - for example "cat with a fluffy tail" would be some slight further detail specific to your generation.
You can take this further by being more precise, although generations with excessive detail may vary in quality depending on the category. Another example would be "pink cat with tiger print fur" which contains much more precise detail.
Colours can also be defined using text prompts, and this can also create variations in the result depending on the detail used. Using more precise colour specifics ("dark blue" "light blue") can be helpful, but general colours are likely to yield better results. Note that hex colour codes will not work.
Some 'aesthetics' may be used in text prompts (e.g. cyberpunk, vaporwave, grunge) however these are not always guaranteed to be picked up by the system or may provide varying results, and are much less reliable that using colour terms.
Generating models you want to animate with Animate Anything? Here are some tips to help ensure your model will meet the constraints of the Animate Anything system.
Make sure your model's category is supported by Animate Anything, you can find this out by referencing this table.
For all models, you need to ensure they still meet the constraints of our systems. For text prompt generated models, it can be useful to include the term 'symmetrical' (or just keeping the prompt refinement checkbox ticked) and for image generated models, having a subject with a visibly symmetrical shape can be helpful.
For biped human and humanoid models, the pose can be really important. We recommend generated models aim for an A-pose for these categories.
If you're using Text-To-3D, you can select the optional prompt refinement checkbox to default to an A-pose for your model when generating humans and humanoids.
For further information on preparing a model for Animate Anything, you can take a look at our other documentation.
Find all of your saved models within the My World panel.
The My World panel allows you to find your favourite models quickly. There are two ways to save the models in the My World panel.
Search for a model in the Anything Browser, then select the heart or “My Like” button on the best model. These models can be viewed in the “My Likes” view on the My World panel.
Search for a model in the Anything Browser, then select the list icon button on the right side of the model result box. When selected, the “My List” button will open a popup that allows you to add the model to a pre-existing collection or create a new collection.
Once a model is added to the collection, the model can be found in the “My Lists” view within the My World panel.
The reset button that is displayed as the circle icon allows you to reset the scene, reset the creator, or reset all. This option will appear in the Anything Browser panel and the My Like section of the My World panel.
This option will remove all assets that were provided by Anything World SDK from your scene. An additional pop-up box will appear to verify if you are sure you want to reset the scene.
This option will remove all search results, filters, and Make Option parameters applied for the Anything Browser and My World panels. An additional pop-up box will appear to verify if you are sure you want to reset the creator.
This option will remove all assets from the scene and return that Anything Browser and My World panels back to default. An additional pop-up box will appear to verify if you are sure you want to reset everything.
Search and import models directly from the Anything World Browser!
The Anything Browser allows you to find animated and still models. Search for a 3D model by typing the keyword in the search bar and press the enter key to find the results. The filter options gives you control over the types of models that are displayed in the search results.
You can also save these models for later by either selecting the My Likes or the My List icon on your favourite models.
Models imported through the Anything World Unity package can be deserialized or serialized during the import process.
Models will display in the active Unity scene as a GameObject within the Hierarchy panel without saving all the associated files of the model to the project. This occurs by default when the Serialize Asset parameter in the Make Settings is disabled. Simply click any of the models that appear in Anything Browser search results or the models that have been saved in the My World panel.
Models are serialized automatically when the 'Serialize Asset' parameter is enabled within the Make Settings.
Once the Serialize Asset button is enabled, and the Make Setting changes have been saved, all models selected from the Anything Browser or the My World panels will automatically be saved to the project. The files associated with the model will appear in the newly created 'Saved Assets' folder and each model's files will be added within separate folders.
Selecting the 'i' icon within the model preview results will open the info panel which contains details such as:
Name of the model
Author of the model
Category of the animation
Poly-count type
Licensing Information
Category of the model
Relevant Tags
Relevant Habitats
In addition to the relevant information for the model, there are several buttons in the model details panel.
Selecting the heart icon will save the model to the 'My Likes' section of the My World panel to make it convenient to find models in the future.
Similar to the Like functionality, you can create various collections of models by selecting the list+ icon next to the like button. This provides a way to create a separate list of models that you would like to use in the future.
When selecting the Flag button, the report a model popup will appear which will provide a way to tell us that a model needs to be reviewed.
This option will import the model directly to your active Unity scene.
Add Model and Save Assets:
Selecting this option will import the model to your active Unity scene and save a copy of the assets associated with the model such as the mesh, material, and animation files. A new folder titled 'Saved Assets' is created in the Project panel of the Unity project. Each saved model will appear as a separate folder containing the aforementioned assets.
Selecting the Make Options button will open the Transform Settings panel for ease of access.
Select the 'Apply' button after making adjustments to the transform settings parameters to ensure that the applied when adding models to your scene.
The Animate Model option allows you to choose if you want the model to have animations when moved to your scene.
The Enable Maker Debug Messages option provides unity console messages about the models status when moved to your scene.
The Place On Top of Ground option place the models above the floor in your scene.
The Serialize Asset option allows users to create Prefabs from the selected model.
Physics:
Add Collider: Automatically adds a collider component to the desired model.
Add Rigidbody: Automatically adds a rigidbody component to the desired model.
Parent Transform allows you to input a parent object for your model when it is placed in the scene.
Position enables you to select the starting place for your model based on the inputs given for the X, Y, and Z coordinates.
Rotation gives you the ability to alter the orientation of the model when placed in the scene for the X, Y, and Z parameters.
Scale Multiplier increases the size of the models on all coordinates by the input value that you provide.
The Animated Behaviour option allows you to attach scripts to the models directly from the Anything Browser. This option comes with a default Random Movement script to help you get started.
The Vehicle behaviours option can be used for providing functionality to cars and other four wheeled vehicles. This option comes with a default RandomFlyingMovement script to help you get started.
The Flying Vehicle behaviours option is useful for adding functionality to planes and other forms of aviation models. This option comes with a default RandomFlyingMovement script to help you get started.
The Flying Animal behaviours option enables you to add functionality to models such as birds and flying insects. This option comes with a default BirdsFlockingGoal script to help you get started.
The Static behaviour option allows you to apply a mono script to the model that is static.
The Shader behaviour option provides a way to attach custom shader scripts to the model.
Grid Gizmos: Button that displays the origin point in relation to the grid.
Grid Origin: The starting position of the grid placement feature.
Cell Width: The distance between each placed model.
Grid Width: The row size of the grid.
Use Grid Area: Enables the use of a GameObject area to distribute the grid on.
We can use a GameObject as the area where the grid will distribute its elements on. Initially the new window with the grid area info requires to us to set which GameObject we want to use for the area (the area will be the bounding box of the GameObject).
Once we set the GameObject, the window will have more options:
We recommend to create a 3D plane as a GameObject, like in the image above. You can rotate the plane as you desire. While you have the grid area enabled, all models that you create will be added to the distribution of the area, until you press Finish (to keep all models) or Cancel (to remove all models from the grid). Also, you can modify any option of the grid area and all the models added will be redistributed to reflect the changes.
Distribution Mode: Fit
The Fit mode will distribute all the models evently throught the area. We only need to specify how many models we want per row, in the image above we want 2 models, so new rows are created to accommodate the rest of the models.
Distribution Mode: Clip
The Clip mode uses distance between models and it distributes models in a row until the X axis is filled and then a new row at the Z axis distance is created. In the above image we use 8 m in the X axis, and then 2 m in the Z axis (distance between rows).
View All Grid Positions
This option will show the position that will take the new models when they are added. It is a good way to know the distribution without creating yet the models.
Grow Outside Area (work in progress)
This option allows that models can be distributed out of the grid area for the Clip mode, otherwise the models that are placed outside the area are cancelled automatically.
Currently it is not implemented yet.
Ignore Area Collision
This option disables the collision mesh of the plane (the area GameObject) so all models will fall out until find a collision with the ground, for example. That way we can distribute the models over an irregular surface that is below the area, for example. For this to works we need to enable the Place on Top of Ground option from the Make Options:
Random Offset
This option creates an offset per model so the grid pattern is broken, while all the m odels keep its initial position, it is just moved a bit.
Reset:
The Reset button will return all edited Make settings to the default values.
Get Started with using our AI Creator system
Unity 2020.3 - 2022.2
Anything World Account Credentials
Anything World SDK
Optional: Microphone
Please note: This package is not compatible out of the box with the previous (Classic) versions of Anything World. Contact us on discord or email if you have a project that needs migrating.
The AI Creator panel allows users to convert verbal or text input into real time Unity scene creation using our extensive repository of models and auto-rigging functionality.
AI Creator comes installed in our latest Anything World SDK package, see our Unity Quickstart guide to setup our Anything World SDK before using the AI Creator.
After completing the Unity Quickstart guide, simply open the Anything World menu from the top tool bar and select the AI Creator option to access the AI Creator panel.
Our AI Creator panel provides two methods for users to give input
The microphone button activates the recording feature which converts verbal commands to text for ease of access in adding, removing, and moving models in the active scene during editor mode or at runtime.
The text field provides the same functionality in enabling users to give written commands to add, remove, or move models from our extensive model database.
Currently our AI Creator supports commands that will enable users to:
Add one or several models to the active scene
Move one model to a specified location
Remove one or several models from the active scene
Add commands:
Create one cat
Add five chickens
Move commands:
Move one chicken here
Move the cat to the left of the chicken
Remove commands:
Remove the cat
Delete five chickens
Quantity Modifier:
Add five gorillas
Remove three cats
Relative Location Modifier:
Add one car here
Move one gorilla above the car
Create one cat to the right of the car
Add one human to the left of the car
Create a snake below the car
Example:
Add one cat and one human
Add a bumblebee and move the cat here
Remove the human and move the bumblebee above the cat
The AI Creator panel features several buttons to make the creation process more streamlined.
The Microphone button enables the recording functionality which allows users to convert verbal commands to real-time scene creation and manipulation using our extensive 3D model database within a Unity scene. Select the microphone button once to enable the recording session and select the same button again to submit the verbal request.
The Text box provides an alternative method of providing input to our AI Creator for creation and manipulation our repository of 3D assets. To use the text box, type the request and select the submit button.
The Results dropdown will display the input received and provide a list of actions that AI Creator will take to fulfill the desired request. Selecting the dropdown will display additional information regarding the action, the type of model, and the quantity of the models requested.
Once the request has been processed, the Make button will appear to the right of the requested model allowing the user to add one model at a time.
When users provide multiple commands, they may select the Make All button to add, remove, or change the position of the desired model within the scene. Additionally, the Auto checkbox will automatically create, manipulate, or delete the models of the scene without requiring the user to verify the list of commands.
Selecting the Gird Options button will open a secondary panel containing the same grid settings found in the Transform Settling panel. The Grid options can be used to specify the spacing between models inserted via the AI Creator. Make sure to select the Apply button to ensure the settings were saved before proceeding in adding more assets to your scene.
Quick overview at how to import Anything world models in a packaged project
Requirements:
Unreal Engine 5.0, 5.1, 5.2 or 5.3
Unreal C++ Project
Visual Studio 2019 (for 5.0 to 5.2)
Visual Studio 2022 (for 5.3)
Anything World Account Details
Anything World SDK
Windows
To use pak files in your project, you need to enable/disable a few options to set everything up properly. A part of pak file, Unreal provides other ways to load cooked content into your project a part of paks, but those ways aren’t compatible with others.
Firstly, you need to enable the option to use paks and disable the other container options (Io store
and Zen Store
). This option will enable the processing of the paks in your packaged project. The other important option is Generate Chunks
. This option will enable the pool to load multiple paks based on the chunk id
.
It's important to disable these two options to load Anything World Paks in your project. The first option will specify that all the paks will contain C++ cooked assets inside. If you enable this option, the project will skip all the C++ assets and only load blueprint ones. The second one is the Editor only
option. Disabling this one will enable all the primary asset labels to be used in a packaged project.
To load materials from paks you need to change the Default Skin Cache Behavior
from Inclusive
to Exclusive
. This option will enable the usage of external materials. A part of that you need higher Maximum memory for Compute Skin Cache per world
into 1500
.
You need to enable Support 16-bit Bone Index
and Use Unlimited Bone influences
to load all the animated models in your project.
All the textures that are cooked outside the main project are treated as virtual textures. To load all the textures from pak files, you need to enable this option.If you use pak chunk strategy
in your project, we highly recommend not surpassing 99 in your chunk IDs. Anything world model chunk ids
goes from 100 and further.
Anything world plugin comes with a couple of C++ functions that the user can call on his project to request models from the API in his packaged project. All those methods are inside a UObject
named PakLoader
that provides the minimum functionalities to load pak files.
To use these functionalities, you only need to instantiate one PakLoader
, Set your API key using SetApiKey()
method and download the model using the DownloadModelEntry()
method.
Inside the plugin, you will find a user widget named PakTester
. This widget provides a simple interface to download models using PakLoader
.
To use it, you need to modify it by adding your API Key inside. At the begging of the execution, the widget will create a new PakLoader and set your API Key. The UI adds two buttons, one to download models from the API and the other to load paks from the paks folder.
Warning: Remember to add one Nav Mesh Bounds Volume
inside your map, or the models will not be able to navigate around.
Get started with using our AI Creator system
Requirements:
Unreal Engine 5.0, 5.1, or 5.2
Unreal C++ Project
Visual Studio 2019
Anything World Account Details
Anything World SDK
Optional: Microphone
The AI Creator panel allows users to issue verbal or text commands to access our extensive repository of static and animated models.
This tool comes with the Anything World SDK, see out guide to setup it up and start using the AI Creator tool.
After setting up the Anything World SDK you can access the AI Creator tool through the Anything World menu from the top tool bar and select the AI Creator option.
The AI Creator tool provides two methods for users to give commands.
The microphone button activates the recording feature, which allows you to use your microphone to input verbal commands. This enables you to easily add, move or remove models in the scene in editor mode.
The text field provides the same functionality but using a text input instead. The same commands are available as in the verbal commands.
Currently our AI Creator supports commands that enable users to:
Add one or several models to the active scene.
Move one or more models to a specified location.
Remove one or more models from the scene.
Examples:
Add commands:
Create a cat
Add five chickens
Move commands:
Move one chicken here
Move the cat to the left of the chicken
Remove commands:
Remove the cat
Delete five chickens
Valid Modifiers:
Quantity modifier:
Add five gorillas
Remove three cats
Relative Location Modifier:
Add one car near
Move one gorilla above the car
Create one cat to the right of the car
Add one human to the left of the car
Create a boar below the car
Multiple actions can be requested can be requested in a single command. Example:
Add one cat and one human.
Add a bumblebee and move the cat here.
Remove the human and move the bumblebee above the cat.
The AI Creator panel contains several buttons to make the creation process more streamlined.
Microphone Input:
The microphone button enables the recording functionality which allows users to convert verbal commands to real-time scene creation and manipulation using our 3D models within a Unreal Engine scene. Select the microphone button to start the recording session and select the same button again to submit the verbal request.
Text Input and Submission:
The text box provides an alternative method to input commands to create and manipulate 3D assets from our repository. Simply type the command in the text box and press enter or the button below.
The results box in the middle of the AI Creator panel will display the input received as a list of buttons that can be pressed to execute the action.
Once an action button has been pressed, a tick icon appears beside the command text within the button.
Execute all actions and Auto Create Option:
When a user provides a command with either verbal or text input, one or more can be pressed to execute the input commands. In addition, a new option Auto Create has been introduced in the Settings panel.
When this option is enabled, all actions are executed automatically without needing further input from the user and the tick icons will appear on the buttons. The Execute all actions button is another method to execute all actions with a single click, useful when multiple actions have been introduced in the same command.
Get started with Animate Anything in Unreal Engine.
Animate Anything is our tool to bring your static 3D models to life. With our AI-based approach we can automate the rigging and animation steps of a humanoid, an animal and many other types of models. You may find the complete tool in our website . In addition, we have integrated it with our plugin for Unreal Engine (with a reduced set of options) so that any mesh in your project can be easily submited for processing and get back the processed model ready to use for your game.
After setting up the Anything world SDK, you can access the Animate Anything tool through the Anthing World menu from the top tool bar and select the Animate Anything option.
This brings up the Animate Anything interface as shown below. We'll cover every section in the interface to explain how you can get your models animated in minutes.
Here you are requested to input the name of the model. This name will be used to identify your model and it will be shown in My World panel, under the User Processed tab.
Here you can input the type of model you are submitting, human, cat, car are some of the accepted options. You can get more information about this by clicking on the question icon to the left of the title and the model processing contraints, above the Upload button.
Here you can select the model you wish to animate. Notice that Unreal will allow you to select any asset but only Static Meshes and Skeletal Meshes will be accepted as valid assets.
Here you can input the model's author name or check the checkbox if you are the author. This is a required information, the Upload button will be disabled unless you enter an author name or check the checkbox.
Here you can select the license for your model. Only one of the two options can be selected at the same time.
Above the upload button you will find 3 checkboxes that enable or disable different aspects of the Animate Anything process. The first checkbox will grant us permission to use this model for training and/or testing our processing systems, and related usages. The second checkbox is mandatory to check before the Upload button becomes enabled. The last checkbox will add a default behaviour to your model upon importing to the Unreal Engine project if you tick it.
Once the button is pressed, the model will be submitted to our servers and will start processing to get it animated. Note that processed models will appear in My World panel, under the User Processed tab.
Once the model has been submitted, a notification will pop up in the editor indicating that the model is being processed. Multiple models can be processed at the same time, each with its corresponding notification. The notification will remain until the model has finished processing or the system encounters an error. When successfully processed, a new browser window will appear with the processed model elements (Blueprint, meshes, textures, etc.).
In order to support textures in your models, we require an additional plugin to be enabled in your project, the GLTF Exporter plugin.
Anything World's Unity SDK is supported on Unity versions 2021.3 - 2022.2 LTS with URP.
The Anything World versions up to 1.1.0.2 work on 2020.3 - 2022.2 LTS. To use newer versions please upgrade Unity.
Set up your Unity Project
Requirements:
Unity 2021.3 - 2022.2
Anything World Account Details
Anything World SDK
Please note: This package is not compatible out of the box with the previous (Classic) versions of Anything World. Contact us on Discord or email if you have a project that needs migrating.
Anything World's Unity SDK is supported on Unity versions 2021.3 - 2022.2 LTS with URP.
The Anything World versions up to 1.1.0.2 work on 2020.3 - 2022.2 LTS. To use newer versions please upgrade Unity.
If you're completely new to Unity it might be a good idea to learn a bit about the Unity interface. The first 6 videos in the are a great way to pick up the basics.
Once you've got the basics down, follow this guide and see how to get started with creating 3D content in Unity!
to get access to the Anything World SDK for Unity.
Our REST API requires a unique developer API key for authentication in order to allow make APIs calls.
Step 1: Download the latest Unity Anything World SDK from the on the Anything World website.
Step 2: Open the project with version Unity 2020, 2021, or 2022. Open Window dropdown then Package Manager and change the Package dropdown option to “Unity Registry.”
Editor Coroutines:
Newtonsoft Json:
The Newtonsoft Json package may fail to appear in the Unity Registry Package Manager. If this is the case select the "+" icon in the top right corner of the package manage and select the "Add package from git URL" option. Enter com.unity.nuget.newtonsoft-json in the search bar then select the add button.
Universal RP:
AI Navigation:
For some Unity versions the AI Navigation package may fail to appear in the Unity Registry Package Manager. If this is the case select the "+" icon in the top right corner of the package manage and select the "Add package from git URL" option. Enter com.unity.ai.navigation in the search bar then select the add button.
Step 4: Import the AnythingWorld.unitypackage file into the project.
Step 5: The Anything World Unity package contains a pre-built Universal Render Pipeline Asset. Select the Edit button from the Unity top navigation bar then select Project Settings and navigate to the Graphics section. Add the URP Asset to the Scriptable Render Pipeline Settings.
For the best experience it is recommended to add the following shaders provided by the Anything World SDK to the 'Always Included Shaders' section within the Graphic settings
Standard (Metallic)
Standard (Specular)
Standard Transparent (Metallic)
Standard Transparent (Specular)
If there are not enough elements available then please increase the Size parameter to include the listed shaders. It is not recommended to change the existing shaders unless you have experience with this.
These shaders can be found within the Project panel by navigating to AnythingModels > GltfPipeline > GLTFUtility > GltfLoader > Materials > URP.
Step 7: Select the Anything World dropdown menu and open the Anything Browser. Log in using your Anything World account with your email and password. Two new panels will appear after signing in, the Anything Browser and the My World panels.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Updates
Behaviour Tree Editor: Added a visual node-based behaviour tree editor for no code creation of AI systems for various agents. In this initial release we focused on movement and obstacle avoidance but custom behaviour nodes can be created and we will add a lot of new ones in upcoming releases. If you are unfamiliar with the behaviour tree concept, we've added a explaining it in our Unity documentation.
Path creation tool: Added a spline creation and editing tool. It can be used to create a movement trajectory for NPCs. We've created a behaviour tree asset that allows you to move your characters along the spline without writing any code. Read more about it . If you know a bit of coding, it can also be extended for more advanced tasks like creating a road by generating meshes along the spline.
NavMesh based movement: Added an option to use NavMesh for imported character movement. If enabled, ground animals and humans will use a new NavMesh default behaviour. A NavMeshAgent component tailored for an imported model is generated automatically, as well as NavMeshSurface if it's not present in the current scene.
Various model serialization issues.
Click to place mode not working in the My Lists section.
Models imported from the landing page no longer consume API calls.
We greatly appreciate your understanding and continued support. If you encounter new issues or have any suggestions, please don't hesitate to reach out to us. Your feedback is invaluable in making our software better.
Thank you for being a part of our community.
You can download the package from your profile in Anything World's website.
Once installed, open Visual Studio Code and navigate to the extensions view by selecting the icon.
Next let's launch the project from Visual Studio Code, to do this navigate to the Run and Debug view which can be found by selecting the icon.
Generate Anything models that have been generated using Text-To-3D will have a symbol, whilst Generate Anything models that have been made using Image-To-3D will have a symbol.
For Unreal Engine 5.0 you may find this plugin free in the unreal marketplace . For versions 5.1 and above, the plugin is shipped with the engine.
Step 3: Install the, , and Packages.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Fixed issues with some windows not appearing in Mac version.
Fixed issues assigning monoscripts via editor.
Namespace fixes.
Fixed OBJ models being inverted.
Fixed issue where you couldn't clear text in AI creator.
Added check version button to settings panel.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Added scale clamping RequestParam for AnythingMaker.
Added AI creator window.
Added support for swimming object default behaviours.
Add CommandHandler factory for requesting commands.
Added support for mass field from database.
General performance and bug fixes.
This update extends the features of the creation panel as well as improving performance and fixing bugs across the front and backend of the package.
In this version we added model serialization as a feature, allowing you to download assets to the Asset Database at point of request.
We've also included new animation controllers for the flying insect classes that have recently been added to the database, as well as improving and extending the default behaviour scripts we offer users.
Known Issues: Mac users may have issues adding to collections through GUI in this version.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch (Eg. voice creation). These will be added back in later updates.
Fixed bugs in creation.
Fixed bugs in My World panel.
Fixed bugs with collections.
Fixed compilation issues.
Fixed some bugs with sign up panel.
Added collider options for models.
Added details panel.
Added featured models to the browser.
Added extra default behaviour classes.
Added extra example behaviour scripts.
Added settings panel.
Added serialization for models.
Added transform panel as separate window.
Updated editor GUI for random movement.
05/07/23
26/06/23
25/05/23
22/05/23
24/04/23
21/02/23
28/11/22
09/11/22
If you are upgrading to Anything World for Unity v1.1.0.1, some files have been reorganized, renamed, or deleted. As such, some files when imported might not be where they should be. This can be remedied by you deleting certain files and folders from the package, which are outlined below.
Note: Best practice when deleting these files and folders is to do so prior to importing a package! This might produce some errors, but these errors should all be remedied on import.
Make sure to delete these files!
AnythingWorld/AnythingEditor/Editor/TransformSettings.cs
AnythingWorld/AnythingEditor/Editor/GridSettingsEditor.cs
AnythingWorld/Resources/Settings/DefaultBehaviours.asset
Make sure to delete these folders!
AnythingWorld/AnythingUtilities/AnythingUtilities.Editor/VersionChecker
AnythingWorld/AnythingEditor/Editor/Resources
AnythingWorld/AnythingAnimation
Another solution to ensure a clean slate would be to delete the full package and to reimport the new version. Although this brings forth the version that we tested here at Anything World, this does mean that your settings would be deleted, and that on import would need to log into your account again.
This release brings in a ton of new features such as support for model serialization, extending our material loader to support more complex runtime material loading and as always performance and stability improvements across the board.
Introduced batched loading for models.
Updated habitats.
Better scaling for animation shaders.
Improved cloning for models.
Various bug fixes in the creation process.
The brand new early access package for Anything World is finally here! Dive in and try our brand new animation system and revamped UI.
We're kicking off with the launch of our animated quadrupeds, and will be expanding our range of models over the next few months. If you'd like to see our roadmap for animation categories, check it out on our website.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch (Eg. voice creation). These will be added back in later updates.
New rigged animations for quadruped animals!
New sample animation controllers to allow you to easily play and blend animations out of the box.
Likes and collections panel: organise and find your favourite models easily.
Expanded search results with better filtering.
Revamped vehicle and shader animation.
Behind the scenes object maker factory reworked for better performance and reliability.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Fixed issue where loading behaviour presets at runtime sometimes throws errors.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Flying and swimming example behaviours now turn off gravity on rigidbodies by default.
Minor patch addressing some bugs in signup and login.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch (Eg. voice creation). These will be added back in later updates.
Fixed bugs with signup panel.
Fixed style not found bug when opening browser panel.
Fixed floor positioning bug.
Resolved issue where searching for "tree" would not return results.
This release brings in a ton of new features such as support for model serialisation, extending our material loader to support more complex runtime material loading and as always performance and stability improvements across the board.
Added interface to define default shaders for AW model creation (Anything Settings)
Added extended support for different types of texture maps in material loader, shaders.
Added session logging.
Added model serialization.
Added tiling offset support for base maps.
Error logs for missing URP/HDRP when opening Creator/trying to create a model.
Optimized and consolidated editor textures.
Updated various interfaces in the Anything Creator, Settings and Login/Sign Up panels.
Changed default shaders from HLSL to Shader Graph.
Changed some joint parameters for quadrupeds and quadruped-ungulate.
Default Anything World shaders now automatically load in when not defined in the settings panel.
Fixed bug that caused voice panel to break under certain conditions.
Fixed problem with winged waddling creatures' wings to migrate away from the body.
Patched Unity bug that prevents transparent materials from being instantiated at runtime correctly.
Fixed model attribution generation to prevent duplicates and update more quickly.
Fixed issue where Anything Setup would be duplicated on deletion and undoing action.
Platform dependent compilation for Unity 2021 editor compatibility.
Fixed and improved flocking generation.
Fixed habitat generation.
Fixed bug with grid system.
Fixes to bugs when loading some OBJs with non-decimal scientific notation.
Fixes to voice.
Fixed transparency handling in MTL loader to prefer D over Tr (3ds Max specific
AnythingWorld.AnythingAnimate
Allows the user to send a model to be rigged and animated through Animate Anything directly through Unity.
Allows the user to poll for a model's current state in the Animate Anything processing pipeline.
A class that provides methods for interfacing with Animate Anything directly in Unity.
AnythingWorld.AnythingAnimate.Poll
onProcessFinished
onProcessFail
Function asking the user what to do if an error occurs whilst processing. First string parameter contains the error code. Second string parameter contains the error message.
onProcessPoll
Function asking the user what to do whilst processing. First string parameter contains the current output code. Second string parameter contains the message. The int parameter accounts for how many seconds the model has been processing for.
id
The ID of the model to poll.
(timeout)
The amount of time in seconds before the polling times out. Standard timeout is set to 10 minutes.
Allows you to poll for a model's current state in the Animate Anything processing pipeline. This polls continuously until the model either produces a failure or a successful result.
Namespace
Top level namespace of the AnythingWorld package, holds main user facing functionality.
A class that provides methods for creating game objects from the Anything World database based on search terms and parameters.
A class that provides methods for interfacing with Animate Anything directly in Unity.
Utility for building and passing parameters to the maker pipeline.
Namespaces
Namespace holding scripts handling speech-to-text, text-to-speech and command parsing functions.
New year, new bugs to squish!
This patch has some minor package optimizations and fixes for some UWR bugs found in the 2019 versions.
Fixed Unity Web Request error messages that appear when using 2019 Unity versions.
11/11/2021
This update brings a huge graphical and performance overhaul to the Anything Creator panel, we've added new UI elements and optimized serving search results to make your development process smoother.
Additionally, we've fixed bugs across the animation and creation processes so creating with Anything World is better than ever before.
Added new cancel/clear search button in Object Creator panel.
Optimised search algorithm and thumbnail loading for object creator search panel.
Migrated to new API endpoints.
Fixed issue with character encoding when requesting some objects.
Fix issues with some prefab animations.
Fix to attribution management.
Fix to grid serialization.
AnythingWorld.AnythingMaker.Make
name
Name of model to request from database with or without GUID qualified. (eg. fox, cat#0001)
parameters
Optional list of request parameters (see: RequestParameter) to apply to this request, override default parameters.
This method allows users to request an object from the Anything World database and have it instantiated in the scene according to the parameters they pass in. If no parameters are passed in the default parameters will be used.
Users can provide RequestParams, that can be created using the RequestParameter class.
AnythingWorld.RequestParameter
Add collider around object that encloses object mesh(es).
Add Rigidbody to object.
Specify scripts to add to object after creation process has completed.
Clamp database scale between given values.
Make the object use the legacy animation system.
Place object on grid.
Set origin of object to the centre bottom of mesh bounds.
Set parent GameObject for created model.
Serialize model assets to database on loading completion.
Add default behaviour from default or given preset.
Define whether transformations (position, rotation) should be applied using world space or local space.
Utility for building and passing parameters to the maker pipeline.
AnythingWorld.AnythingAnimate.Animate
Allows you to send a model to be rigged and animated through Animate Anything directly through Unity. If the model is sent to be animated without error, an ID will be generated that can be used to poll the current progress of the model's animation process. This function is Editor only.
This function works from a direct reference to a game object. Please note that the model needs to be of a valid file type (.obj, .fbx, .dae, .gltf, or .glb). Any additional assets uploaded similarly need to be of a valid asset file type (a list of these valid file types, as well as additional constraints can be found ). The additional assets path must lead to a folder which contains the assets. Ensure that any paths used are relative paths to the Assets folder.
Allows you to send a model to be rigged and animated through Animate Anything directly through Unity. If the model is sent to be animated without error, an ID will be generated that can be used to poll the current progress of the model's animation process.
26/11/21
Brrr! We've got a brand new patch update just in time for festive season!
This patch completely overhauls the search panel and makes it super easy and intuitive to find the models you need, we've also added UI scaling so you can browse models in whatever size is most comfortable for you.
New Anything Creator panel UI look.
Scalable thumbnails.
Minor grid bug fix.
Fixed voice example scene.
Fixed some animation bugs.
Function asking the user what to do once the model has finished processing. ModelJson parameter contains the necessary details to create the model using .
This function uses a path to reference the model. This path needs to be a direct path to the model, including its extension type. Please note that the model needs to be of a valid file type (.obj, .fbx, .dae, .gltf, or .glb). Any additional assets uploaded similarly need to be of a valid asset file type (a list of these valid file types, as well as additional constraints can be found ). The additional assets path, unlike the model path, must lead to a folder which contains the additional assets. Ensure that the paths used are absolute paths.
modelPath
Path to the model that should be rigged through Animate Anything.
additionalAssetsPath
Path to a folder containing any additional assets separate from the original model. If no additional assets are necessary, this can be left empty.
modelName
The name of the model when accessed through My World.
modelType
The type of the model, as used when determining what skeleton to rig the model as (see the FAQ for more details on what types are currently supported).
authorName
The name of the original author of the model.
license
The license attributed to the model.
symmetrical
Flag for determining if the model is symmetrical or not.
allowSystemImprovement
Flag asking if the user allows Anything World to use the model for internal improvements.
onExport
Function asking the user what to do once the model has been sent to be processed. String parameter outputs the ID of the model.
onError
Function to be executed if an error occurs in sending the model to be processed. String parameter outputs the ID of the model if one has been supplied, UnityWebRequest parameter contains the request details such as error codes and messages.
model
Reference to the model that should be rigged through Animate Anything.
modelName
The name of the model when accessed through My World.
modelType
The type of the model, as used when determining what skeleton to rig the model as (see the FAQ for more details on what types are currently supported).
authorName
The name of the original author of the model.
license
The license attributed to the model.
symmetrical
Flag for determining if the model is symmetrical or not.
allowSystemImprovement
Flag asking if the user allows Anything World to use the model for internal improvements.
onExport
Function asking the user what to do once the model has been sent to be processed. String parameter outputs the ID of the model.
onError
Function to be executed if an error occurs in sending the model to be processed. String parameter outputs the ID of the model if one has been supplied, UnityWebRequest parameter contains the request details such as error codes and messages.
(additionalAssetsPath)
Path to a folder containing any additional assets separate from the original model. If no additional assets are necessary, this can be left empty.
scriptTypes
Types of scripts to be added to object. (must be derived from MonoBehaviour)
monobehaviours
MonoBehaviour scripts to be added to object.
lowerBound
The lower bound of object scale.
upperBound
The upper bound of object scale.
value
Add Rigidbody to object.
value
Tells AnythingWorld to use the legacy animation system for the created model.
value
Place object on ground
action
Action with void return type that will be invoked on successful request.
action
Action with CallbackInfo return type that will be invoked on successful object request.
AnythingWorld.RequestParameter.Rotation
AnythingWorld.Voice.CommandRequester.RequestAndReturnCommand
AnythingWorld.Voice.CommandRequester.MakeCommand
input
Plain text command to be parsed by API.
ReturnedCommandAction
Action that will be invoked on successfully parsed and returned command, must take a string input.
Requests a command from a plain text input string and handles resulting command through CommandHandler utility.
Anythingworld.Voice.CommandRequester
Requests a command from a plain text input string and handles resulting command through CommandHandler utility.
Requests a command from a plain text input string and returns the resulting command as a JSON-formatted string.
A class that handles sending plain text commands to our parsing API and then returning the parsed commands to users and handling the command.
AnythingWorld.Animation.LegacyAnimationController
Public Methods
AnythingWorld.Animation.MovementJumpLegacyController
Public Methods
Crossfade between the current animation and another animation
Play a new animation
Stop all animations
Controller waits a set length of seconds and then does a function call
SetRealWorld
The object's size is set to match its real-world size (as provided by database)
ScaleRealWorld
The object's size is scaled in relation to the real world.
Absolute
The object's size is an absolute value, not relative to the real world.
Blend between the different movement speeds of the object (Idle, Walk, and Run)
Transition the object to the idle animation.
Transition the object to the start of the jump animation.
Transition the object to the falling animation.
Transition the object to the end of the jump animation.
Transition the object to the run animation.
Transition the object to the walk animation.
Represents the type of scaling to be applied to a game asset.
ModelLoadingPipeline
Represents the type of model loading pipeline used for a game asset.
DefaultBehaviourType
Represents the default behaviour type for a game asset.
TransformSpace
Represents the space in which the transform parameters are applied.
RequestType
Represents the type of request to be made to the API.
SortingDropdownOption
Represents the sorting options for a dropdown menu.
This class handles sending plain text commands to our parsing API and then returning the parsed commands to users and handling the command.
speed
The speed of the object
AnythingWorld.Animation
A Behavior Tree (BT) is a hierarchical structure that defines the decision-making process of an AI agent. It consists of nodes that represent tasks or behaviors, which are executed based on certain conditions. The tree is traversed from the root node down to the leaf nodes, with each node returning Success, Failure, or Running status. Behavior Trees help you structure the decision-making logic of your agent, making complex behaviors manageable and understandable via visual representation.
Action nodes are the leaf nodes of the Behavior Tree. They represent the actual tasks or behaviors that the AI agent can perform. When an action node is executed, it attempts to carry out a specific action, such as moving to a target, attacking an enemy, or playing an animation.
Organizational nodes that control the execution flow of their child nodes. There are several types of composite nodes, including:
Sequence: Executes its child nodes in order until one fails. If all child nodes succeed, the sequence node succeeds.
Selector: Attempts to execute its children one by one until one succeeds. It's used for selecting between different behaviors based on their success.
Parallel: Executes all its child nodes simultaneously and succeeds if a specified number of child nodes succeed.
For example you can have a "FindAndAttackEnemy" sequence node with two child nodes: "SearchForEnemy" and "AttackEnemy". The sequence node would first execute the "SearchForEnemy" node to locate an enemy. If an enemy is found, it would then execute the "AttackEnemy" node. If both child nodes succeed, the sequence node succeeds.
Modifiers that alter the behavior or outcome of their child nodes. They can be used to repeat actions, invert success/failure, or conditionally execute based on certain criteria. Common types of decorator nodes include:
Inverter: Inverts the success/failure status of its child node.
Repeater: Repeats the execution of its child node a specified number of times or until a condition is met.
Conditional: Executes its child node only if a specified condition is true.
A repeater node can execute the "AttackEnemy" node multiple times, allowing the AI agent to perform consecutive attacks.
The Blackboard is a global data store that allows nodes to share information and state across the Behavior Tree. It acts as a key-value store, where nodes can read and write data. The Blackboard is useful for storing variables such as target positions, health values, or any other relevant information that nodes might need to access.
AnythingWorld.Animation.FlyingAnimationController
Public Methods
Transition the object to the flying animation.
Transition the object to the idle animation.
This documentation will provide insight into how to prepare a 3D model to receive the best possible results when uploading to the Animate Anything service.
Please note that the Animate Anything service is currently in an early access stage. As with all innovations we’ve honed the spec for our MVP, choosing to offer a wide variety of categories for launch with a basic support function, so whilst Animate Anything is in its ”experimental phase” bear with us.
It's recommended that the model's pose is mirrored or symmetrical when facing the camera.
Note: Users may upload a model with some minor asymmetrical details and still receive quality animations however it depend on a case by case scenario.
The legs and feet of the mesh should not be touching or too close together . This may cause issues when processing the segmentation of the legs and feet.
The model should not have holes in the mesh.
The mesh of the model should not have inner faces.
The model should not have degenerate geometry:
The model should not have multiple mesh layers such as different clothing sub meshes.
The model should not have complex accessories such as swords, shields, big hats or long dresses.
Please note that your model's geometry may be modified to make it more suitable for processing and animation. This can affect the polygon and vertex count as well as the topology of the model. We are working on ways to make this impact minimal the future.
Materials and textures should appear correctly when viewed in 3rd party 3D model editors such as Blender, Maya, 3DsMax, etc. before being uploaded to the Animate Anything tool.
If materials or textures fail to appear in the Animate Anything 3D model viewer, please double check the model in your favorite 3D editor.
It is recommended to either embedded the materials/textures in the 3D model file when relevant or strip the path for the external image files using a 3D modeling software (We recommend Blender).
Fixing missing materials and textures:
FBX:
Embedding the materials and textures into the model's file can be done in Blender when exporting a model. To do this simply change the path mode to copy and enable the Embed Textures option. Embedding the textures correctly will allow the user to only upload the FBX file alone rather than all image files.
Additionally you can strip the path of the external image files by changing the path model to Strip instead of copy. Be sure to move all image files into the same folder as the .fbx! Users will be required to upload all external image files when stripping the paths.
OBJ:
To ensure your OBJ model displays materials and texture files correctly it is recommended to open your file in Blender and re-export with the path mode set to Strip. Stripping the path will allow the user to put all files (OBJ, MTL, PNG, JPEG, etc.) in one folder. If done correctly, the model should display with texture and materials in any 3D viewing application include Animate Anything! Users will need to upload the external image files, when relevant, to Animate Anything for any OBJ models.
Alternatively you can open the MTL file and adjust the paths of the external files by adjusting the map_Kd value. Open the .mtl file in your favorite text editor and remove the file path while leaving the file name and save the .mtl file. Make sure to put the image files in the same folder as the .mtl and .obj files!
DAE:
When exporting DAE from Blender, please ensure that the 'Copy' texture option is enabled. Users will need to upload the external image files to Animate Anything in this circumstance.
GLB:
When exporting GLB from Blender, please ensure that the Materials option is set to 'Export' and that the Images option is set to Automatic. Doing this will embed the materials/textures in the GLB file. Users will not be required to upload external image files when following this process.
GLTF + BIN:
Similarly to GLB, the Materials option is set to 'Export' and that the Images option is set to Automatic when exporting the file. Users will notice that a gltf, bin, and image file (where applicable). Users should upload all of these files to the Animate Anything web tool for the best results.
GLTF Embedded:
The GLTF Embedded version will require the same steps as the GLB, and GLTF+BIN when exporting. The output for this version should be a single file that can be uploaded to Animate Anything without any additional work.
For more information regarding the correct rotation please see .
seconds
Length of time to wait for callback
callback
The function to callback
Some pointers about building for Unity while using Anything World.
When building projects that only use the runtime scripting API Unity will cull shaders that are not in use, so it's recommended to go to Project Settings > Graphics and add the default shaders used in the AW pipeline.
Standard (Metallic)
Standard (Specular)
Standard Transparent (Metallic)
Standard Transparent (Specular)
If there are not enough elements available then please increase the Size parameter to include the listed shaders. It is not recommended to change the existing shaders unless you have experience with this.
Some platforms including mobile and MacOS require a Microphone Usage description for builds that include microphone usage, this will usually be shown to users in a popup format when requesting microphone access.
To do this, navigate to Project Settings > Player > Other Settings > Mac Configuration > Microphone Usage Description.
PathCreator is a tool for creating Bezier curve splines in the Scene view. These splines can be used to represent a path agents use to move. You can place objects and meshes along it for example to create roads. Read more about Bezier curve and how it is defined parametrically or watch in-depth video.
To start creating a spline add a PathCreator component to any game object. Default spline with two anchors and two control points will be added to the scene.
Adding a game object with PathCreator to a parent with significantly changed scale will result in spline having a huge initial size which is inconvenient to work with. In this case it is recommended to first create a game object with PathCreator at the top of the hierarchy and then add it as a child.
Each segment of the spline is defined by two anchor points that determine the start and the end of the spline and two control points tied to anchors that determine the shape of the spline . When more segments are added intermediate anchors have two control points each determining the shape of neighbouring spline segments. To keep the spline curve smooth those control points are usually tied to each other and placed on a straight line but it's possible to change that using different Control Modes.
To have more control over the spline shape you can choose how a control point opposite the one you are manipulating behaves:
Mirrored mode will place the opposite control at the same distance from anchor and directly opposite direction as the manipulated one.
Aligned mode changes the direction of the opposite control but keeps the original distance to anchor intact.
Free mode completely decouples two controls and allows changing them independently.
Automatic mode will place all control points automatically maintaining the smooth shape of the spline.
Enables snapping of anchor and control points to the nearest surface. It can be useful if you want to create a ground path on an uneven surface. Snap mode uses anchor position to calculate the snapped positions of related controls so make sure to snap the anchor first by moving it until it snaps to the surface you want.
For best snapping accuracy it's recommended to manually set up Surface Orientation in corresponding dropdown.
Surfaces with complex shapes or frequently changing angles can still lead to inaccuracies. Placing anchor points on each surface with different angles should help. If all fails you can always disable snapping mode, set up the problematic segment manually and then enable snapping mode again.
Choose between creating splines in 3D or 2D space, with 2D splines restricted to the XZ plane. Snapping is only available in 3D space.
Opening Normals Options section will make normals visible. They determine the orientation of objects placed on a spline or moving along it. While you can set the global angle of normals it's also possible to fine tune them for each segment by clicking on anchor and enabling Unity's rotation tool by clicking on corresponding icon or pressing "E".
Constant Point Size makes it so that control and anchor points keep the same size when moving closer or farther from spline.
Global settings that also exist in Path Options (snap to surface, etc.) determine defaults when path is created or reset.
Deselect When Clicking Outside Spline determines if selection is changed if you click on empty space or other game object. If it's disabled you need to click anywhere in the Hierarchy window to deselect PathCreator object.
Append: Shift + Left Mouse Button (LMB).
Prepend: Ctrl + Shift + LMB or Command + Shift + LMB on Mac.
Divide: Shift + LBM over a segment.
Delete Anchor: Ctrl + LMB or Command + LMB on Mac.
While Bezier Path tab shows a visualization of the spline, Vertex Path shows an actual curve that is created by sampling the curve equation at certain intervals. This allows to get a set of vertices which can be used while moving or placing objects along spline.
Vertex Path Options determine how close the resulting curve will resemble the original one. Changing the margins of error will reduce the Vertex count making it more lightweight while losing some degree of fidelity.
You can also add this BT to any game object to make it move along spline. Adding behaviour trees is explained in the previous section of documentation. After adding the BehaviourTreeRunner component and choosing SplineMovement as the BT you want to run, you also need to add a MovementDataContainer script which contains a field for PathCreator. Add your game object containing PathCreator component to this field and you are good to go.
It is also possible to create a spline programmatically at runtime by using one of the constructors in BezierPath
class. All you need to do is supply it with a set of 2d or 3d points and optionally specify if you want the spline path to be forming a loop and space of the path to be 3d or 2d.
The Behavior Tree Editor can be accessed by either double-clicking an existing tree asset or through the tab located in AnythingWorld -> Behavior Tree Editor.
Behaviour Tree Editor can be opened via double clicking on existing tree asset or opening the tab in AnythingWorld -> Behaviour Tree Editor.
Displays behavior tree nodes and the edges connecting them. This area allows users to interact with the nodes, connect them to each other and visualize the tree structure.
Shows data associated with the currently selected node. Some fields are presented as dropdowns linked to blackboard keys, they have a special type of NodeProperty which allows them to interact with blackboard keys. Other fields are standard Unity serialized fields.
To add a node, right-click on anywhere in the node view and select the desired node from the context menu. You can also start typing the name of the node to filter the list.
Double-clicking on a node opens the code associated with it, allowing direct modifications to its behavior.
Pressing "A" will auto-scale the node view to occupy the available window space fully, enhancing visibility.
Clicking on the Asset menu in the upper left corner reveals a list of all behavior trees in the current project and provides an option to create new ones.
New nodes and trees are saved to default locations specified in the global BT settings, found at Assets/AnythingWorld/AnythingBehaviour/BehaviourTreeProjectSettings.asset
.
Enable Node Values Copying setting determines whether node's field values will be deep copied when copy pasting nodes in node view.
Deep copy works for most of the Unity and basic types. However, more complex ones like Lists of custom types may fail. In this case a warning will be shown and the value skipped.
To use a behavior tree with a GameObject, add the BehaviourTreeRunner
component and select the appropriate tree. Once you add a tree it is automatically instantiated so you can edit it without changing the original asset.
BehaviourTreeRunner
also allows adding blackboard overrides for any blackboard keys BT has. This is useful if you want to change parameters like speed without opening and editing a BT.
Overrides are applied when entering playmode so they need to be setup beforehand.
Note that override will not work if any of the nodes write a value to that key effectively overwriting the value that you set in BehaviourTreeRunner.
Animated models in AnythingWorld Model Browser are imported with preset movement BTs depending on the model type. These default BTs can be changed via Make Options. You can also enable NavMesh usage which will make ground animals move using existing NavMesh or a generated one in case there is none in the scene.
When a scene is played, a runtime copy of the tree is created. If you've opened a Behaviour Tree Editor window before running the scene,d clicking on a GameObject with an active tree will visualize the execution flow, with colors indicating the state of each node. Yellow denotes nodes that returned Running state, green - nodes that returned Success state and red - nodes that returned Failure.
New node types can be added either through the context menu in the node view or by creating a new C# class that inherits from Action, Decorator, or Composite types. These classes must implement OnStart()
, OnStop()
, and OnUpdate()
functions, with OnUpdate()
returning one of the node states.
Each node class has access to a shared context
field which is an instance of Context class that stores commonly used components and subsystems. It is created from the game object that you attached BehaviourTreeRunner component to. You can extend it by adding components that you want all nodes to have access to like Colliders, RigidBodies, etc.
To enable any field of a node to read or write to a blackboard key you must declare it as a NodeProperty<T>
where T
is the type of the property you want to declare, e.g. NodeProperty<float> speed
. You can set a default value via constructor like so: NodeProperty<float> speed = new NodeProperty<float>(4)
. If you have a blackboard key of the same type it's possible now to associate speed
NodeProperty with that key by choosing it from a dropdown in Node Inspector.
Converting a field into a NodeProperty and connecting it to a blackboard key will also allow you to override its value in the BehaviourTreeRunner component as discussed earlier.
Opening Type dropdown when creating a new key will show most of the common C# and Unity types. However if you find some types lacking you need to add them manually by opening BlackboardKeyTypes.cs
file and adding your type following the existing pattern.
Since the blackboard view extends the default Unity inspector it should be able to show all the types Unity inspector supports. However, adding more complex custom types can lead to rendering as well as reading \ writing problems. They can be fixed in some cases but will require in-depth editing of Behaviour Tree Editor code.
You can find example random movement BTs for all types of AnythingWorld agents underAssets/AnythingWorld/Examples/BTMovement
. To see them in action open and run RandomMovement scene from the same folder. There is also MoveAlongSpline BT which is explained in Path Creator documentation section.
All the random movement BTs follow the same logic:
Generate a random position via random position node.
Write it into a blackboard key.
Use that position as movement destination in a MoveToDestination node.
Wait before generating a new position.
However these nodes and their settings vary depending on the model type. The only variables common to all movement nodes and goal generation nodes are the following:
Min / Max Goal Spawn Radius - min / max random goal distance from agent's position.
Speed - initial speed of the agent.
Scale Speed With Model Speed - should we multiply the Speed by speedScalar? speedScalar is calculated from speed data specific to imported model.
Stopping Distance - the remaining distance to the goal when the agent stops moving and considers the goal reached.
Both ground animals and vehicles have settings for movement and turning speed. However ground animals are also able to jump hence GroundAnimalMoveToGoal node in GroundAnimalRandomMovement tree has additional jump settings explained below:
Jump Detector Size - the distance at which an agent will try to detect an obstacle and either avoid it or jump on it. Consequently determines the distance between jump starting point and obstacle.
Scale Jump With Model Height - will decrease or increase both Max Jump Height and Jump Detector Size proportional to model's height.
MaxSlope - maximum slope of the surface an animal able to traverse. Any surface with slope above max is processed as an obstacle that will be avoided or jumped on.
While movement speed and rotation settings resemble previously discussed agents, goal generation has an added height constraint. Flying agent's AerialRandomGoal node has:
Ground Y Coordinate which defines the ground level with global Y coordinate.
Min / Max Flying Height - min / max height relative to ground. So if you have ground level set at 5 and min height set at 2, the agent's min flying height will be 7.
Swimming agents are similar but always stay below water surface. Hence FishRandomGoal node has only Surface Y Coordinate and Swimming Depth which is also relative to the surface.
Please note: The new version of Anything World is not compatible with the legacy version of the package. If you want to upgrade an existing project please contact us on discord or via email.
Some features and resources of the legacy package are missing at launch. These will be added back in later updates.
Added example scene for making objects with the AW scripting API.
Fixed loading errors in the My World tab.
Fixed upgrade errors when using Unity 2022.
Fixed compilation errors.
Fixed issue where certain make parameters would reset or not be applied properly.
We've created a simple SplineMovement with MoveAlongSpline node. The code behind this node shows how spline points can be sampled programmatically to determine position and orientation of the agent on the spline. Example behaviour tree can be found at Assets/AnythingWorld/Examples/BTMovement.
To see it in action open and run RandomMovement scene from the same folder. You can also see a more specific use case by downloading Extra scenes package from the bottom of your and running City_Day scene.
Behavior trees should be created in the lowest Unity version they will be used with, as there is no downward compatibility between versions. You can see the lowest Unity version AnythingWorld currently supports .
You will notice that the movement node of GroundAnimalNavMesh tree has almost no jump settings. That's because NavMesh is used to calculate optimal routes and there cannot be arbitrary changes to movement trajectory. Jump areas must be explicitly defined via NavMeshLinks explained .
AnythingWorld.AnythingMaker
This method allows users to request an object from the Anything World database and have it instantiated in the scene according to the parameters they pass in.
A class that provides methods for creating game objects from the Anything World database based on search terms and parameters.
25/08/2021
action
Action that will be invoked on failed request.
action
Action that will be invoked on failed request and passed a CallbackInfo as an action.
value
Set if model animation should be requested.