cancel
Showing results for 
Search instead for 
Did you mean: 

Getting Started: Desktop Editor

SeeingBlue
Mentor

Just downloaded the Horizon Worlds Desktop Editor? Feeling a little lost? Don't worry! This post covers the essential first steps for brand-new creators and those transitioning from the VR Editor. Let's get you comfortable and ready to build!

This post is related to Office Hours - Best Practices: Getting Started on Thursday, 3/13, at 5:00 PM PT. Register here and join me for a more in-depth discussion!

1. Setting Up Your Development Environment

Before diving into world creation, setting up your development environment correctly is crucial for a smooth workflow.

  • Desktop Editor Setup: If you have not installed the Desktop Editor, start by following this article.
    • NOTE: If you have not installed VSCode, follow the next step before opening the editor.
  • VSCode Integration: For writing scripts that add interactivity to your worlds, integrating with Visual Studio Code (VSCode) is highly recommended. VSCode is a powerful code editor that provides features like code completion (autocomplete) and syntax highlighting, making coding much easier.
    • How to Integrate: Follow this detailed guide in the Learn section of the Meta Horizon page. 
      • NOTE: If the desktop editor is not running when you install VSCode, it may automatically detect VSCode the next time you run it. If not, then follow the linked guide above.
  • World and Player Settings: Take some time to explore the World and Player Settings. This area is accessible through the main menu via Publish World and Player Settings. You should start by changing your world name.
    • NOTE: When changing the world name, you’re also changing the working directory for your scripts. You may need to leave the world and return before you can create or edit your scripts.

2. Navigating the Viewport

The Viewport is your main window into the 3D world you're creating. Mastering navigation is fundamental to working effectively in the editor. For a visual introduction to navigating this space, check out Andy Sargeant’s article. Here's a breakdown of the key controls:

  • Basic Movement (Build Mode):

    • Move Forward: Arrow Up, or Right Click + W
    • Move Backward: Arrow Down, or Right Click + S
    • Move Left: Arrow Left, or Right Click + A
    • Move Right: Arrow Right, or Right Click + D
    • Move Up: Right Click + E
    • Move Down: Right Click + Q
    • Speed Control:
      • Set Speed: Right Click + Mouse Wheel (scroll to adjust)
      • Increase Speed (Temporary): Hold Left Shift while moving.

 

  • Camera Control (Build Mode):

    • Orbit (Rotate Around a Point): Left Mouse Click & Drag + Alt
    • Pan (Move Sideways): Middle Mouse Click & Drag
    • Rotate Camera (Look Around): Right Click & Drag
    • Zoom: Mouse Wheel Scroll
    • Focus: Select an object and press 'F' (this centers the view on the selected object – incredibly useful!).

 

  • Practice is Key! Spend time simply moving around the viewport using these controls until it becomes second nature. This will dramatically speed up your workflow.

3. Understanding Gizmos

Gizmos are pre-built, interactive objects that add functionality to your world without coding required (though you can extend their behavior with scripts). They are essential building blocks for creating engaging experiences. Let's focus on some key Gizmos:

  • Environment Gizmo: This controls the overall look and feel of your world's environment.
    • Purpose: Sets the skybox, fog, and other visual settings.
    • Use Case: Create a sunny day, a spooky night, or a futuristic cityscape by adjusting its properties.

  • ParticleFx Gizmo: Adds visual effects like sparks, smoke, fire, or magical auras.
    • Purpose: Creates dynamic visual effects.
    • Use Case: Add smoke to a chimney, sparkles to a magic wand, or fire to a campfire. Particle effects can greatly enhance the atmosphere.

  • Sound Gizmo: Plays audio within your world.
    • Purpose: Adds sound effects and background music.
    • Use Case: Play a "whoosh" sound when a door opens, ambient forest sounds in an outdoor scene, or background music in a social space.

  • Static Light Gizmo: Adds a fixed light source to your scene.
    • Purpose: Illuminates objects and creates shadows.
    • Use Case: Create realistic lighting for a room, highlight a specific object, or simulate the glow of a lamp. Different types of static lights (point, spot, directional) offer different lighting effects.

  • Spawn Point Gizmo: Determines where players enter your world.
    • Purpose: Sets the player's starting or respawn location.
    • Use Case: You must have at least one Spawn Point in your world. You can have multiple Spawn Points.

  • Empty Object Gizmo: A versatile, invisible object used for organization and scripting.
    • Purpose: Acts as a container or parent for other objects, or as a target for scripts.
    • Use Case: Group objects together logically, create a pivot point for rotation, or serve as a reference point for scripting (e.g., "move this object to the location of the Empty Object").

  • Trigger Zone Gizmo: Detects when a player (or other object) enters or exits a defined area.
    • Purpose: Triggers events based on object presence within a specific volume.
    • Use Case: Open a door when a player approaches, play a sound when someone enters a room, or activate a trap when triggered.

Finding Gizmos: You'll find Gizmos in the Build Menu under the Gizmos category. Drag and drop them into your scene. Each Gizmo has customizable properties in the Properties panel on the right side of the editor when the Gizmo is selected.

 

Continued below in the next post...

 

Upcoming Events:

AMA: Asset Spawning and World Streaming Tuesday 3/25 at 12:00 PM PT - Register
March calendar of all Mentor Workshops and Office Hours
1 REPLY 1

SeeingBlue
Mentor

4. Manipulation Tools: Move, Rotate, Scale

