Files
llamamod/notes/editor-guide.md
T

200 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LlamaMod Level Editor – user guide
A 3D level editor for *The Emperor's New Groove* (PC, 2000; German: *Ein Königreich für ein
Lama*). It is part of **LlamaMod**, the mod manager: levels you make are installed and played
as LlamaMod mods. Everything is built from **your own copy of the game** – a level project
contains only your changes, so it can be shared freely.
![The editor with the village](img/editor/ui_select_move.jpg)
* [Getting started](#getting-started)
* [Moving around](#moving-around)
* [Creating a new level](#creating-a-new-level)
* [Editing an original level](#editing-an-original-level)
* [Objects, waypoints and zones](#objects-waypoints-and-zones)
* [Importing meshes](#importing-3d-models)
* [Textures](#textures)
* [Play-testing](#play-testing)
* [Sharing levels](#sharing-levels)
* [Shortcuts](#shortcuts) · [Troubleshooting](#troubleshooting)
## Getting started
1. Install LlamaMod and let its wizard set up the game from your CD or ISO (Windows or Linux).
2. Click **Level Editor** in LlamaMod's header (or start `LlamaMod --editor`).
3. **Help → Getting started** (Shift+F1) shows a five-step tour inside the editor;
**Help → Shortcut sheet** gives a printable page with every key.
The window: menu and toolbar at the top, the **Outliner** (everything in the level as a tree)
on the left, the **Inspector** (properties of the selection) on the right, the **viewport** in
the middle and **Assets / Textures / Problems** at the bottom. Panels can be moved to another
side through their tab's context menu and reopened under **View → Panels**.
## Moving around
| Input | Action |
|---|---|
| right mouse button held + **W A S D**, **Q / E** | fly (Shift = faster, wheel = fly speed) |
| middle mouse (or Alt + left) | orbit around the selection or the point under the cursor |
| Shift + middle mouse | pan |
| mouse wheel | zoom towards the cursor |
| **F** / **Home** | frame the selection / the whole level |
| numpad 7 / 1 / 3 / 5 | top / front / side / perspective |
Click selects, Shift+click adds, Ctrl+click toggles, dragging in empty space draws a box
selection. **W** move, **E** rotate, **R** scale (brushes), **Q** select; **G** toggles grid
snapping, Ctrl while dragging inverts it. Every change can be undone (**Ctrl+Z**); **Edit →
History** lists all steps.
## Creating a new level
**File → New level** asks for a name, the **base level** and a template:
* **Empty** – nothing but the base level's sky, fog and music,
* **Flat floor** – a 16×14 grass floor with a start and an exit,
* **Island** – a grass island with trees in the sea.
The *base level* (default: Village chapter 1) supplies the object types, textures, sounds,
sky, the start zone (fog, music) and the directional lights. Its teleport zones, point lights,
paths and visibility regions are not taken over. New levels live in the game's hidden **TestLevel** world (world 9); each project gets one
of its 49 chapters (shown in **Level → Level settings**).
![New level dialog](img/editor/ui_dialog_new.jpg)
Build the level from **brushes** (Assets → Brushes: floors, boxes, platforms, ramps, stairs,
fences, trees, sea, kill planes …) and the base level's **tile models**. Drag them from the
Assets panel into the viewport. Brush parameters (size, textures, collision material) are in
the Inspector.
Every level needs
* a **Llama** – the player start (Assets → Objects → Player & start),
* an **exit**: a **LevelDoor** on floor with collision material **16** (the templates have one),
* floor with collision under the start. **Level → Check for problems** lists what is missing.
## Editing an original level
**File → Open original level** shows all chapters with their loading pictures. You can move,
add and delete objects, tiles, waypoints, zones and lights. The project stores only the
differences to the original, and building it with the same CD gives the same file every time.
Tip: prefer moving or hiding original tiles over deleting them – some object scripts address
tiles by their number, and deleting shifts those numbers.
## Objects, waypoints and zones
* **Objects** (Assets → Objects) are the base level's object types: coins, collectibles,
checkpoints, enemies, villagers, moving platforms … Their parameters and flags are in the
Inspector. Only types that exist in the base level can be placed.
* **Waypoint chains** belong to objects (paths of enemies, camera paths). Select an object to
see its chain; duplicating an object copies its chain.
* **Zones** set fog, colours, music and respawn/teleport targets; **lights** colour the level;
**visibility regions** decide which parts are drawn from where (View → Layers shows them).
## Importing 3D models
**File → Import mesh** reads OBJ (with MTL and textures) and glTF/GLB. The model becomes a
*mesh brush*: it is cut into the engine's 1×1-cell tiles at build time, gets collision (choose
the material in the Inspector) and lit vertex colours. The engine has no free texture
coordinates – each triangle shows one half of a texture rectangle – so simple, rectangular UV
layouts look best.
## Textures
The **Textures** panel (bottom dock, Ctrl+Shift+T, or **Window** for a large separate window)
is the texture manager:
![Texture manager](img/editor/tex_manager.jpg)
* **Pages** (left): the level's 256×256 texture pages with their blend class.
* **Atlas** (middle): the selected page with every texture rectangle – white = used, red =
unused, cyan = animated, orange = selected. Drag the selected rectangle to move it, drag its
handles to resize it, mouse wheel zooms.
* **Table**: number, name, page, rectangle, blend class, how many faces/models use it, animation.
Filter by *used / unused / animated / imported*; double-click a texture to paint with it.
* **Texture** tab: name, position and size, blend class, usage, *Duplicate*, *Select users*.
* **Animation** tab: flip-books (a sequence of frame textures, frame delay, back and forth) and
vertical scrolling (rivers, lava), with a live preview.
**Import…** adds PNG/JPG/BMP images:
![Import dialog](img/editor/tex_import.jpg)
| Option | |
|---|---|
| Size | longest side in pixels; the aspect ratio is kept |
| Blend class | **Opaque**, **Cut-out** (fully transparent pixels: leaves, fences), **Semi-transparent** (50 % blending: glass, water), **Additive glow** (light, fire), **Darken** |
| Transparent below alpha | pixels less opaque than this become invisible |
| Keep half-transparent pixels | for semi-transparent/additive textures |
| Transparent colour | magenta or the top-left pixel for images without alpha |
| Dither | smoother gradients in the game's 15-bit colour |
| Pack into free space | uses unused areas of existing pages of the same blend class before adding pages |
The preview shows the image as the game will show it. **Replace pixels…** puts a new image into
an existing texture's rectangle (all faces using it change), **Export PNG…** saves one; the
page list's context menu exports or replaces whole pages.
**Paint texture** tool (**M**): click a face of a tile to give it the current texture (the
*scope* box paints the face, all faces of that model with the same texture, or the whole
model). Clicking a brush sets its top/side/bottom texture by the side you click.
**Shift+click** or the **eyedropper** (**I**) picks the texture of a face. For the selected face:
*Rotate* turns the texture, *Mirror* flips it, *Other half* shows another half of the texture
rectangle. Tiles often share one model – tick **Unique** to give the clicked tile its own copy
first, otherwise every tile with that model changes.
![Painting a texture](img/editor/tex_paint.jpg)
## Play-testing
**Play** (**F5**) builds the level, installs it as a mod and starts the game **directly in the
level** – no intro, no menus, no map. **Play from camera position** (**Shift+F5**) puts the llama
on the ground in the middle of the view, facing the way the camera looks (the editor checks that
there is walkable collision there – trees and roofs often have none).
In the game, **Escape** quits straight back to the editor. When the game has ended, LlamaMod
switches your normal mod selection back on (the level itself stays installed as a mod).
![The game started straight in the level](img/editor/play_boot.jpg)
Options in the **Level** menu: *Play boots straight into the level* (off = the game starts at the
main menu with the map cursor on the level) and *Escape quits the play-test*. The save slot used
for play-testing (default 3, backed up first) is set in **Edit → Preferences**.
## Sharing levels
Projects are `.llamalevel` files (saved by default in LlamaMod's `levels` folder). They contain
your changes, imported meshes and textures and a thumbnail – **no game data** – and are usually
only a few kilobytes. To share a level:
1. **File → Save** and send the `.llamalevel` file (forum, Discord, e-mail).
2. The receiver uses **Mods → Levels → Import level…** in LlamaMod (or copies the file into the
`levels` folder), ticks the level and clicks **Play**. LlamaMod builds it from their own CD.
3. New levels appear on the world map as **TestLevel – chapter n**; edited original levels replace
that chapter while the mod is on.
If two level mods use the same TestLevel chapter, change the chapter in the mod's options.
## Shortcuts
| Keys | Action |
|---|---|
| Ctrl+N / Ctrl+O / Ctrl+S | new / open / save |
| Ctrl+Z / Ctrl+Y | undo / redo |
| Ctrl+D, Del | duplicate, delete |
| Q W E R | select, move, rotate, scale |
| T, I | paint texture, eyedropper |
| G, X, C, H / Alt+H, L | snapping, local space, collision view, hide / show all, lock |
| Ctrl+B, F5, Shift+F5 | build, play, play from camera position |
| Ctrl+Shift+T | texture manager |
| F1, Shift+F1 | shortcuts, getting started |
## Troubleshooting
| Problem | Solution |
|---|---|
| "OpenGL 3.3 is not available" | update the graphics driver; in a VM enable 3D acceleration |
| Play: "The game is still running" | quit the game first (level files cannot be replaced while it runs) |
| The llama falls through the floor (play from here) | point the view at walkable ground; check collision with **C** |
| Windows Defender warns about groove.exe | play-tests change groove.exe (boot to level); see LlamaMod's antivirus notice |
| A level does not load / the game crashes | **Level → Check for problems**; keep tiles inside the grid; one player start |