exelix11 / EditorCore

Extensible 3D level editor
42 stars 11 forks source link

EditorCore

This is a generic 3D level editor, it can be extended to support different games, right now it's only a proof of concept, it requires more developement to adapt to different game engines. The only projects needed are EditorCore and ModelViewerCore, the others are related to the extensions.

BfresLib,BnTxx,ByamlExt and SarcExt can be reused for other Switch games as they handle common file formats.

What's done

What's missing

Screenshots

MK8Level OdysseyLevel

Controls

There are two camera modes, choose the one you like from the settings.

Hotkey action
Space Move camera to selected object
Ctrl + drag object Drag an object in the 3d view
Alt while dragging Snap the object every 100 units
Shift while dragging Snap the object every 50 units
+ Add a new object
D Duplicate selection
Del Delete selection
H Hide selection from view
C Edit the links of the selected object
B (while editing a links list) Go back to the previous list
Q Switch camera mode

Custom plugins

To know how to create custom plugins check the wiki page

Building

This repo contains just the editor and its libs, to use it you also need a game module : \ Super Mario Odyssey module \ Mario Kart 8 and Captain Toad modules

to build you might want to setup the folders the way the visual studio solution is set:

(Root EditorCore directory)\ |-EditorCore \ |  |-EditorCore.sln \ |  |-(other files) \ |-GamePlugins \ |  |-OdysseyExt \ |  |  |-OdysseyExt.csproj \ |  |  |-(other files) \ |  |-MK8DExt \ |  |  |-MK8DExt.csproj \ |  |  |-(other files)

This way the you should be able to build without issues, you just have to restore nuget packages.

If you add a new project make sure to set it's build path to the Ext folder in the bin directory of EditorCore. The dll name should end with Ext.dll

To build a custom plugin (also applies to CTTT3DSExt) : \ Reference EditorCoreCommon.dll and the other needed libs in the project and it should compile. If you're using visual studio you can also debug the plugin without the editor soruce code by attaching the debugger to the editor process.

Credits

This editor contains code or libraries from: