mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Volume docs page
This commit is contained in:
parent
c9b1f91c7b
commit
8084425a23
72
docs/src/content/docs/guides/volumes.md
Normal file
72
docs/src/content/docs/guides/volumes.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
title: Volumes
|
||||||
|
description: Guide to making volumes in New Horizons
|
||||||
|
---
|
||||||
|
|
||||||
|
Volumes are invisible 3D "zones" or "triggers" that cause various effects when objects enter or leave them. For example, `oxygenVolumes` refill the player's oxygen when they enter (used for the various oxygen-generating trees in the game), `forces.directionalVolumes` push players and other physics objects in a specific direction (used by both Nomai artificial gravity surfaces and tractor beams), `revealVolumes` unlock ship log facts when the player enters or observes them (used everywhere in the game), and more.
|
||||||
|
|
||||||
|
New Horizons makes adding volumes to your planets easy; just specify them like you would [for a prop](/guides/details/) but under `Volumes` instead of `Props`. For example, to add an oxygen volume at certain location:
|
||||||
|
|
||||||
|
```json title="planets/My Cool Planet.json"
|
||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/Outer-Wilds-New-Horizons/new-horizons/main/NewHorizons/Schemas/body_schema.json",
|
||||||
|
"name" : "My Cool Planet",
|
||||||
|
"Volumes": {
|
||||||
|
"oxygenVolumes": [
|
||||||
|
{
|
||||||
|
"position": {"x": 399.4909, "y": -1.562098, "z": 20.11444},
|
||||||
|
"radius": 30,
|
||||||
|
"treeVolume": true,
|
||||||
|
"playRefillAudio": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Listing out every type of volume is outside the scope of this guide, but you can see every supported type of volume and the properties they need in [the VolumesModule schema](/schemas/body-schema/defs/volumesmodule/).
|
||||||
|
|
||||||
|
## Volume Shapes
|
||||||
|
|
||||||
|
By default, volumes are spherical, and you can specify the radius of that sphere with the `radius` property. If you want to use a different shape for your volume, such as a box or capsule, you can specify your volume's `shape` like so:
|
||||||
|
|
||||||
|
```json title="planets/My Cool Planet.json"
|
||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/Outer-Wilds-New-Horizons/new-horizons/main/NewHorizons/Schemas/body_schema.json",
|
||||||
|
"name" : "My Cool Planet",
|
||||||
|
"Volumes": {
|
||||||
|
"forces": {
|
||||||
|
"directionalVolumes": [
|
||||||
|
{
|
||||||
|
"rename": "ArtificialGravitySurface",
|
||||||
|
"force": 8,
|
||||||
|
"playGravityCrystalAudio": true,
|
||||||
|
"shape": {
|
||||||
|
"type": "box",
|
||||||
|
"size": {
|
||||||
|
"x": 15.0,
|
||||||
|
"y": 10.0,
|
||||||
|
"z": 5.0
|
||||||
|
},
|
||||||
|
"offset": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 5.0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": { "x": 0, "y": -110, "z": 0 },
|
||||||
|
"rotation": { "x": 180, "y": 0, "z": 0 }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The supported shape types are: `sphere`, `box`, `capsule`, `cylinder`, `cone`, `hemisphere`, `hemicapsule`, and `ring`. See [the ShapeInfo schema](/schemas/body-schema/defs/shapeinfo/) for the full list of properties available to define each shape.
|
||||||
|
|
||||||
|
Note that `sphere`, `box`, and `capsule` shapes are more reliable and efficient than other shapes, so prefer using them whenever possible.
|
||||||
|
|
||||||
|
### Debugging
|
||||||
|
|
||||||
|
To visualize the shapes of your volumes in-game, use the [Collider Visualizer mod](https://outerwildsmods.com/mods/collidervisualizer/). It will display a wireframe of the shapes around you so you can see precisely where they are and reposition or resize them as needed.
|
||||||
Loading…
x
Reference in New Issue
Block a user