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.
- 3D level editor, with search, drag, raycast, and undo
- Interfaces for level files and objects
- Plugin structure to load different extensions at once (but only one GameExtension)
- Paths rendering
- Super mario odyssey plugin to edit levels.
- Mario Kart 8 Deluxe plugin to edit courses.
- Captain Toad Treasure Tracker plugin to edit levels.
- A native/GPU-accelerated 3D renderer, the current one uses WPF and is kinda laggy
- Undo is not fully implemented
- Probably other stuff
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 |
To know how to create custom plugins check the wiki page
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.
This editor contains code or libraries from: