An open API service indexing awesome lists of open source software.

https://github.com/JsonAsAsset/JsonAsAsset

Powerful Unreal Engine Plugin that imports assets from FModel
https://github.com/JsonAsAsset/JsonAsAsset

json unreal unrealengine

Last synced: 2 months ago
JSON representation

Powerful Unreal Engine Plugin that imports assets from FModel

Awesome Lists containing this project

README

          







Logo

JsonAsAsset


Powerful Unreal Engine Plugin that imports assets from FModel


Explore the docs »




[![GitHub Repo stars](https://img.shields.io/github/stars/JsonAsAsset/JsonAsAsset?style=for-the-badge&logo=&color=fcca03)](/../../stargazers)
[![GitHub Downloads Total Count (all assets, all releases)](https://img.shields.io/github/downloads/JsonAsAsset/JsonAsAsset/total?style=for-the-badge&label=DOWNLOADS&color=05c1ff)](/../../releases)

[![Discord](https://img.shields.io/badge/Join%20Discord-Collector?color=0363ff&logo=discord&logoColor=white&style=for-the-badge)](https://discord.gg/xXEw4jc2UT)
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Ko--fi?color=ff0de7&logo=ko-fi&logoColor=white&style=for-the-badge)](https://ko-fi.com/t4ctor)

[![Unreal Engine 5 Supported)](https://img.shields.io/badge/5.0+-black?logo=unrealengine&style=for-the-badge&labelColor=grey)](#installation)
[![Unreal Engine 4.27.2 Supported)](https://img.shields.io/badge/4.27.2-black?logo=unrealengine&style=for-the-badge&labelColor=grey)](#installation)
[![Unreal Engine 4.26.2 Supported)](https://img.shields.io/badge/4.26.2-black?logo=unrealengine&style=for-the-badge&labelColor=grey)](#installation)
[![Unreal Engine 4.26.0 Supported)](https://img.shields.io/badge/4.26.0-black?logo=unrealengine&style=for-the-badge&labelColor=grey)](#installation)

### Description

JsonAsAsset is an [Unreal Engine](https://www.unrealengine.com/en-US) plugin that reads [JSON](https://www.json.org/json-en.html) files from FModel [(UEParse)](https://github.com/FabianFG/CUE4Parse), and rebuilds assets like materials, data tables, physics assets, and more.

✨ [Contributors](#contribute)

### Example Use

* Importing **materials**, data assets, and data tables — [see more](#asset-types)
* Porting **physics assets** for skeletal meshes
* Porting **sound effects** to Unreal Engine
* Automating asset porting workflows

This project aims to streamline the porting and modding experience, making it easier to bring game assets into Unreal Engine.


### Licensing

JsonAsAsset is licensed under the MIT License. Read more in the [LICENSE](https://github.com/JsonAsAsset/JsonAsAsset/blob/main/LICENSE) file. The plugin also uses [Detex](https://github.com/hglm/detex) and [NVIDIA Texture Tools](https://docs.nvidia.com/texture-tools/index.html).

-----------------

### **Table of Contents**

> 1. [Asset Types](#asset-types)
> 2. [Installation](#installation)
> 3. [→ Workflow](#workflow)

**Extras**:


> - [Common Errors 🐛](#common-errors)

-----------------

> [!CAUTION]
> Please note that this plugin is intended solely for **personal and educational use**.
>
> Do not use it to create or distribute **commercial products** without obtaining the necessary **licenses and permissions**. It is important to respect **intellectual property rights** and only use assets that you are **authorized to use**.
>
> We **do not assume any responsibility** for the way the created content is used.

-----------------


## Asset Types
If an asset type isn't listed below, **it's not currently supported by the plugin**.

| | Asset Types |
|--------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 🟢 **Curve** | CurveFloat, CurveVector, CurveLinearColor, CurveLinearColorAtlas |
| 🟣 **Data** | DataAsset, SlateBrushAsset, SlateWidgetStyleAsset, AnimBoneCompressionSettings, AnimCurveCompressionSettings, UserDefinedEnum, UserDefinedStruct |
| 🔵 **Table** | CurveTable, DataTable, StringTable |
| 🟠 **Material** | Material, MaterialFunction, MaterialInstanceConstant, MaterialParameterCollection, SubsurfaceProfile |
| 🟧 **Texture** | TextureRenderTarget2D, RuntimeVirtualTexture |
| 🟡 **Sound** | Most/all sound classes are supported. SoundWave is downloaded by a [Cloud Server](#cloud)! |
| 🔴 **Animation** | PoseAsset, Skeleton, SkeletalMeshLODSettings, BlendSpace, BlendSpace1D, AimOffsetBlendSpace, AimOffsetBlendSpace1D |
| ⚪ **Physics** | PhysicsAsset, PhysicalMaterial |
| 🟤 **Sequencer** | CameraAnim |
| 🟩 **Landscape** | LandscapeGrassType, FoliageType_InstancedStaticMesh, FoliageType_Actor |

#### The following asset types add onto a pre-existing asset
| | Asset Types |
|-----------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| **🔴 Animation** | AnimSequence, AnimMontage **(Animation Curves)** |


#### 🟠 Material Data Prerequisites
Unreal Engine games made below 4.12 (a guess) will have material data. *Games made above that version will most definitely not have any material data*, and therefore the actual data will be stripped and cannot be imported. **Unless you are using a User Generated Content editor**, then it's possible material data will be there.

#### 🟣 C++ Classes Prerequisites
If your game uses custom C++ classes or structures, **you need to define them**.

See [Unreal Engine Modding Projects](https://github.com/Buckminsterfullerene02/UE-Modding-Tools?tab=readme-ov-file#game-specific-template-projects) for game-specific template projects.


## Installation
[](https://fmodel.app)

> [!IMPORTANT]
> If you haven't already, **install [FModel](https://fmodel.app) and set it up correctly, then proceed with the setup**.
>
>
> ​There is a specific FModel version for **material data support** found in the discord server.
> [**Material Data Prerequisites still apply.**](#material-data-prerequisites)
> ​

We strongly recommend using the latest **commit** of JsonAsAsset to ensure compatibility with recent Unreal updates and access to the newest features.

Follow these steps to install **JsonAsAsset**:

1. **Visit the Releases Page:**
Go to the [Releases page](/../../releases) for the plugin.
3. **Download the Appropriate Release:**
Download the release that matches your version of Unreal Engine.
If a matching release isn't available, [**compile the plugin yourself**](https://dev.epicgames.com/community/learning/tutorials/qz93/unreal-engine-building-plugins).
5. **Extract the Files:**
Extract the downloaded files to your project's `Plugins` folder. If the folder doesn't exist, create it in the root directory of your project.
7. **Open Your Project**
Launch your Unreal Engine project.


### Set up the Cloud ✨
Make sure Cloud is enabled in Plugin Settings, and set up a Cloud Server. [Click here to get to Cloud releases.](https://github.com/Tectors/Core/releases)

Once the Cloud is started, JsonAsAsset will fetch almost every referenced asset for you hands-free.


## Workflow

1. Find an asset in [FModel](https://fmodel.app), and save it by right-clicking and pressing `Save Properties`. Locate the file on your computer and copy the location.

2. Press the [JsonAsAsset](https://github.com/JsonAsAsset/JsonAsAsset) button on your tool-bar, and a file import should pop up.

3. Select the file and press Open.

4. The asset will import, and bring you to the created asset in the content browser.


### Common Errors 🐛

Assertion failed: TextureReferenceIndex != INDEX_NONE

------------

This is a known issue in our code that we haven't fully resolved yet. While previous attempts to fix it have been unsuccessful, here's a partial solution to reduce its occurrence:

- Re-launch your Unreal Engine project, go to JsonAsAsset's plugin settings and enable ***"Disconnect Root"***. Also enable ***"Save Assets"***.


## ✨ Contributors

Thanks go to these wonderful people:



Tector

Creator

GMatrixGames

Collaborator

Zylox

Casual Maintainer

[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Ko--fi?color=ff0de7&logo=ko-fi&logoColor=white&style=for-the-badge)](https://ko-fi.com/t4ctor)

- Thanks to the people who contributed to [UEAssetToolkit](https://github.com/Buckminsterfullerene02/UEAssetToolkit-Fixes)! They have helped a lot.
- Also, thanks to the people who contributed to [Advanced Locomotion System V4](https://www.fab.com/listings/ef9651a4-fb55-4866-a2d9-1b38b028f9c7)!
- Logo uses a font by [Brylark](https://ko-fi.com/brylark), support him at his ko-fi!

#### [Would you like to contribute?](https://github.com/JsonAsAsset/JsonAsAsset/blob/main/Source/README.md#key-information-for-contributors-)