The manipulation tools are your primary means of positioning and adjusting objects (including Gizmos) within your world. Mastering these tools is essential.

  • Selection: Click on an object in the Viewport to select it. A selected object will usually have a highlight or outline.

  • Tool Switching:
    • Move Tool (W): Allows you to move objects along the X, Y, and Z axes. You'll see red, green, and blue arrows representing these axes. Click and drag an arrow to move the object along that axis.
    • Rotate Tool (E): Allows you to rotate objects around the X, Y, and Z axes. You'll see colored rings representing these axes. Click and drag a ring to rotate the object around that axis.
    • Scale Tool (R): Allows you to change the size of objects along the X, Y, and Z axes. You'll see colored boxes representing these axes. Click and drag a box to scale the object along that axis. You can also scale uniformly (all axes at once) by clicking and dragging the center.

  • Axis Manipulation: Pay close attention to the colored axes of the manipulator. These indicate the direction of movement, rotation, or scaling.

  • Local vs. Global Space: There's a toggle in the toolbar to switch between Local and Global space.
    • Local Space (default): The axes are aligned with the object's orientation. If you rotate an object, its local axes will rotate with it. This is crucial for precise adjustments.
    • Global Space: The axes are aligned with the overall world coordinate system (fixed).

  • Precision: For precise movements, use the numeric input fields in the Property panel or enable and set grid snapping, angle snapping, and scale snapping if necessary.

  • Snap to Surface: Enabling this will allow you to grab the center of an object and snap it to the surface of another object.

 

5. Hierarchy and Parenting

As your worlds become more complex, maintaining a clear and logical organization is essential for efficient building and scripting. Horizon Worlds uses a hierarchical system, meaning objects can be "parented" to each other, creating relationships that affect how they behave.

  • Parenting: This is the core concept. You create a parent-child relationship between objects.
    • How to Parent: Drag one object onto another object. The object you dragged onto becomes the parent; the object you dragged becomes the child. You'll see the child object indented or nested under the parent in the Hierarchy panel, indicating the relationship.
    • Inheritance: The child object inherits the transformations (position, rotation, scale) of its parent. If you move, rotate, or scale the parent, the child will move, rotate, or scale along with it, maintaining its relative position, rotation, and scale to the parent.
    • Interactivity: Child objects will remain interactive (i.e., grabbable) as long as the parent object remains Static with Motion set to None.
    • Pivoting: The center of the parent object becomes the pivot point of the group.

  • Empty Objects: The best practice is to use Empty Object Gizmos as "folders" or containers to organize your scene. They are also useful for reference objects and script holders.
    • How to Use:
      1. Add an Empty Object Gizmo to your scene (from the Build Menu).
      2. Rename it to something descriptive (e.g., "House," "FurnitureSet," "EnemyGroup").
      3. Parent other objects to this Empty Object Gizmo by dragging them onto it in the Hierarchy panel.
      4. Alternatively, select multiple objects in the viewport and use CTRL + G or Right-Click and select Create Parent Object. This will create a new object called Empty Object. All selected objects will become children of the empty object.

  • Benefits of a Good Hierarchy:
    • Organization: Keeps your scene manageable, even with hundreds of objects.
    • Simplified Selection: Selecting the parent allows you to easily select all its children.
    • Logical Transformations: Move, rotate, or scale the parent, and all its children will be affected accordingly. This is crucial for complex structures.

  • Naming Conventions (Crucially Important!): Give every object and Empty Object Gizmo a clear, descriptive name. Avoid generic names like "Cube," "Cube.001," etc. Use names like "WallSectionLeft," "DoorFrame," "EnemyPatrolPoint." This is absolutely essential for finding and managing objects as your worlds grow, especially when it comes to attaching objects to your scripts.
    • Example: Imagine building a house. You could create an Empty Object Gizmo named "House." Then, you would parent all the individual parts of the house (walls, roof, door, windows) to the "House" Empty Object. Now, you can move the entire house simply by moving the "House" object. You could even create nested Empty Objects, like "House" -> "FirstFloor" -> "LivingRoom" -> "Furniture" to further organize the scene.

By consistently using parenting and Empty Object Gizmos to structure your worlds, you'll create a much more manageable and efficient workflow.

6. Beginner Tips

  • Use Undo (Ctrl + Z): Don't be afraid to experiment. Undo is your safety net.
  • Read the Documentation: The Meta Horizon Learn Center is your best friend. Refer to it frequently.
  • Start Small: Don't try to build a massive, complex world right away. Begin with small, manageable projects to learn the tools and workflows.
  • Test Frequently: Use Preview Mode (Play button) to test your world regularly as you build.
  • Keyboard Shortcuts: Learn the keyboard shortcuts! They will significantly speed up your workflow.
  • Practice Good Organization: Use Empty Objects to organize different parts of your world (e.g., terrain, buildings, props).
  • Backups: Use the built-in backup feature of your world to create a save point that you can roll back to if needed.
  • Community: Participate in the Horizon Worlds creator forums and Discord servers. Ask questions, share your work, and learn from others.

This is just the beginning of your Horizon Worlds journey! Explore, experiment, and ask questions. 

This post is related to Office Hours - Best Practices: Getting Started on Thursday, 3/13, at 5:00 PM PT. Register here and join me for a more in-depth discussion!

Upcoming Events:

AMA: Asset Spawning and World Streaming Tuesday 3/25 at 12:00 PM PT - Register
March calendar of all Mentor Workshops and Office Hours