Skip to content

Commit c91768e

Browse files
committed
Prepare for Marketplace: Prebuilt binaries, license compliance, cleanup
1 parent ea52571 commit c91768e

114 files changed

Lines changed: 23422 additions & 648 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 0 additions & 3 deletions
This file was deleted.

AGENTS.md

Lines changed: 0 additions & 466 deletions
This file was deleted.

CLAUDE.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

Config/FilterPlugin.ini

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[FilterPlugin]
2+
; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and
3+
; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively.
4+
;
5+
; Examples:
6+
; /README.txt
7+
; /Extras/...
8+
; /Binaries/ThirdParty/*.dll

PreBuild.bat

Lines changed: 0 additions & 61 deletions
This file was deleted.

README.md

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,32 @@
22
## Overview
33
This is a plugin for the Unreal Engine to load 3D assets (e.g. FBX) at runtime. Made with UE5.4.2.
44

5-
## Prerequisites
6-
- Windows is the primary supported platform. macOS (arm64 only; x86_64 not supported) and Linux support is experimental.
7-
- Download and install [CMake](https://cmake.org/)
8-
The check box "Add CMake to the PATH environment variable" that appears during installation must be checked.
5+
## Recommended approach: DynamicMesh (stable)
6+
7+
**Use the `DynamicMesh` path for all builds.** The `ConstructDynamicMeshComponentFromAssetFile` and `ConstructDynamicMeshComponentFromMeshData` Blueprint functions are the stable, recommended methods that work correctly in both editor and packaged builds.
8+
9+
> **StaticMesh functions are [Experimental].** `ConstructStaticMeshComponentFromAssetFile` and related StaticMesh functions have a known limitation in packaged builds (no editor): **materials display as a checkerboard pattern**. Avoid using them unless you understand and accept this limitation.
910
10-
> **Note:** The first build of the assimp library (a C++ dependency) takes approximately 5 or more minutes. Subsequent builds are fast. This is expected behavior.
11+
## Prerequisites
12+
- Windows (Win64) is the primary supported platform.
1113

1214
## How to install
13-
Clone this repository with its submodules into the Plugins folder (or create your own if you don't have one) in the folder of the Unreal Engine project where you want to install this plugin by doing one of the following:
14-
<details>
15-
<summary>Installation method 1 (using Github Desktop) (easy)</summary>
1615

17-
1. Launch "Github Desktop" application (if not available, install it first).
18-
2. From the menu, select File > Clone repository...
19-
3. Go to the URL tab.
20-
4. Enter the URL of this Github repository in "URL or username/repository", select the Plugins folder of the project where you want to install this plugin in "Local path", and press Clone.
21-
</details>
16+
1. Copy (or clone) this plugin folder into the `Plugins/` folder of your Unreal Engine project. Create the `Plugins/` folder if it does not exist.
17+
2. Open your project. When prompted "The following modules are missing or built with a different engine version: RuntimeAssetImport", press **Yes** to build.
18+
3. The plugin is now enabled and ready to use.
19+
20+
> **Note:** Win64 prebuilt binaries for assimp are included. No CMake or manual build step is required.
2221
2322
<details>
24-
<summary>Installation method 2 (using git command) (advanced)</summary>
25-
26-
1. If git is not installed, please install it.
27-
2. In the Plugins folder of the project where you want to install this plug-in, start a command prompt.
28-
3. Execute
29-
```
30-
git clone --recursive URL
31-
```
32-
Put the URL of this repository in the URL field.
33-
</details>
23+
<summary>Alternative: clone with Git</summary>
3424

35-
After installing the plugin using one of the above procedures, open the project (Press Yes when you see "The following modules are missing or built with a different engine version: RuntimeAssetImport") and the plugin is enabled.
25+
In the `Plugins/` folder of your project, run:
26+
```
27+
git clone <URL of this repository>
28+
```
29+
Then open the project and press **Yes** when prompted to build.
30+
</details>
3631

3732
## How to use
3833
Run [Runtime Asset Import Sample](https://github.com/Udon-Tobira/RuntimeAssImpSample).
@@ -58,7 +53,7 @@ The plugin's `Content` folder includes the following assets:
5853
## Known Bugs
5954

6055
- **Multiplayer (ProceduralMesh):** Clients may experience abnormal movement accompanied by a `LogNetPackageMap` warning. Use `DynamicMeshComponent` instead as a workaround.
61-
- **Packaged game materials (StaticMesh):** Materials display as a checkerboard pattern in packaged builds. Use `DynamicMeshComponent` instead as a workaround.
56+
- **Packaged game materials (StaticMesh — Experimental):** Materials display as a checkerboard pattern in packaged builds. Use `DynamicMeshComponent` instead as a workaround.
6257

6358
## Running Tests
6459

@@ -76,5 +71,4 @@ Or from the UE Editor UI: **Window > Test Automation**, search `RuntimeAssetImpo
7671
- Only 1 vertex color channel is supported
7772

7873
## Description of the technology inside
79-
We are using assimp as a git submodule, CMake is only needed to build assimp. The actual loading of the asset files is done by assimp, and this plugin only converts them from the format loaded by assimp to a format usable by the Unreal Engine. The build of assimp is done automatically during the project build process.
80-
74+
We are using assimp for loading 3D asset files. Prebuilt Win64 binaries (`assimp-vc143-mt.dll` / `.lib`) are bundled under `Source/ThirdParty/assimp/Bin/Win64` and `Lib/Win64`. This plugin converts the data loaded by assimp into a format usable by Unreal Engine.

RuntimeAssetImport.uplugin

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,11 @@
1515
"IsBetaVersion": false,
1616
"IsExperimentalVersion": false,
1717
"Installed": false,
18-
"PreBuildSteps": {
19-
"Win64": [
20-
"\"$(PluginDir)\\PreBuild.bat\""
21-
],
22-
"Mac": [
23-
"chmod +x \"$(PluginDir)/PreBuild.sh\"",
24-
"\"$(PluginDir)/PreBuild.sh\""
25-
]
26-
},
2718
"Modules": [
2819
{
2920
"Name": "RuntimeAssetImport",
3021
"Type": "Runtime",
3122
"LoadingPhase": "PreDefault"
32-
},
33-
{
34-
"Name": "RuntimeAssetImportTest",
35-
"Type": "Developer",
36-
"LoadingPhase": "Default"
3723
}
3824
],
3925
"Plugins": [

Source/RuntimeAssetImport/Private/AssetConstructor.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
// Fill out your copyright notice in the Description page of Project Settings.
1+
// Copyright (c) 2026 metyatech. All rights reserved.
22

33
#include "AssetConstructor.h"
44

5+
#include "HasFeatureDef.h"
56
#include "AssetConstructorHelpers.h"
67
#include "AssetLoader.h"
78
#include "CreateMeshFromMeshDataOnProceduralMeshComponentLatentAction.h"
9+
#include "Engine/Engine.h"
10+
#include "Engine/LatentActionManager.h"
811

912
void UAssetConstructor::CreateMeshFromMeshDataOnProceduralMeshComponent(
1013
const UObject* WorldContextObject, FLatentActionInfo LatentActionInfo,

Source/RuntimeAssetImport/Private/AssetConstructorHelpers.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
// Fill out your copyright notice in the Description page of Project Settings.
1+
// Copyright (c) 2026 metyatech. All rights reserved.
22

33
#include "AssetConstructorHelpers.h"
44

5+
#include "HasFeatureDef.h"
56
#include "ImageUtils.h"
67
#include "LogAssetConstructor.h"
8+
#include "Materials/MaterialInstanceDynamic.h"
9+
#include "Materials/MaterialInterface.h"
710

811
TArray<UMaterialInstanceDynamic*> GenerateMaterialInstances(
912
UObject& Owner, const TArray<FLoadedMaterialData>& MaterialDataList,

Source/RuntimeAssetImport/Private/AssetConstructorHelpers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Fill out your copyright notice in the Description page of Project Settings.
1+
// Copyright (c) 2026 metyatech. All rights reserved.
22

33
#pragma once
44

0 commit comments

Comments
 (0)