Skip to content

Arstz/ForzaLiveryStudio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forza Livery Studio

I hate love this name. A standalone C++ QT editor for Forza vinyl groups and liveries. Does not modify the game memory in runtime. We are not responsible for any damage done to your groups/liveries, use at your own discretion.

Features

  • Import/export to Forza proprietary binary format.
  • Save/load project to json files.
  • Full transformations for shapes and groups.
  • Custom groups, reusable in multiple projects.
  • Add raster image overlay as guide layer.
  • Direct shape parity with the game engine.
  • 3D car preview with live livery projection; auto-loads the matching car model.
  • Blazingly fast perfomance thanks to C++.

Usage

Download the latest release, launch ForzaLiveryStudio.exe. Read manual for keyboard shortcuts and tools guide.

Configure all the windows as you need them and press Window -> Save Layout. If you want to rename the default shapes, go to assets/vector/shape_names.json.

All settings as well as custom groups are stored in your QSettings, in the registry HKEY_CURRENT_USER\Software\ForzaTools\ForzaLiveryStudio.

Building

Windows

Requirements: Qt6 via vcpkg, C++ compiler, zlib.

Run the build script:

.\tools\build.ps1

See developer guide for detailed instructions.

Linux (Arch)

Requirements: Qt6, zlib, CMake 3.24+, C++20 compiler.

Install dependencies:

# Arch (SteamOS)
sudo pacman -S qt6-base qt6-tools qt6-svg zlib cmake gcc ninja

# Ubuntu/Debian
sudo apt install qt6-base-dev qt6-tools-dev qt6-svg-dev zlib1g-dev cmake g++ ninja-build

# Fedora
sudo dnf install qt6-qtbase-devel qt6-qttools-devel qt6-qtsvg-devel zlib-devel cmake gcc-c++ ninja-build

Configure and build:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Run:

chmod +x ./build/ForzaLiveryStudio
./build/ForzaLiveryStudio

See developer guide for detailed build and development instructions.

Status

The import/export for groups is fully supported, core functionality in place. Source-backed liveries can be imported, previewed in 3D on a car model. The icons are handmade, we need a proper designer, I know they are ugly but at least we wont get sued. Livery import/export may have some shape transform mutations due to alingment issues, create an issue and attach a livery if that happens, we will investigate.

Version Group Livery
Horizon 6 Import/Export Import/Export
Motosport 23 Import Import

Documentation

Q/A

  • Did you use AI? - Yes. Initially all of project base has been built in python by hands, but due to performance limitations we decided to port the project to C++. To speed up porting we used AI.
  • When [FeatureName]? - Tomorrow.
  • Can I get banned for this? - No.
  • I want [FeatureName], where to request? - Create an issue in this repo.
  • Why not Rust? - https://youtu.be/8ue3PXu3W8Q

Credits

  • Fr4g3z - cool guy, helped a lot, complained a lot, format reversing.
  • Mixbob - lazy bastard, tested ingame, usage feedback.
  • Zloysvin - PR Manager / shape renamer.
  • Pengyss - non-uniform group tranform algorithm.
  • Eaterrius - big money man, provided tokens.
  • Doliman100 - reverse engineering Forza file formats and documentation.
  • All the people's liveries/groups I used to decode the format.

About

The best and only vinyl editor for Forza game series

Resources

License

Stars

15 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages