Giter Club home page Giter Club logo

jsonasasset's Introduction

JsonAsAsset

Discord GitHub Repo stars Repo size Maintenance

Unreal Engine plugin to allow conversion between JSON to Unreal Engine.

Editor Only Data:
In Unreal Engine 5.2 and above, editor only data has been introduced to Unreal Engine. Allowing us to import materials and material functions into our own project from the pak files of a game.

Contributors:
Tector, Tajgames, GMatrix, and Zylox, and massive thanks to the people who contributed to UEAssetToolkit!

Artwork:


Table of Contents:

  1. Introduction to JsonAsAsset
  2. Installing JsonAsAsset
    2.1 Setting Up JAA Settings
    2.2 Export Directory
  3. Local Fetch

1. Introduction to JsonAsAsset

Please be aware that the use of this plugin should be for personal and educational purposes only. Do not use it to create and distribute commercial products without proper licensing and permissions. It is important to respect the intellectual property of others and only use assets that you have the right to use.

JsonAsAsset (or often referred as JAA) is a plugin to create assets from JSON data obtained from FModel (Software for exploring Unreal Engine games) We are in no way responsible for what may be done with the created content, but you are free to use this tool as much as you like. Here are the supported asset types in JsonAsAsset:

Materials
  • Material
  • MaterialFunction
  • MaterialParameterCollection
  • PhysicalMaterial
  • SubsurfaceProfile
Curve Asset Types
  • CurveFloat
  • CurveTable
  • CurveVector
  • CurveLinearColor
  • CurveLinearColorAtlas
Skeleton/Animation Asset Types
  • SkeletalMeshLODSettings
  • Animation (curves, sync markers)
Sound Asset Types
  • SoundAttenuation
  • SoundConcurrency
  • ReverbEffect
Data Asset Types
  • DataAsset
  • DataTable

The plugin features a user-friendly interface that makes it easy for developers to import JSON data from FModel and map it to appropriate data structures within Unreal Engine to create assets based on them. This includes the ability to create curves, materials, animation curve data, and other assets based on the imported data. However, please know that this plugin is not 100% perfect and errors happen sometimes!

In this short documentation, we will learn how to use this powerful Unreal Engine plugin. And we hope you enjoy it!

2. Installing JsonAsAsset

JsonAsAsset may not work for every Unreal Engine 5 version, please check Releases to see compatibility. Unreal Engine 4 is not maintained at the moment, and is not planned to be supported. (See branches for the current available Unreal Engine 4 versions)

  1. Go to the Releases page for the plugin.
  2. Download the release that matches your version of Unreal Engine. If there isn't a release that matches your version, you will need to compile the plugin yourself.
  3. Extract the downloaded files to your project's Plugins folder. If there isn't a Plugins folder, create one in the root directory of your project.
  4. Open your Unreal Engine project.
  5. Click on Edit -> Plugins.
  6. In the Plugins window, search for "JsonAsAsset" and enable it.
  7. Restart the editor for the changes to take effect.

2.1 Setting Up JAA Settings

JsonAsAsset needs settings to be modified accordingly to properly handle assets. For example, the plugin has to seperate your export folder directory from the actual path to the game.

If you haven't already, install FModel and setup it up correctly. The JSON format/file has to be from a program that fits the format of FModel's JSON export files:

  • FModel (Software for exploring Unreal Engine games)

Now that you've installed FModel and setup it up correctly, we can continue to setting up JsonAsAsset for our own Unreal Engine project. Also, FModel's data is the meat and bones of the plugin, without the data being correctly the same format, the plugin won't work.

2.2 Setting up Export Directory
Upon launching your unreal engine project, you should of seen a notification asking you to change your export directory in the plugin settings, if you've already done that, skip this part.


Without changing your export directory, it will cause the plugin to crash your entire project and will make you restart. We need to change the export directory to allow the plugin to differentiate between what's your directory, and what's the game path it should put it in.

First, open up to the JsonAsAsset plugin settings (basically do what's on the picture on the right) and make sure you are looking at the property "Export Directory".

Now open up FModel, and go to your settings. (Settings -> General) There will be a setting called "Output Directory", copy that and go back to Unreal Engine. Now you need to click on the three dots and jump to the folder you copied and go to the folder named "Exports", then press "Select Folder".

We also recommend you enable "Allow Package Saving" for less issues during importing.


That is the basic setup done! However, if you want to import materials or linear curve atlas at bulk (ex: importing all material functions and their textures), then you're gonna need to setup Local Fetch.

3. Setting Up Local Fetch

Local Fetch is a local API to assist JsonAsAsset by acting as a "FModel", and it supplies textures and asset data to import at runtime. Especially if you're wanting to import materials. It uses CUE4Parse just like FModel.

NOTE: Please make sure you have the plugin in your project's directory and not in the Engine.

The reason being is that the Local Fetch API won't be able to find your config file (settings).

Before we can launch up Local Fetch and get started on automated references. You need to put in all the information about your game first.

This is required as CUE4Parse needs this information to setup file providers and start reading the game files. A lot of these settings are the same as FModel, however make sure you always manually selecting a file/directory using UE's file selecter.

Launching Local Fetch

You must launch Local Fetch through UE, and not by the executable file. The reason being is that the local host port is different when you launch it through UE, so it's important you do so.

Once you've fully setup the settings for Local Fetch, you can now launch the api without any issues.


Go ahead and click on the JsonAsAsset logo () and hover over the list "Command-line Application" and press "Execute JsonAsAsset API (.EXE)".

A window should pop-up, and once the console says [CORE] Running API, Local Fetch has been successfully started!

jsonasasset's People

Contributors

tectors avatar gmatrixgames avatar zyloxmods avatar onganker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.