diff --git a/docs/charactermenu.md b/docs/charactermenu.md index 1b9ae71da..b4655e999 100644 --- a/docs/charactermenu.md +++ b/docs/charactermenu.md @@ -1,24 +1,24 @@ -@page charactermenu Make a Character - -@htmlonly - -Guides for making custom characters! -

-
- - - -
- -@endhtmlonly - -@subpage characteroverview - +@page charactermenu Make a Character + +@htmlonly + +Guides for making custom characters! +

+
+ + + +
+ +@endhtmlonly + +@subpage characteroverview + diff --git a/docs/characters/characteroverview.md b/docs/characters/characteroverview.md index 681b520b2..9eb0274b7 100644 --- a/docs/characters/characteroverview.md +++ b/docs/characters/characteroverview.md @@ -1,55 +1,55 @@ -\page characteroverview Overview -# Custom characters -Custom characters can only replace existing characters for now. - -1. Download the Kart Setup blender file included with this post(Slightly altered .blender file provided by the Overkart server with some adjustments to the animation to export for Spaghetti, thanks again Andrat for permission to post this and a huge thanks to the Overkart 64 community in general.) [Kart Setup.blend](MK64_Spaghetti_Adjusted_Kart_Setup.blend) -2. Replace Mario with your character, and handle weights of the skeleton as needed to make them move properly. -3. Set the path a valid one(the included path is what Andrat had setup for his original kart setup) but make sure the name matches a listed kart name below and ends with ###, this will ensure it is 3 digits(example path/to/export/toad_kart/toad_kart_frame###) -4. Render the animation at whatever power of 2 of 64x64 you want(64x64, 128x128, 256x256 and so on), -5. In the above toad example, zip up the toad_kart folder and rename it to a .o2r file. -6. Put it in mods folder and run. - -# Examples for all characters: -mario_kart/mario_kart_frame### - -luigi_kart/luigi_kart_frame### - -peach_kart/peach_kart_frame### - -wario_kart/wario_kart_frame### - -toad_kart/toad_kart_frame### - -donkeykong_kart/donkeykong_kart_frame### - -bowser_kart/bowser_kart_frame### - -yoshi_kart/yoshi_kart_frame### - -# Additional Files -Some other files to look out for(still using toad as a example) - -placement icon = common_data/common_texture_portrait_toad.png Original frame is 32x32 - -player selection frames = player_selection/toad_face_00.png ~ toad_face_16.png Original frames is 64x64 (note that Donkeykong uses donkey_kong here instead) - -player select nameplate = texture_tkmk00/gTextureNameToad.png Original frame is 64x12 (note that Donkeykong uses DK here instead) - -## Tips -### Change Viewport Render Settings -Assuming your using the overkart setup kart. - -In object mode, select View -> Cameras -> Active Camera - -Set your render resolution and path as shown in the image below - -Then render your animation by selecting View -> Viewport Render Animation - -![Viewport Render Settings](change_viewport.png) - -## Tools To Help -* There is [Racer Ready-Up](https://vinievex.itch.io/racer-ready-up) which is a tool to help you create custom characters for SpaghettiKart. - -## Future plans -* Support for custom characters that do not replace existing ones. +\page characteroverview Overview +# Custom characters +Custom characters can only replace existing characters for now. + +1. Download the Kart Setup blender file included with this post(Slightly altered .blender file provided by the Overkart server with some adjustments to the animation to export for Spaghetti, thanks again Andrat for permission to post this and a huge thanks to the Overkart 64 community in general.) [Kart Setup.blend](MK64_Spaghetti_Adjusted_Kart_Setup.blend) +2. Replace Mario with your character, and handle weights of the skeleton as needed to make them move properly. +3. Set the path a valid one(the included path is what Andrat had setup for his original kart setup) but make sure the name matches a listed kart name below and ends with ###, this will ensure it is 3 digits(example path/to/export/toad_kart/toad_kart_frame###) +4. Render the animation at whatever power of 2 of 64x64 you want(64x64, 128x128, 256x256 and so on), +5. In the above toad example, zip up the toad_kart folder and rename it to a .o2r file. +6. Put it in mods folder and run. + +# Examples for all characters: +mario_kart/mario_kart_frame### + +luigi_kart/luigi_kart_frame### + +peach_kart/peach_kart_frame### + +wario_kart/wario_kart_frame### + +toad_kart/toad_kart_frame### + +donkeykong_kart/donkeykong_kart_frame### + +bowser_kart/bowser_kart_frame### + +yoshi_kart/yoshi_kart_frame### + +# Additional Files +Some other files to look out for(still using toad as a example) + +placement icon = common_data/common_texture_portrait_toad.png Original frame is 32x32 + +player selection frames = player_selection/toad_face_00.png ~ toad_face_16.png Original frames is 64x64 (note that Donkeykong uses donkey_kong here instead) + +player select nameplate = texture_tkmk00/gTextureNameToad.png Original frame is 64x12 (note that Donkeykong uses DK here instead) + +## Tips +### Change Viewport Render Settings +Assuming your using the overkart setup kart. + +In object mode, select View -> Cameras -> Active Camera + +Set your render resolution and path as shown in the image below + +Then render your animation by selecting View -> Viewport Render Animation + +![Viewport Render Settings](change_viewport.png) + +## Tools To Help +* There is [Racer Ready-Up](https://vinievex.itch.io/racer-ready-up) which is a tool to help you create custom characters for SpaghettiKart. + +## Future plans +* Support for custom characters that do not replace existing ones. * Support 3d models for characters. \ No newline at end of file diff --git a/docs/trackmenu.md b/docs/trackmenu.md index 8742b466f..0ca64f872 100644 --- a/docs/trackmenu.md +++ b/docs/trackmenu.md @@ -1,174 +1,174 @@ -@page trackmenu Track Making - -@htmlonly - -Guides for making custom tracks! -

