Skip to the content.

YT-Bridge for Blender

Overview

YT-Bridge for Blender is a tool for exchanging scene data between Blender and Modo. It can convert not only mesh data but also information such as lights and cameras. It can also be used to convert scene data from a newer version of Blender to an older version.

Blender Version and Installation Method

Installing the Blender Add-on

Modo Version and Installation Method

Installing the Modo Kit

Differences from YT-Tools External Clipboard

YT-Bridge is a more advanced version of YT-Tools’ external clipboard. While YT-Tools’ external clipboard converts mesh polygon data and other attribute data via temporary files, YT-Bridge exchanges data on a Blender object (Modo item) basis.

  YT-Tools YT-Bridge
Data Exchange Format JSON Text JSON Text/msgpack Binary
Data Exchange Method Temporary File/OS Clipboard Temporary File
Save/Load As _
Object Coordinate Values ​​
Mesh Data
Curve Data ○ (*1)
Camera Data _
Light Data _
EMPTY Data _
Armature Data _
StaticMesh Data _ ○ (*2)
Linked Object _
Transform Animation _
Import Selection Options _
Material Overwrite Allowed
Specify Import Method ○ (*3)
Data Exchange with LightWave _

(1) Supports copy and paste only between Blender instances.
(
2) Converts Modo’s StaticMesh to a Mesh object and outputs it.
(*3) Pastes into a new object as “New Object from Clipboard”.

Data Exchange Method

YT-Tools external clipboard uses JSON text as the format for exchanging intermediate data. This JSON text data exchange method supports temporary files and the OS-provided clipboard. YT-Bridge supports a binary format in addition to JSON text, which results in a more compact file size. Binary data is serialized using Python’s msgpack. Binary file input/output is generally faster than text format, but actual input/output speed depends on the environment used. YT-Bridge does not support the OS-provided clipboard.

The save format is specified in the panel’s format options.

Pushing (Exporting) Object Data

YT-Bridge’s push operation is equivalent to YT-Tools’ copy operation, saving object data to an intermediate file using the specified method. The data in the intermediate file must be manually pulled from the target application. YT-Bridge does not provide an automatic import function using Inter-Process Communication.

Object Data Pull (Import)

The YT-Bridge pull operation is equivalent to the YT-Tools paste operation, and imports object data saved in the intermediate file into the scene in the specified way.

Saving and Importing Named Files (Export/Import)

YT-Bridge creates intermediate files as temporary files in a folder provided by the OS and exchanges data between applications. Export/Import provides the function to save and import these data files to any folder with a file name specified by the user.

Data Conversion Details

Object Coordinate Data

Blender object and Modo item coordinate data are output in their respective local coordinate systems, including position, rotation, scale, and rotation order. Blender’s coordinate system is a right-handed coordinate system (Z-Up), and Modo’s coordinate system is a right-handed coordinate system (Y-Up). Coordinate values ​​are converted when reading from an intermediate data file. Object parenting information is also saved in the intermediate file.

Linked Objects (Instance Items)

Modo instance items are mutually convertible to Blender linked objects. In Blender, the first linked object in the scene is saved as a physical object in an intermediate file, and subsequent linked objects are output as instances.

Converting Modo instance items created with Mesh Paint to Blender Link Objects

Mesh Data

Mesh data exchanges the mesh data of Blender’s Mesh objects with the polygon data of Modo’s Mesh items of surface types (Face, SubD, PSub). Other polygon types (Text and Polyline) are not exchanged as Mesh data. Curve data is exchanged as Curve objects.
The coordinate system of vertex coordinate values ​​(Blender’s coordinate system is a right-handed coordinate system, Z-Up; Modo’s coordinate system is a right-handed coordinate system, Y-Up) is converted when importing from an intermediate file.
Modo’s Static Mesh is output as Mesh data.

In addition to basic vertex and polygon information, the following information is exchanged as Mesh data.

Curve Data

The curve data is exchanged between the curve data of Blender’s Curve object and the Curve, Bezier Curve, and B-Spline Curve within Modo’s Mesh item. Modo’s Catmull-Rom curves are converted to Bezier curves and output. Blender’s NURBS are converted to Modo’s B-Spline curves and output. Weight values ​​are not exchanged.

Camera Data

The camera data outputs camera field of view information, lens type (perspective, parallel), focal length, and DOF focal length to the intermediate file.

Light Data

The light data outputs information about the light type (point, spot, area, directional). Modo’s directional lights are converted to Blender’s Sun lights. Additionally, the light’s color and intensity are output. Modo’s Intensity and Blender’s Energy have different units, but a coefficient (40.0) is multiplied based on the ratio of their respective scale ranges. (Blender energy range (0-200), Modo intensity range (0-5))

Empty Data

Empty data is output as a Modo locator item and exchanged for a Blender EMPTY object. Only the coordinate data of the object (item) is output.

Armature Data

Armature data is created by converting the data of the locator item used as the Modo skeleton to the data of a Blender Armature object. Because the data structure of the Joint items that make up the Modo skeleton and the Bone of the Blender Armature object are different, hierarchical structures with multiple branching parent-child relationships are not fully converted. Anchor items located at the ends of the Modo skeleton are not output, but are output as the Tail coordinate values ​​of the Bone.
Modo’s skeletons use locator items as Joint items, which can make it difficult to determine which locator is being used as a Joint. YT-Bridge distinguishes between Joints and generic Locators using the following checks:

Converting Modo Skeleton to Blender Bones

Animation Data

Animation data exchanges the position, rotation, and scale values ​​of basic objects (items) in FCurve (Channel) units or XYZ coordinate units. Blender’s Quaternio rotation data is converted to Euler angles (XYZ) in Modo. If Bake Keyframes is enabled, the XYZ coordinate values ​​evaluated at each frame are exported. Animation data other than object (item) transforms is not supported.Also, animation data for skeleton bones is not supported.

Material Data

The material outputs basic diffuse color and roughness values. The texture outputs diffuse color, normal map, and roughness image textures. Other image textures are also output, but if there is no corresponding effect, they will not be reflected in the scene. Basically, the material is assumed to prioritize the material set in the master application. Only when the Replace Materials option is enabled will the imported material overwrite existing materials.
The texture color space is explicitly converted only for sRGB and None-Color. For all others, the default value for each application is used.

Modifier (Deformer) Settings

Enabling Setup Armature Modifiers (Setup Skeleton Deformers) sets the modifiers (deformers) that map bones to Vertex Groups (vertex weight maps) when importing intermediate data. In Blender, the Armature modifier is set, and in Modo, the General Influence deformer is set.

Change Log

v1.0 New Release

License

This Blender add-on is licensed under the GNU General Public License v3.0 or later.

You are free to use, modify, and redistribute it under the terms of the GPL license. For details, please see the included LICENSE.txt.