Skip to content

Commit d1c6a73

Browse files
metyatechclaude
andcommitted
init: rebuild as minimal UE5.4 CI host project for RuntimeAssetImportPlugin
- Rename module RuntimeAssImpSample -> RuntimeAssetImportSample - Replace Plugins/RuntimeAssetImportPlugin (Udon-Tobira) with Plugins/RuntimeAssetImport (metyatech/RuntimeAssetImportPlugin) - Add UnrealBuildRunTestScript submodule - Add Verify.ps1, .github/workflows/ci.yml, agent-ruleset.json, AGENTS.md - Simplify Config files to minimal defaults Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2923d47 commit d1c6a73

25 files changed

Lines changed: 729 additions & 287 deletions

.github/workflows/ci.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
verify:
9+
runs-on: [self-hosted, windows]
10+
timeout-minutes: 60
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
sparse-checkout: |
17+
/*
18+
!/Content/
19+
sparse-checkout-cone-mode: false
20+
21+
- name: Init submodules
22+
run: git submodule update --init --recursive --force -- Plugins/ UnrealBuildRunTestScript
23+
24+
- name: Verify
25+
shell: powershell
26+
run: powershell -NoProfile -ExecutionPolicy Bypass -File .\Verify.ps1

.gitmodules

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
[submodule "Plugins/RuntimeAssetImportPlugin"]
2-
path = Plugins/RuntimeAssetImportPlugin
3-
url = https://github.com/Udon-Tobira/RuntimeAssetImportPlugin.git
1+
[submodule "Plugins/RuntimeAssetImport"]
2+
path = Plugins/RuntimeAssetImport
3+
url = https://github.com/metyatech/RuntimeAssetImportPlugin.git
4+
[submodule "UnrealBuildRunTestScript"]
5+
path = UnrealBuildRunTestScript
6+
url = https://github.com/Udon-Tobira/UnrealBuildRunTestScript.git

AGENTS.md

Lines changed: 466 additions & 0 deletions
Large diffs are not rendered by default.

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@AGENTS.md

Config/DefaultEngine.ini

Lines changed: 8 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,12 @@
11

22

3-
[/Script/EngineSettings.GameMapsSettings]
4-
GameDefaultMap=/Game/Lobby.Lobby
5-
EditorStartupMap=/Game/Lobby.Lobby
6-
7-
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
8-
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
9-
-D3D12TargetedShaderFormats=PCD3D_SM5
10-
+D3D12TargetedShaderFormats=PCD3D_SM6
11-
-D3D11TargetedShaderFormats=PCD3D_SM5
12-
+D3D11TargetedShaderFormats=PCD3D_SM5
13-
Compiler=Default
14-
AudioSampleRate=48000
15-
AudioCallbackBufferFrameSize=1024
16-
AudioNumBuffersToEnqueue=1
17-
AudioMaxChannels=0
18-
AudioNumSourceWorkers=4
19-
SpatializationPlugin=
20-
SourceDataOverridePlugin=
21-
ReverbPlugin=
22-
OcclusionPlugin=
23-
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
24-
CacheSizeKB=65536
25-
MaxChunkSizeOverrideKB=0
26-
bResampleForDevice=False
27-
MaxSampleRate=48000.000000
28-
HighSampleRate=32000.000000
29-
MedSampleRate=24000.000000
30-
LowSampleRate=12000.000000
31-
MinSampleRate=8000.000000
32-
CompressionQualityModifier=1.000000
33-
AutoStreamingThreshold=0.000000
34-
SoundCueCookQualityIndex=-1
35-
36-
[/Script/Engine.RendererSettings]
37-
r.Mobile.EnableNoPrecomputedLightingCSMShader=True
38-
39-
r.GenerateMeshDistanceFields=True
40-
41-
r.DynamicGlobalIlluminationMethod=1
42-
43-
r.ReflectionMethod=1
44-
45-
r.Shadow.Virtual.Enable=1
46-
47-
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
48-
49-
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
50-
51-
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
52-
53-
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
54-
-TargetedRHIs=SF_VULKAN_SM5
55-
+TargetedRHIs=SF_VULKAN_SM6
56-
57-
[/Script/HardwareTargeting.HardwareTargetingSettings]
58-
TargetedHardwareClass=Desktop
59-
AppliedTargetedHardwareClass=Desktop
60-
DefaultGraphicsPerformance=Maximum
61-
AppliedDefaultGraphicsPerformance=Maximum
62-
63-
[/Script/WorldPartitionEditor.WorldPartitionEditorSettings]
64-
CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet'
65-
66-
[/Script/Engine.UserInterfaceSettings]
67-
bAuthorizeAutomaticWidgetVariableCreation=False
68-
FontDPIPreset=Standard
69-
FontDPI=72
70-
713
[/Script/Engine.Engine]
72-
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/RuntimeAssImpSample")
73-
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/RuntimeAssImpSample")
74-
75-
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
76-
bEnablePlugin=True
77-
bAllowNetworkConnection=True
78-
SecurityToken=D5940CF24A79CF0AB8A1E695C7732BB6
79-
bIncludeInShipping=False
80-
bAllowExternalStartInShipping=False
81-
bCompileAFSProject=False
82-
bUseCompression=False
83-
bLogFiles=False
84-
bReportStats=False
85-
ConnectionType=USBOnly
86-
bUseManualIPAddress=False
87-
ManualIPAddress=
4+
bSmoothFrameRate=True
5+
bUseFixedFrameRate=False
6+
SmoothedFrameRateRange=(LowerBound=(Type=ERangeBoundTypes::Inclusive,Value=22.000000),UpperBound=(Type=ERangeBoundTypes::Exclusive,Value=62.000000))
7+
MinDesiredFrameRate=0.000000
8+
FixedFrameRate=30.000000
9+
NetClientTicksPerSecond=30
10+
bCheckForMultiplePawnsSpawnedInAFrame=False
11+
MaxOcclusionPixelsFraction=0.200000
8812

Config/DefaultGame.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11

22
[/Script/EngineSettings.GeneralProjectSettings]
3-
ProjectID=9D9C4E7C4F96D0AF7AA5429937C807BB
3+
ProjectID=AA38B682-88D1-4C32-88D8-2A576281D618
4+
ProjectName=RuntimeAssetImportSample

Config/DefaultInput.ini

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,2 @@
11
[/Script/Engine.InputSettings]
2-
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
3-
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
4-
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
5-
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
6-
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
7-
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
8-
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
9-
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
10-
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
11-
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
12-
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
13-
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
14-
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
15-
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
16-
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
17-
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
18-
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
19-
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
20-
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
21-
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
22-
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
23-
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
24-
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
25-
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
26-
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
27-
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
28-
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
29-
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
30-
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
31-
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
32-
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
33-
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
34-
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
35-
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
36-
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
37-
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
38-
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
39-
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
40-
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
41-
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
42-
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
43-
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
44-
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
45-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
46-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
47-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
48-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
49-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
50-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
51-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
52-
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
53-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
54-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
55-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
56-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
57-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
58-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
59-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
60-
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
61-
bAltEnterTogglesFullscreen=True
62-
bF11TogglesFullscreen=True
63-
bUseMouseForTouch=False
64-
bEnableMouseSmoothing=True
65-
bEnableFOVScaling=True
66-
bCaptureMouseOnLaunch=True
67-
bEnableLegacyInputScales=True
68-
bEnableMotionControls=True
69-
bFilterInputByPlatformUser=False
70-
bShouldFlushPressedKeysOnViewportFocusLost=True
71-
bAlwaysShowTouchInterface=False
72-
bShowConsoleOnFourFingerTap=True
73-
bEnableGestureRecognizer=False
74-
bUseAutocorrect=False
75-
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
76-
DefaultViewportMouseLockMode=LockOnCapture
77-
FOVScale=0.011110
78-
DoubleClickTime=0.200000
79-
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
80-
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
81-
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
82-
-ConsoleKeys=Tilde
83-
+ConsoleKeys=Tilde
84-
+ConsoleKeys=Caret
852

Plugins/RuntimeAssetImport

Submodule RuntimeAssetImport added at 63c8f37

Plugins/RuntimeAssetImportPlugin

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

README.md

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
1-
# RuntimeAssImpSample
2-
## Overview
3-
Sample project for Unreal Engine plugin [RuntimeAssetImportPlugin](https://github.com/Udon-Tobira/RuntimeAssetImportPlugin). Made with UE5.4.2.
4-
5-
## How to run
6-
1. Satisfy [RuntimeAssetImportPlugin Prerequisites](https://github.com/Udon-Tobira/RuntimeAssetImportPlugin?tab=readme-ov-file#prerequisites).
7-
2. Clone this repository with its submodules:
8-
<details>
9-
<summary>Clone method 1 (using Github Desktop) (easy)</summary>
10-
11-
1. Launch "Github Desktop" application (if not available, install it first).
12-
2. From the menu, select File > Clone repository...
13-
3. Go to the URL tab.
14-
4. Enter the URL of this Github repository in "URL or username/repository", select the location you want to clone, and press Clone.
15-
</details>
16-
17-
<details>
18-
<summary>Clone method 2 (using git command) (advanced)</summary>
19-
20-
1. If git is not installed, please install it.
21-
2. Start a command prompt at the location you want to clone.
22-
3. Execute
23-
```
24-
git clone --recursive URL`
25-
```
26-
Put the URL of this repository in the URL field.
27-
</details>
28-
3. Launch the .uproject file in the cloned repository.
1+
# RuntimeAssetImportSample
2+
3+
Minimal UE5.4 host project for building and testing [RuntimeAssetImportPlugin](https://github.com/metyatech/RuntimeAssetImportPlugin) in CI.
4+
5+
This project is not intended for end users. It serves as the test host for plugin automation tests.
6+
7+
## Setup
8+
9+
```bash
10+
git clone --recursive https://github.com/metyatech/RuntimeAssetImportSample.git
11+
```
12+
13+
## Running tests locally
14+
15+
```powershell
16+
.\Verify.ps1 -TestFilter "RuntimeAssetImport"
17+
```
18+
19+
## CI
20+
21+
Uses GitHub Actions self-hosted runner (Windows). Triggered on push and pull_request.

0 commit comments

Comments
 (0)