Hi! Here’s a first, “alpha” pass at an alternative entities editor: http://ctrlaltstudio.com/downloads/hifi/scripts/edit.js
It’s aimed at the desktop use case:
- The editor window can be positioned outside the Interface window.
- It has a compact dialog layout so that related entity properties are easily viewed.
There are various features missing and isn’t styled to the nth degree; I have a list of ideas but would like to see what people think the most pressing features, modifications, and bug fixes needed are.
Note: You should run the script from the URL.
Usage instructions …
Open/Close the Editor
Edit > Edit… menu item or Ctrl-E shortcut to open and start editing.
Click the window “x” or press Esc to close and exit editing.
Tabs across the top: “Entities” is the entities list plus editing controls; other tabs are groups of properties for selected entity.
- “Model+” … “Zone+”: Click to select an entity type to add then click in-world to add the entity. Click the button again to cancel adding.
- “Delete”: Deletes the currently selected entity. Alternatively, press the “Del” key (not the backspace key).
- Filter: Searches the entity list.
Search is conducted over the entity type, name, and model filename.
Multiple terms are ANDed together, i.e., if you search for “tree fbx” only entities that have both “tree” and “fbx” somehere within their type, name, and filename strings are displayed.
Search is case-insensitive.
- Distance and “Refresh”: Controls which entities are listed.
- Entities list: Click on a row to select that entity. Alternatively, click the entity in-world.
- “Clear Selection”: Unselects current entity so that you have none selected. Alternatively, click in space in-world.
- “Stretch: Single”: When stretching an object with the GUI controls, stretch only the selected face or corner. Click to toggle to “Stretch: Both”, which makes opposite sides or corners stretch.
- “Axes: World”: Moving or rotating an object with the GUI controls is done relative to the world axes. Click to toggle to “Axes: Local”, and have translations and rotations happen relative to the entity’s local coordinates.
When an entity is selected, axes are drawn through the entity’s registration point. And the following GUI controls are available:
1. Entity selected, Axes: World set: Hover and drag the balls to translate the entity in the direction of the world axes.
2. Entity selected, Axes: Local set: Per 1) except along the entity’s local axes.
3. Entity selected, Ctrl key pressed, Axes: World set: Hover and drag around a circle to rotate the entity around the world axes.
4. Entity selected, Ctrl key pressed, Axes: Local set: Per 3) except around the entity’s local axes.
5. Entity selected, Ctrl + Shift keys pressed: Hover and drag a box to stretch the entity in that direction. The single side/corner is stretched if Stretch: Single is set; the opposite side/corner is also stretched if Stretch: Both is set.
To duplicate an entity: press Shift while translating per 1) or 2).
Adding an Entity
- When one of the “+” buttons in the Entities tab is pressed, a grid is displayed at the level of the surface your avatar is standing on. If your avatar is flying, the grid is displayed at the approximate level of your feet.
- Click on the grid to add an entity at that position. The entity is placed so that it sits on the grid.
Alternatively, click in the air above the grid to add an entity 10m away in that direction.
The Entities Editor does not control your camera. Instead, for camera control, you can use my modified version of inspect.js:
This version of inspect.js leaves your camera where it is after you’ve moved it. So you can position your camera wherever you like to best suit what you’re editing.
Many thanks to @Adrian for pre-alpha testing feedback.
Update 21 May 2016: Documented search filter, added in release 0.1.3-51