The fbx2edf tool is a critical utility for PiBoSo games like MX Bikes, GP Bikes, and Kart Racing Pro, used to convert 3D models in FBX format into the game-native EDF (Embedded Data Format) for bike components, rider gear, and track scenery. Core Workflow
To successfully convert a model, follow these essential steps:
Preparation: Ensure your model is exported from your 3D software (Blender, 3ds Max, etc.) as an FBX file with the Y-axis oriented upward and units set to meters to avoid scale issues or empty files.
Loading: Open the fbx2edf.exe tool and click Load to select your FBX file.
Configuration: Select the appropriate Type based on your asset:
Mesh: Use for vehicles (bikes), helmets, and general objects.
Map/Collision: Use for track-related scenery and non-heightmap road surfaces.
Exporting: Click Save, name your target .edf file, and press OK to begin the conversion process. Monitor the separate progress window for completion or errors. Critical Settings & Optimization Shadow Management:
Shadow Volumes: Used for vehicles; use Supersampling (1 for no sampling, up to 3 for 4x).
Shadowmaps: For tracks; set Scale to 0.4 for quick testing and 0.1 for high-quality final exports.
Smoothing: If you notice jagged edges, enable the Smoothing Groups or Use Normals options in the tool or via a params.ini file to recalculate surface normals.
Batch Processing: You can automate exports using a params.ini file or command-line arguments like fbx2edf.exe input.fbx output params.ini for faster iteration. Troubleshooting Common Issues FBX2EDF - MXB Wiki
While I can't directly modify the source code of (a proprietary tool by for games like
), I can help you draft a formal feature request for the developer or create external scripts to augment your workflow. is primarily used to convert objects into (geometry/lighting), and (collision) formats for track and vehicle modding. Common Community Feature Requests
If you are looking for improvements often discussed in the modding community, here are some high-priority areas where users typically want updates: Shader Integration
: Automated exporting of shaders, normal maps, and specular maps to remove the need for manual text script writing. Stability for Large Meshes
: Fixes for crashes that occur when converting complex full-terrain models with "Shadow Map" or "Shadow Volume" options enabled. Animation Support
: Built-in support for exporting animations directly from the FBX file. CLI Functionality
: Enhanced command-line options for batch processing multiple assets at once. How I Can Help You
If you describe the specific feature you have in mind, I can: Write Python/PowerShell Scripts
: To automate the batch conversion of FBX files using the existing fbx2edf.exe command-line interface. Generate Shader Templates : Create the necessary
text files that FBX2EDF currently requires you to make manually. Optimize 3D Workflows : Provide steps for
to ensure your FBX files don't crash the converter (e.g., proper UV unwrapping or smoothing group settings). Question About The fbx2edf Tool - MX Bikes Official Forum
4. FBX→EDF Mapping Rules
- Deterministic node ordering, name normalization, handling duplicate names.
- Geometry: vertex deduplication, interleaving attributes, index remapping.
- Skinning: canonical bone ordering, sparse weight encoding, weight thresholding.
- Animations: retargeting vs. passthrough, resampling policies, curve vs. sampled storage.
- Materials: PBR mapping heuristics from FBX legacy materials, texture reference resolution.
- Unsupported features: constraints, complex rigs — strategies: bake, reference, or store as metadata.
3.2 Core schema
- Scene graph nodes, transforms (TRS), meshes (vertex buffers, index buffers), morph targets, skinning (bone indices, weights), animation channels (keyframes, sampled/curve), materials (PBR parameters), textures (external or embedded), custom properties.
- Versioning and extensible chunk system.
1. Fixed Frame Rate Synchronization
The most significant issue in previous builds was "time drift." FBX files often use variable frame rates or complex time codes inherited from video sources. The previous version of the converter assumed a constant frame rate, leading to data desynchronization when the animation was played back in EDF viewers.
- The Fix: The update introduces a "Timebase Lock" feature. It now extracts the exact time stamps from the FBX metadata and resamples the data to ensure the EDF header reflects the precise duration and sample rate, eliminating drift.
Part 6: Advanced Parameters for FBX2EDF UPD
The power of the UPD version lies in its flags. Here’s a complete reference:
| Flag | Parameter | Description |
|------|-----------|-------------|
| --type | static / skinned / animated | Mesh type. Animated expects skeleton. |
| --bones-per-vertex | 4 or 8 | Override default 4. Use 8 for modern rigs. |
| --scale | float (e.g., 0.01) | Convert units (FBX cm to game meters). |
| --swap-yz | (flag) | For engines that treat Y as up vs Z as up. |
| --max-bones | int (max 128) | Subset of bone influences to export. |
| --tangents | (flag) | Force recalc of tangent space for normal maps. |
| --split-meshes | (flag) | Separate by material. |
| --clamp-uv | (flag) | Clamp UVs to [0,1] (avoid texture bleeding). |
| --game | allods / skyforge / generic | Apply game-specific quirks. |
| --verbose | (flag) | Full logging. |
Error 3: UV channel 2 missing – expect tangent space
Cause: Model requires tangent basis but no second UV.
Fix: In Blender/Maya, ensure you have a second UV map (even if unused). Or use --tangents to derive from normals.
