mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-16 15:10:00 -04:00
256 lines
12 KiB
HTML
256 lines
12 KiB
HTML
<!-- HTML header for doxygen 1.10.0-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Mario Kart 64: Custom Tracks</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
|
|
<link href="docs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
|
|
<script type="text/javascript">
|
|
DoxygenAwesomeDarkModeToggle.init()
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">Mario Kart 64
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('md_docs_2custom-track.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">Custom Tracks</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><p><a class="anchor" id="custom-tracks"></a></p>
|
|
<p>This guide is</p><ul>
|
|
<li>Hastily written</li>
|
|
<li>Made for advanced users</li>
|
|
<li>A work-in-progress</li>
|
|
</ul>
|
|
<p>This guide is not all encompassing and may be missing important information. A better manual will be drafted in the future.</p>
|
|
<h1><a class="anchor" id="dependencies"></a>
|
|
Dependencies</h1>
|
|
<ul>
|
|
<li>Blender v4.3 (older should work fine too).</li>
|
|
<li><a class="el" href="classHarbour.html">Harbour</a> Masters Fast64 <a href="https://github.com/HarbourMasters/fast64">https://github.com/HarbourMasters/fast64</a></li>
|
|
</ul>
|
|
<h1><a class="anchor" id="how-to-use"></a>
|
|
How to use</h1>
|
|
<ul>
|
|
<li>Add an empty <– All of your meshes and path will go here. Place it at coordinate 0,0,0</li>
|
|
<li>Add a bezier curve <– This will be the track path. Place it at coordinate 0,0,0</li>
|
|
<li>Add some mesh <– The drivable surface should be a flat-plane, not a box.<ul>
|
|
<li>Goto the object menu and select a surface type (asphalt, grass, etc.)</li>
|
|
<li><a class="el" href="structStuff.html">Stuff</a> like buildings or walls should be separate meshes to not mess with the collision generator.</li>
|
|
<li>The track/pavement should be a separate mesh from the rest of the scene.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="materials"></a>
|
|
Materials</h1>
|
|
<ul>
|
|
<li>Youtube tutorials discuss how materials work.</li>
|
|
<li>Fast64 often defaults to a CI8 palette texture, always change <code>Format</code> to <code>RGBA-16 bit</code> or <code>RGBA-32 bit</code> The Colour Index (CI8) format can cause issues if not used correctly. It's easy to confuse this as directly below this box it says <code>RGBA 16-bit</code> Example of incorrect texture format: <img src="https://github.com/user-attachments/assets/518bd16e-3d16-43f9-9767-fc73ea2ab5f8" alt="image" width="677" height="777" class="inline"/></li>
|
|
</ul>
|
|
<p>Example of correct texture format <img src="https://github.com/user-attachments/assets/2cce483b-7fcb-435b-924e-3443e2976e95" alt="image" width="627" height="205" class="inline"/></p>
|
|
<h1><a class="anchor" id="export"></a>
|
|
Export</h1>
|
|
<ul>
|
|
<li>Check <code>Ignore Textures Restrictions</code> failing to do so may result in errors <img src="https://github.com/user-attachments/assets/60f084d3-aef4-429c-889f-2e2d74473e1a" alt="image" width="318" height="315" class="inline"/></li>
|
|
<li>FAST64 MUST BE SET TO F3DEX MODE (The others <em>should</em> work but they don't)</li>
|
|
<li>Select the empty and click the SpaghettiKart and <a class="el" href="classHarbour.html">Harbour</a> Masters profiles</li>
|
|
<li>Name: Track name here</li>
|
|
<li>internal_game_path: must have <code>tracks/your_track_name_here</code></li>
|
|
<li>export_path: Choose an export location</li>
|
|
<li>decomp_path: Leave blank</li>
|
|
<li>Click Export</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="preparation"></a>
|
|
Preparation</h1>
|
|
<ul>
|
|
<li>Place files in folder <code>tracks/your_track_name_here/the_files_here</code></li>
|
|
<li>Right click on the folder <code>tracks</code>, and turn into stored zip archive.<ul>
|
|
<li>This file should <em>not</em> be compressed.</li>
|
|
</ul>
|
|
</li>
|
|
<li>If you wish, you may rename this file to mod_name.o2r or mod_name.zip</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="import"></a>
|
|
Import</h1>
|
|
<ul>
|
|
<li>Place mod in <code>mods</code> folder beside game executable.</li>
|
|
<li>Launch the game</li>
|
|
<li>Enable HM64 Labs in the ESC enhancements menu</li>
|
|
<li>Enable Debug Mode in the ESC Developer menu (only required if using the debug menu to play tracks)<ul>
|
|
<li>If you are at the start screen, navigate away and come back, the debug menu will appear.</li>
|
|
</ul>
|
|
</li>
|
|
<li>In the Content Browser click <code>Tracks</code></li>
|
|
<li>Your track should be in here with an exclamation mark. Your track needs to be initialized.</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="track-initialization"></a>
|
|
Track Initialization</h1>
|
|
<ul>
|
|
<li>An initialized track has a scene.json file in it. The game creates this file automatically.</li>
|
|
<li>In the Track <a class="el" href="structProperties.html">Properties</a> window setup how you want and then click on your track in the Content Browser.</li>
|
|
<li>The scene file should now be generated. If the game crashes, just restart.</li>
|
|
<li>If the track no longer has the exclamation mark, your scene file has successfully been created.</li>
|
|
<li>The track should now show up in the debug track list.<ul>
|
|
<li>You can use the debug menu to play your track.</li>
|
|
<li>You can click on your track in the Content Browser under <code>Tracks</code> to play your track.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="playing-your-custom-track"></a>
|
|
Playing Your Custom Track</h1>
|
|
<ul>
|
|
<li>If the game crashes when you select it. Issue with track path or mesh is most common cause.<ul>
|
|
<li>The game generates collision mesh automatically.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Adjust the settings in the track properties to whatever.</li>
|
|
<li>Add actors or more mesh using the Content Browser</li>
|
|
<li>Actors/Objects and Lighting changes are not currently saving to the scene file yet.<ul>
|
|
<li>You can place stuff. But it will not save.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="tips"></a>
|
|
Tips</h1>
|
|
<p><b>The Laws of SpaghettiKart</b></p><ul>
|
|
<li>Track geography must be a plane, not a box<ul>
|
|
<li>A flat course with a basic plane (square), needs to be turned into triangules and/or subdivided a few times, otherwise the collision generation will 'wig out', placing the racers incorrectly</li>
|
|
</ul>
|
|
</li>
|
|
<li>The starting line must face north<ul>
|
|
<li>In Blender: Positive Green Y Axis</li>
|
|
<li>In game: Negative Z axis</li>
|
|
</ul>
|
|
</li>
|
|
<li>The meshes anchor needs to be center of mass or at 0,0,0<ul>
|
|
<li>Otherwise the mesh will have a weird offset.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Don't draw your path backwards (In blender turn on normals on the bezier curve to see the direction)</li>
|
|
<li>The first path point is set at 0,0,0</li>
|
|
<li>Recommend a scaling of 20 in the F3D Exporter window</li>
|
|
<li>Must be 10 path points behind the starting line</li>
|
|
</ul>
|
|
<p><b>Minimap</b></p><ul>
|
|
<li>Must be named: minimap.png</li>
|
|
</ul>
|
|
<p>Two options for making minimap textures:</p><ul>
|
|
<li>Make the background full black (this will be transparent in-game). Use White for the track.<ul>
|
|
<li>This option is easiest to see the track.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Use FULL alpha for the background. Use white for the track. <em>Extra details:</em></li>
|
|
<li>Save .png as 32bit. 32x32 (other resolutions should work if needed, but recommend no bigger than 128x128)</li>
|
|
<li>Turn off brush anti-aliasing.<ul>
|
|
<li>Semi-transparent pixels will be rendered full white. So your lines will end up thicker.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h2><a class="anchor" id="extra-information-that-may-be-helpful"></a>
|
|
Extra information that may be helpful</h2>
|
|
<p><a href="https://github.com/DeadHamster35/Tarmac64/wiki/Troubleshooting">https://github.com/DeadHamster35/Tarmac64/wiki/Troubleshooting</a></p>
|
|
<p>Applicable only to Overkart 64, but some concepts may transfer to SpaghettiKart <a href="https://github.com/DeadHamster35/Tarmac64/wiki/Blender-Reference-Guide">https://github.com/DeadHamster35/Tarmac64/wiki/Blender-Reference-Guide</a> </p>
|
|
</div></div><!-- contents -->
|
|
</div><!-- PageDoc -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|