Home > Devices > Fire Phone

Setting Up Euclid Bundle Builder

Introduction

Note: Certain development tools referenced in this document are provided by third parties, not by Amazon. Any links to these tools in this document take you to third-party sites to download and install them. This software uses the FreeImage open source image library. FreeImage is used under the FIPL license. See http://freeimage.sourceforge.net/freeimage-license.txt for details. Source code for this library is available at http://downloads.sourceforge.net/freeimage/FreeImage3154Win32.zip.

Euclid Bundle Builder (EBB) converts the output from the digital content creation tools into a format usable by the Euclid runtime. See Understanding the Custom Control Authoring Tools and Understanding the Workflow for Visual Assets for an overview of EBB's place in the Euclid Toolchain.

EBB Setup

Note: Euclid Bundle Builder (EBB) is currently only supported on Windows. You can install the FBX SDK for MacOS and Linux systems, but be aware that EBB is not supported and not guaranteed to work on these platforms.

EBB is delivered as a compiled binary with the Fire Phone SDK Addon. However, it needs to be linked with an external library for FBX SDK in order to be fully functional.

Download a copy of the FBX 2013.3 SDK for VS 2010 from the Autodesk® website.

Double-click fbx20133_fbxsdk_vs2010_win.exe. After the FBX SDK has installed on your computer, find the file fbxsdk-2013.3.dll in the following path:

<FBX SDK installation path>\2013.3\lib\vs2010\x86

For example, the full path might be C:\Program Files\Autodesk\FBX\FBX SDK\2013.3\lib\vs2010\x86.

Copy the FBX SDK DLL to the folder in which EBB.exe resides, under the Fire Phone SDK Addon folder in the ADT SDK installation. For example, the path might be as follows:

C:\ADT\sdk\add-ons\addon-fire_phone_sdk_addon-amazon-17\tools\bin

EBB Responsibilities

EBB takes the output from the digital content creation tools and converts the data into a format ready for consumption by the runtime engine. It performs the following functions:

  • Mesh processing
  • Material processing
  • State machine preprocessing
  • Texture compression
  • Node reduction (coalescing of unnecessary scene nodes)
  • Animation curve reduction
  • Asset constraint validation
  • Visual Bundle generation

Command Line

EBB typically runs as part of the makebundles script during an asset build. You can run EBB from the command line. The command-line arguments for EBB are:

Argument Behavior
-h,--help Displays usage information.
-v,--version Displays version information.
-at,--animToler <double> (default=0.001) Sets the animation keyframe reduction tolerance. A value of 0 disables keyframe reduction.
-ct,--compressTextures <bool> (default=1) Enables ETC2 texture compression.
-mip,--mipmap <bool> (default=0) Generates mipmaps.
-o,--outDir <string> (default=./ebb-export) Sets the output directory for generated files.
-vbl,--vblFile <string> Outputs a VBL file with the specified name.
-vp,--validationPolicy <string> Specifies the name of the validation policy to apply (see Validation Policies below).
-bi,--buildInfo <string> Specifies a string to be written to the BUILD_INFO in the root directory.
-sm,--stateMachine <string> (+) Specifies an optional state machine file to also include.
-i, --include <string> (+) Optional file to include in VBL.

Validation Policies

The following table shows the validation policy options for EBB:

Policy 

Max duration (seconds) Max vertices Max bone Max depth Max texture usage (MB) Max VBL usage (MB)
Default 30 10000 128 6 8 30
Small 10 5000 64 16 4 10
Large 30 64000 64 16 30 30

Example Usage

There are some sample Maya files in the SDK under tools/vbl_samples. EBB can convert the output of these Maya files into a .vbl file.

The first step is to export the Maya or 3ds Max files to .fbx files. Exporting Maya files is discussed in Using Maya to Create Custom Visual Assets. 3ds Max files should be exported using the FBX Exporter, built into 3ds Max.

After obtaining the .fbx files, EBB can create a .vbl file using a command like the following:

ebb .fbx .fbx ... –vbl .vbl