-
- - - -
- -
- - - -
- -

-
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -@endhtmlonly - -@subpage trackoverview -@subpage quick -@subpage setup -@subpage materials -@subpage objectproperties -@subpage paths -@subpage minimap -@subpage export -@subpage import -@subpage track-properties -@subpage troubleshooting +@page trackmenu Track Making + +@htmlonly + +Guides for making custom tracks! +

+
+ + + +
+ +
+ + + +
+ +

+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +@endhtmlonly + +@subpage trackoverview +@subpage quick +@subpage setup +@subpage materials +@subpage objectproperties +@subpage paths +@subpage minimap +@subpage export +@subpage import +@subpage track-properties +@subpage troubleshooting diff --git a/docs/tracks/export.md b/docs/tracks/export.md index f982bb623..1bf59e9bd 100644 --- a/docs/tracks/export.md +++ b/docs/tracks/export.md @@ -1,55 +1,55 @@ -\page export Export -# Export - -## Quick Overview -A basic track needs the following: -* A surface mesh built using a plane (a flat square, not a cube) - * Large enough to encompass the spawn area from (0,0,0) to (0, -16.8, 0) in blender, in-game (0, 0, -420) -* A path built using a Path or bezier curve - - -## Setup -* Naming the objects in blender is not required. -* To export a track all the objects need to be placed inside the empty like so: -![](image-1.png) - -* This can be done by dragging mesh or path into the empty while holding `SHIFT` - -## Export Panel -![alt text](image-2.png) - -Featureset -* Must be set to HM64 -Name -* The name of your track -Mods Path -* The mods folder where the data will output too - * `desktop/mycoolmods` will output as `desktop/mycoolmods/tracks/mytrackname/stuff_here` -Export -* Press this button to export the track! - -## Packaging - -* Find the `desktop/mycoolmods/tracks` folder and place a mods.toml file beside the tracks folder. Place the following in mods.toml -```toml -[mod] -name = "mymod" -version = "1.0.0" -``` -* Highlight the tracks folder and the mods.toml file. -image - -* Right-click --> *Add To Archive* and turn into a stored zip archive. - * This file should *not* be compressed. -* If you wish, you may rename this file to mod_name.o2r or mod_name.zip - -If you open the zip folder, you should immediately see the `tracks` folder and the mods.toml file. Inside `tracks` should be a folder with the name of your track, and some files inside of that folder. - -If it does not contain any files similar to the below then something has gone wrong. - -image - -* If all checks out, go to your game executable -* Add a `mods` folder. Drag and drop your mod into the mods folder. -* Any number of tracks may be placed in the tracks folder +\page export Export +# Export + +## Quick Overview +A basic track needs the following: +* A surface mesh built using a plane (a flat square, not a cube) + * Large enough to encompass the spawn area from (0,0,0) to (0, -16.8, 0) in blender, in-game (0, 0, -420) +* A path built using a Path or bezier curve + + +## Setup +* Naming the objects in blender is not required. +* To export a track all the objects need to be placed inside the empty like so: +![](image-1.png) + +* This can be done by dragging mesh or path into the empty while holding `SHIFT` + +## Export Panel +![alt text](image-2.png) + +Featureset +* Must be set to HM64 +Name +* The name of your track +Mods Path +* The mods folder where the data will output too + * `desktop/mycoolmods` will output as `desktop/mycoolmods/tracks/mytrackname/stuff_here` +Export +* Press this button to export the track! + +## Packaging + +* Find the `desktop/mycoolmods/tracks` folder and place a mods.toml file beside the tracks folder. Place the following in mods.toml +```toml +[mod] +name = "mymod" +version = "1.0.0" +``` +* Highlight the tracks folder and the mods.toml file. +image + +* Right-click --> *Add To Archive* and turn into a stored zip archive. + * This file should *not* be compressed. +* If you wish, you may rename this file to mod_name.o2r or mod_name.zip + +If you open the zip folder, you should immediately see the `tracks` folder and the mods.toml file. Inside `tracks` should be a folder with the name of your track, and some files inside of that folder. + +If it does not contain any files similar to the below then something has gone wrong. + +image + +* If all checks out, go to your game executable +* Add a `mods` folder. Drag and drop your mod into the mods folder. +* Any number of tracks may be placed in the tracks folder * This allows map packs \ No newline at end of file diff --git a/docs/tracks/import.md b/docs/tracks/import.md index 3f347db36..c4dc84748 100644 --- a/docs/tracks/import.md +++ b/docs/tracks/import.md @@ -1,48 +1,48 @@ -\page import Import -# Import - -Presuming you have followed the steps in the export page, you should have -* `mymod.zip` or `mymod.o2r` placed in the mods folder beside the game executable. -* The track is ready for testing - -## Launch the Game -* Press `ESC` and enable `Debug Mode` -image - -* Navigate away and back to the start screen and a debug menu should pop up. -Use the left/right arrow keys to switch tracks. Custom tracks are placed at the end of the list. - -* Press *Launch HM64 Labs* to configure your track and place actors. - -image - -* Select your track in the Content Browser -* When opening your track for the first time, a scene.json file is created in the tracks data folder. - * If something ever goes horribly wrong you could manually edit this file or back it up to restore it later. -* If the game crashes while loading, then there is an issue with track path or mesh. Check logs, they are quite detailed and may point out what is wrong. - -image - -* Navigate to the Track Properties winow to modify track name and settings - -image - -![alt text](image-6.png) - -### Resource Name -* Must be named identifier:track_name -* The identifier can be used as a keyword for all of your mods -* This format prevents name collisions so that everyone could make their own version of banana if they wish. mk is used for original game content and hm for harbour masters content. mk:banana, hm:harbour, etc. - -### Name -* The display name for the track -### Debug Name -* The display name in the debug menu. -### Track Length -* An arbitrary value that describes the general length of the track - - -## Conclusion -Congrats! You have successfully made a track - -If thet track did not work, try the troubleshooting page. +\page import Import +# Import + +Presuming you have followed the steps in the export page, you should have +* `mymod.zip` or `mymod.o2r` placed in the mods folder beside the game executable. +* The track is ready for testing + +## Launch the Game +* Press `ESC` and enable `Debug Mode` +image + +* Navigate away and back to the start screen and a debug menu should pop up. +Use the left/right arrow keys to switch tracks. Custom tracks are placed at the end of the list. + +* Press *Launch HM64 Labs* to configure your track and place actors. + +image + +* Select your track in the Content Browser +* When opening your track for the first time, a scene.json file is created in the tracks data folder. + * If something ever goes horribly wrong you could manually edit this file or back it up to restore it later. +* If the game crashes while loading, then there is an issue with track path or mesh. Check logs, they are quite detailed and may point out what is wrong. + +image + +* Navigate to the Track Properties winow to modify track name and settings + +image + +![alt text](image-6.png) + +### Resource Name +* Must be named identifier:track_name +* The identifier can be used as a keyword for all of your mods +* This format prevents name collisions so that everyone could make their own version of banana if they wish. mk is used for original game content and hm for harbour masters content. mk:banana, hm:harbour, etc. + +### Name +* The display name for the track +### Debug Name +* The display name in the debug menu. +### Track Length +* An arbitrary value that describes the general length of the track + + +## Conclusion +Congrats! You have successfully made a track + +If thet track did not work, try the troubleshooting page. diff --git a/docs/tracks/materials.md b/docs/tracks/materials.md index d91d72da8..850c77125 100644 --- a/docs/tracks/materials.md +++ b/docs/tracks/materials.md @@ -1,9 +1,9 @@ -\page materials Materials -# Materials - -Suggest using the youtubes on this one. - -https://youtu.be/LwODZixL_II?si=7o4shGYo6V-mQPeh - - +\page materials Materials +# Materials + +Suggest using the youtubes on this one. + +https://youtu.be/LwODZixL_II?si=7o4shGYo6V-mQPeh + + Proper material presets need to be setup still \ No newline at end of file diff --git a/docs/tracks/minimap.md b/docs/tracks/minimap.md index 2382e26a4..cabca70ac 100644 --- a/docs/tracks/minimap.md +++ b/docs/tracks/minimap.md @@ -1,48 +1,48 @@ -\page minimap Minimap -# Minimap -Create a new `minimap.png` file using your favourite graphics editor. - -There are two options for making a minimap. The outcome is identical. - -## Format -* Image size of 32x32 to 128x128 - * Odd sizes like 64x32 or 128x64 is fine. - * Recommend no bigger than 128x128 but it will work. - * Save as 32-bit - -## Tips -* Turn off anti-aliasing -* White pixels must be RGB(255, 255, 255) -* Black pixels must be RGB(0, 0, 0) -* Any other pixel colour will turn into white - -## Option 1: Black Background, White Track -* Use black pixels for the background and white pixels for the track. -* The black pixels will be transparent in-game - -![alt text](image-3.png) -* Easiest option to make because it is easy to see the track - - -## Option 2: Transparent Background, White Track -* Transparent pixels must be *FULL* transparent or they will turn into white pixels - - - -* Transparent version much harder to see the track in the graphics editor. - -## Export -Place `minimap.png` in the track folder. -``` -desktop/mycoolmods/tracks/mytrackname/minimap.png -``` -The same folder as the track data that looks like this: - -image - -## In-game configuration - -* In the minimap tab the position of the minimap, finishline, and players markers can be configured. -* The minimap can also be coloured - +\page minimap Minimap +# Minimap +Create a new `minimap.png` file using your favourite graphics editor. + +There are two options for making a minimap. The outcome is identical. + +## Format +* Image size of 32x32 to 128x128 + * Odd sizes like 64x32 or 128x64 is fine. + * Recommend no bigger than 128x128 but it will work. + * Save as 32-bit + +## Tips +* Turn off anti-aliasing +* White pixels must be RGB(255, 255, 255) +* Black pixels must be RGB(0, 0, 0) +* Any other pixel colour will turn into white + +## Option 1: Black Background, White Track +* Use black pixels for the background and white pixels for the track. +* The black pixels will be transparent in-game + +![alt text](image-3.png) +* Easiest option to make because it is easy to see the track + + +## Option 2: Transparent Background, White Track +* Transparent pixels must be *FULL* transparent or they will turn into white pixels + + + +* Transparent version much harder to see the track in the graphics editor. + +## Export +Place `minimap.png` in the track folder. +``` +desktop/mycoolmods/tracks/mytrackname/minimap.png +``` +The same folder as the track data that looks like this: + +image + +## In-game configuration + +* In the minimap tab the position of the minimap, finishline, and players markers can be configured. +* The minimap can also be coloured + ![alt text](image-18.png) \ No newline at end of file diff --git a/docs/tracks/objectproperties.md b/docs/tracks/objectproperties.md index d6c342228..909d919a1 100644 --- a/docs/tracks/objectproperties.md +++ b/docs/tracks/objectproperties.md @@ -1,46 +1,46 @@ -@page objectproperties Object Properties -# Object Properties - -![alt text](image-22.png) - -## Section ID -* Leave this set to 255. This tells the game to always draw the object. -* If you set this to a section ID, then you need to setup grouped displaylists and consider what meshes should be drawn depending on what section the player is driving in and what direction they are facing. - * This technology is no longer necessary, and thus, we can ignore it by leaving this value at 255 - -## Surface -The kind of driving surface the player is on. Dirt and sand will slow you down. Asphalt is driving on a road, etc. - -## Clip -This sets if the object can be driven through or not. And if objects in the environment collide with it. Generally, this value only -needs to be changed under certain circumstances -* Remember that the edges of meshes need to perfectly line-up. If there's any gaps, or if objects overlap each other, the collision will not be consistent and players can drive through the object in the corners. - -### No Clip -No collision. Players can drive through this object. -* Warning: Setting the surface mesh to no clip will spawn players at 3000.0f because it will not be able to find a place to put the players - -### Single-sided Wall -A normal wall collision presuming the player can never access the other side of the wall. If they do, they will drive through the object. - -### Surface -Not necessary to be set. But if for some reason you need to force a mesh to be a surface, this is here for that. - -### Double-sided Wall -Required if making a fence where the player can access both sides of the wall. The collision generator is not good at recognizing that you want a double-sided wall and for performance reasons will not provide collision for the other side. This means the player can drive through one side, but not the other. Double-sided wall fixes this so no matter what side the wall is approached from, the player cannot drive through the wall. - - -## Draw Layer -Object draw order matters for transparent objects. Thus, transparent objects must be drawn after opaque objects. - -### Draw Invisible -Pretty self-explanatory. The draw phase gets completely cut from the object. This is useful for invisible walls - -### Draw Opaque -A normal object. It is not transparent. - -### Draw Translucent -A transparent object. If you do not set this for transparent objects, the order of drawn objects will be wrong. - -### Draw Translucent NoZBuffer +@page objectproperties Object Properties +# Object Properties + +![alt text](image-22.png) + +## Section ID +* Leave this set to 255. This tells the game to always draw the object. +* If you set this to a section ID, then you need to setup grouped displaylists and consider what meshes should be drawn depending on what section the player is driving in and what direction they are facing. + * This technology is no longer necessary, and thus, we can ignore it by leaving this value at 255 + +## Surface +The kind of driving surface the player is on. Dirt and sand will slow you down. Asphalt is driving on a road, etc. + +## Clip +This sets if the object can be driven through or not. And if objects in the environment collide with it. Generally, this value only +needs to be changed under certain circumstances +* Remember that the edges of meshes need to perfectly line-up. If there's any gaps, or if objects overlap each other, the collision will not be consistent and players can drive through the object in the corners. + +### No Clip +No collision. Players can drive through this object. +* Warning: Setting the surface mesh to no clip will spawn players at 3000.0f because it will not be able to find a place to put the players + +### Single-sided Wall +A normal wall collision presuming the player can never access the other side of the wall. If they do, they will drive through the object. + +### Surface +Not necessary to be set. But if for some reason you need to force a mesh to be a surface, this is here for that. + +### Double-sided Wall +Required if making a fence where the player can access both sides of the wall. The collision generator is not good at recognizing that you want a double-sided wall and for performance reasons will not provide collision for the other side. This means the player can drive through one side, but not the other. Double-sided wall fixes this so no matter what side the wall is approached from, the player cannot drive through the wall. + + +## Draw Layer +Object draw order matters for transparent objects. Thus, transparent objects must be drawn after opaque objects. + +### Draw Invisible +Pretty self-explanatory. The draw phase gets completely cut from the object. This is useful for invisible walls + +### Draw Opaque +A normal object. It is not transparent. + +### Draw Translucent +A transparent object. If you do not set this for transparent objects, the order of drawn objects will be wrong. + +### Draw Translucent NoZBuffer Objects set to this ignore the ZBuffer. This means they are always visible on the screen, no matter the distance. The HM64 Labs Gizmo grab handles for instance are set to this (used for translating objects). \ No newline at end of file diff --git a/docs/tracks/quick.md b/docs/tracks/quick.md index 4426e5ee7..586a28ad5 100644 --- a/docs/tracks/quick.md +++ b/docs/tracks/quick.md @@ -1,52 +1,52 @@ -\page quick Quick Reference -# Quick Reference - -Important details without the steps - -## Template Project -* See the template below containing - * A finishline model for use as as reference - * A starting road (probably delete and make your own) - * Road has enough length behind the finishline for the racers - * A starting path - -[template 1.0.blend](