GithubHelp home page GithubHelp logo

gdi4k / unreal-terrain-magic Goto Github PK

View Code? Open in Web Editor NEW
60.0 4.0 16.0 1.57 GB

TerrainMagic brings a set of tools that makes it easier to create & modify landscapes in Unreal Engine.

Home Page: https://www.unrealengine.com/marketplace/en-US/product/terrainmagic-supercharging-landscape-creation

License: Other

C++ 69.43% C# 0.28% C 30.12% Batchfile 0.14% VBScript 0.02%

unreal-terrain-magic's People

Contributors

arunoda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

unreal-terrain-magic's Issues

Use Paint Layers inside Clips

We need to write paint layer data, right inside Landscape Clips.
At least, we need to provide support for Splat Maps & Normals based painting

Landscape Clips

This is a way to introduce and customize the heightmap of the landscape via a special actor.

A Landscape clip is not a Blueprint brush.
But it talks to the blueprint brush at some point to commit the height data. Here's the reason for that

  • Blueprint brushes are quite slow if we go beyond 4K resolution. (Especially on UE5)
  • With Clips, we can work on the height data right inside the clip.
    • We can add a preview with a dummy mesh
    • Or we can simply render the HeightMap
  • After some point, we can commit the Clip's HeightMap into the actual heightmap (Via an Existing brush)

We also need to support the following items in a clip

  • Allow adding a smaller height map & post-process it
  • Move it to anywhere we like

This will be a long project & we might have implemented this in smaller chunks

Unable to build plugin

1>Plugin 'TerrainMagic' (referenced via TerrainMagic.uproject) does not contain the 'TerrainMagic' module, but lists it in 'E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin'.

I've followed the instructions in your Youtube video, tried to install in the engine and inside the project separately.. But no success.. Installed DotNet SDK 6.

When I generate the Visual Studio project files:

Running E:/Program Files/Epic Games/UE_5.1/Engine/Build/BatchFiles/Build.bat  -projectfiles -project="E:/UE5/TerrainMagic/TerrainMagic.uproject" -game -rocket -progress -log="E:\UE5\TerrainMagic/Saved/Logs/UnrealVersionSelector-2023.10.25-22.25.12.log"
Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="E:/UE5/TerrainMagic/TerrainMagic.uproject" -game -rocket -progress -log="E:\UE5\TerrainMagic/Saved/Logs/UnrealVersionSelector-2023.10.25-22.25.12.log"
Log file: E:\UE5\TerrainMagic\Saved\Logs\UnrealVersionSelector-2023.10.25-22.25.12.log
Log file: C:\Users\noob_013\AppData\Local\UnrealBuildTool\Log_GPF.txt

Some Platforms were skipped due to invalid SDK setup: IOS, Android, Linux, LinuxArm64.
See the log file for detailed information

Discovering modules, targets and source code for project...
E:\UE5\TerrainMagic\Plugins\TerrainMagic_UE51\TerrainMagic.uplugin: warning: Unknown platform Win32 while parsing allow list for module descriptor TerrainMagic
E:\UE5\TerrainMagic\Plugins\TerrainMagic_UE51\TerrainMagic.uplugin: warning: Unknown platform Win32 while parsing allow list for module descriptor TerrainMagicEditor
Compiled assembly file 'E:\UE5\TerrainMagic\Intermediate\Build\BuildRules\TerrainMagicModuleRules.dll' appears to be for a newer CLR version or is otherwise invalid.  Unreal Build Tool will try to recompile this assembly now.  (Exception: Could not load file or assembly 'E:\UE5\TerrainMagic\Intermediate\Build\BuildRules\TerrainMagicModuleRules.dll'. Format of the executable (.exe) or library (.dll) is invalid.)
E:\UE5\TerrainMagic\Plugins\TerrainMagic_UE51\Source\TerrainMagic\TerrainMagic.Build.cs(5,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'TerrainMagic'
E:\UE5\TerrainMagic\Plugins\TerrainMagic_UE51\Source\TerrainMagic\TerrainMagic.Build.cs(7,9): error CS0111: Type 'TerrainMagic' already defines a member called 'TerrainMagic' with the same parameter types
Expecting to find a type to be declared in a target rules named 'TerrainMagicTarget'.  This type must derive from the 'TargetRules' type defined by Unreal Build Tool.

When I put the Plugin inside E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51 I get the following:

Running E:/Program Files/Epic Games/UE_5.1/Engine/Build/BatchFiles/Build.bat  -projectfiles -project="E:/UE5/TerrainMagic/TerrainMagic.uproject" -game -rocket -progress -log="E:\UE5\TerrainMagic/Saved/Logs/UnrealVersionSelector-2023.10.25-22.30.03.log"
Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="E:/UE5/TerrainMagic/TerrainMagic.uproject" -game -rocket -progress -log="E:\UE5\TerrainMagic/Saved/Logs/UnrealVersionSelector-2023.10.25-22.30.03.log"
Log file: E:\UE5\TerrainMagic\Saved\Logs\UnrealVersionSelector-2023.10.25-22.30.03.log
Log file: C:\Users\noob_013\AppData\Local\UnrealBuildTool\Log_GPF.txt

Some Platforms were skipped due to invalid SDK setup: IOS, Android, Linux, LinuxArm64.
See the log file for detailed information

Discovering modules, targets and source code for project...
E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin: warning: Unknown platform Win32 while parsing allow list for module descriptor TerrainMagic
E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin: warning: Unknown platform Win32 while parsing allow list for module descriptor TerrainMagicEditor
Binding IntelliSense data...
Exception while generating include data for TerrainMagicEditor: Plugin 'TerrainMagic' (referenced via TerrainMagic.uproject) does not contain the 'TerrainMagic' module, but lists it in 'E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin'.
Binding IntelliSense data... 100%
Writing project files...

Opening the solution in VS2022:

E:\UE5\TerrainMagic\Intermediate\ProjectFiles\UE5.vcxproj : warning  : Platform 'Win64' referenced in the project file 'UE5' cannot be found.
E:\UE5\TerrainMagic\Intermediate\ProjectFiles\TerrainMagic.vcxproj : warning  : Platform 'Win64' referenced in the project file 'TerrainMagic' cannot be found.

and when using debug:

Severity	Code	Description	Project	File	Line	Suppression State
Error	MSB3073	The command ""E:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat" TerrainMagicEditor Win64 Development -Project="E:\UE5\TerrainMagic\TerrainMagic.uproject" -WaitMutex -FromMsBuild" exited with code 6.	TerrainMagic	C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets	44	
Warning		Unknown platform Win32 while parsing allow list for module descriptor TerrainMagic	TerrainMagic	E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin	1	
Warning		Unknown platform Win32 while parsing allow list for module descriptor TerrainMagicEditor	TerrainMagic	E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\TerrainMagic_UE51\TerrainMagic.uplugin	1	

Access Paint Layer Information from Blueprints

With this, we can access paint layer information right inside Blueprints. We can use this to detect the paint layer & launch foot sounds & etc.

This can used in full if we create auto materials based on TerrainMagic.

Add Terrain Meshes

This will be very similar to features we have in the Clips, but instead of the Landscape. We will add it as a static mesh.
We can have all the features we have already. Here are some of the things we can do:

The idea of these for now is to add background meshes, vistas, etc.

  • Add Noise Based Terrain Mesh
  • Add all the height-blending features we got. (Reuse them as well)
  • Implement a Simple but useful Material
  • Provide a way to pass Weight Maps
  • Bake as Nanite Textures (Possibly, clean up all the procedural RenderTargets, etc)

Introduce a Mask Building System

Here using the Landscape Height & Other information, we should be able to create some masks. These are not "paint layers". But some masks.

We can create a mask using the following things:

  • Height Data
  • Normal Data
  • Noises
  • Edge Noises
  • Merge with an existing mask (use operations: add, multiply or subtract)
  • Merge with an existing paint layer (use operations: add, multiply or subtract)
  • Painting Manually
  • Paint geometry shapes
  • Project a static mesh

Here are set of things that we can do with masks:

  • Apply paint layers
  • Use for applying landscape height (noises, etc)
  • Directly send them to the material for additional work
  • Access these via Blueprints (for foot sounds & other effects)
  • Spawn Foliage

Ability to export Height & Weight Maps

Sometimes, we need to export these generated heightmaps (Maybe for another client)
So, in that case, we should allow a clean option to export heightmaps.

Also, a way to flatten-out LandscapeClips & WeightMaps.

Copy Blend Mode

Here we can nice blend two heightmaps but replace existing ones. We can use an alpha mask to lerp between the original & the new clip.

Implemented with 1.7.0

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.