Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benui-dev/UE-BUIValidator
UE4 UI Texture Validator Plugin
https://github.com/benui-dev/UE-BUIValidator
engine plugin texture ue4 ue4-plugin ui umg unreal unrealengine unrealengine4 user-interface validator
Last synced: 3 months ago
JSON representation
UE4 UI Texture Validator Plugin
- Host: GitHub
- URL: https://github.com/benui-dev/UE-BUIValidator
- Owner: benui-dev
- Created: 2021-03-01T04:09:59.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T14:38:26.000Z (over 1 year ago)
- Last Synced: 2024-08-03T01:15:32.672Z (6 months ago)
- Topics: engine, plugin, texture, ue4, ue4-plugin, ui, umg, unreal, unrealengine, unrealengine4, user-interface, validator
- Language: C++
- Homepage:
- Size: 42 KB
- Stars: 83
- Watchers: 3
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-game-security - UE4 UI Texture Validator Plugin
README
# UE4 Texture Validator Plugin
A plugin that validates settings for texture assets in Unreal Engine 4.
## What can it do?
* Throw errors when texture size, texture group and other properties do not
match customizable rules.
* Automatically set default values for new textures upon import.
* Set different validation rules for textures with different prefixes, or for
different folders within Unreal.
* Throw errors when users import textures without setting the Data Source
Folder in their Editor Settings.
* Throw errors when `UPROPERTY()` values are not set.
* Run all rules and validate assets from command-line## Usage
Once installed, open Project Settings > BUI Validator.
Here you can set up validator groups, that consist of match conditions and
rules to be applied to those matches.![Settings example](https://benui.ca/assets/unreal/validator-settings-example.png)
### Settings
#### Match Conditions
For a rule to be triggered, **all** conditions of the match must pass.
* **Texture groups:** Match textures with _any_ of the texture groups.
* **Prefixes:** Match textures with _any_ of the asset name prefixes.
* **Paths:** Match textures in _any_ of the asset directories.#### Validator Rules
Each rule allows multiple values for a given setting. For example a texture
could be allowed to be within World or UI. To pass, the asset must match
**any** of the values.* **Texture groups:** Textures must have one of the specified Texture Groups.
* **Compression Settings:** Textures must have one of the specified
Compression Settings.
* **Pixel Formats:** Textures must have one of these Pixel Formats
* **Mip Gen Settings:** Textures must have one of these Mip Gen Settings
* **Prefixes:** Textures must have one of these prefixes.
* **Texture Size:** Textures must pass these size requirements. Size
requirements are "Multiple of Four" or "Power of Two"
* **Paths:** Textures must be within this path in Unreal.
* **Require Data Source Folder:** Require that the Data Source Folder be set in
Editor Preferences, and that assets are imported from there. This is to aid [reimporting between team members](https://benui.ca/unreal/reimporting-assets/).#### Auto-apply settings to new textures
Validator Groups have an _Apply On Import_ option. When checked, any
newly-imported assets that match the group will have some rules automatically
applied to them.Prefix, Texture Size and Path rules are not applied on import.
### C++ UPROPERTY() Settings
The plugin also supports making `UPROPERTY` properties _required_.
```cpp
// If this is not set, the BP will show an error on save
UPROPERTY( EditAnywhere, meta = ( BUIRequired = "true" ) )
TSubclassOf RequiredActor;
```![BUIRequired flow example](https://benui.ca/assets/unreal/buivalidator-buirequired.png)
### Running Validation
Whenever UTexture2D asset is saved, the rules in Project Settings are applied.
If the asset does not pass, an error is shown.![Failure example](https://benui.ca/assets/unreal/validator-fail-example.png)
### Command-line Validation
This is useful when validating assets as part of a build process.
```
"C:\Program Files\Epic Games\UE_5.0EA\Engine\Binaries\Win64\UnrealEditor-Win64-DebugGame-Cmd.exe" -run=BUIValidateAll
```## Installation
1. Download the zip or clone the Github repository into
`YourProject/Plugins/BUIValidator/`
2. Add the following to the end of your `.uproject` file, inside the `{ }`
```json
"Plugins": [
{
"Name": "BUIValidator",
"Enabled": true
}
]
```## License
[CC0](https://creativecommons.org/publicdomain/zero/1.0/)
## Contact
If you find it useful, drop me a line [@_benui](https://twitter.com/_benui) on Twitter.
[benui.ca](https://benui.ca)
## Future Work
* Add support for validating builds using the [Data
Validation plugin](https://docs.unrealengine.com/5.0/en-US/data-validation/)