Difference between revisions of "Build Tools Functional Spec"

From Second Life Wiki
Jump to navigation Jump to search
 
(7 intermediate revisions by 5 users not shown)
Line 17: Line 17:


== Performance Requirements ==
== Performance Requirements ==
Will this feature affect:
Will this feature affect:<br>
Client FPS? no
Client FPS? no<br>
Simulator FPS? yes. physical objects slow simulator FPS
Simulator FPS? yes - physical objects slow simulator FPS<br>
Database? no
Database? no<br>
Asset server? yes. taking or deleting objects will create assets
Asset server? yes - taking or deleting objects will create assets<br>
Network load? yes. selecting and updating many objects causes network load
Network load? yes - selecting and updating many objects causes network load<br>
Any other system? no
Any other system? no<br>


== Design Constraints ==
== Design Constraints ==
Line 51: Line 51:
Rules:
Rules:
Object scale rule
Object scale rule
* No single side of the prim can scale larger than 10m or smaller than 0.010m.
* No single side of the prim can scale larger than 10m or smaller than 0.010m. (See [[Megaprims]] and [http://ayumicassini.blogspot.com/2009/07/ultimate-guide-to-prim-twisting.html Prim Torture] for exceptions and work arounds.)


Link distance rule
Link distance rule
* Unknown!
* To link two or more prims together, the must be "close".  However the definition of "close" is very complicated, depending on the size of the objects as well as the distance between their centers.
* Reason for rule - based on the overlap distance (~10m?) of region simulation.
* Reason for rule - to make things simpler for the physics engine and the simulator code.


Attachment offset limit
Attachment offset limit
Line 115: Line 115:
* Select some objects that you have edit permissions for.
* Select some objects that you have edit permissions for.
* Link selected objects together by pressing ctrl-L or Choosing Link from the tools menu. (should this be in a more prominent space?)
* Link selected objects together by pressing ctrl-L or Choosing Link from the tools menu. (should this be in a more prominent space?)
* link order - last selected prim is root
* link order - last selected prim becomes the root
(backwards for drag select - bug?)
(backwards for drag select - bug?)


Line 130: Line 130:
** Child
** Child
- The selected prim is unlinked and remains selected. Link order will be recalculated for the still linked object.
- The selected prim is unlinked and remains selected. Link order will be recalculated for the still linked object.


== Editing ==
== Editing ==
Line 140: Line 137:
=== Editing whole Linked sets ===
=== Editing whole Linked sets ===
* Move
* Move
**Same behaviour as moving a single prim
**Same behaviour as moving a single prim


* Rotate
* Rotate
**Same behaviour as rotating a single prim
**Same behaviour as rotating a single prim
   
   
* Scale
* Scale
**All prims withing the linked set must conform to the Object scale rule.
**All prims within the linked set must conform to the Object scale rule.


=== Editing one or multiple parts of a Linked set ===
=== Editing one or multiple parts of a Linked set ===

Latest revision as of 09:54, 22 August 2009


General Description

What does this feature do?

  • Allows users to create, modify, and destroy content within SL.

Interface Requirements

How does the user use/activate this feature?

  • Pie menu when right-clicking the ground or an object
  • shortcut keys, ctrl-3, ctrl-4
  • Build button


Performance Requirements

Will this feature affect:
Client FPS? no
Simulator FPS? yes - physical objects slow simulator FPS
Database? no
Asset server? yes - taking or deleting objects will create assets
Network load? yes - selecting and updating many objects causes network load
Any other system? no

Design Constraints

Will this feature be unavailable on certain hardware? no

Is this feature consistent with other features? yes, it uses floater windows

Is this feature well integrated? yes. There's room for improvement, such as making a build mode, keeping objects selected when moving around, and increasing view when manipulating large objects, and improving Undo functionality.

Is this feature discoverable? yes. The build button on the toolbar is highly visible.

Is this feature Safe, Predictable, and Responsive? Most build features are predictable. Undo is available for only move, scale and rotate and is unpredictable in some situations.

Feature Dependencies

Features that this feature will affect

  • Content creation

Features that affect this feature

  • Mouse, UI controls, focus, camera controls, selection, linking

Security risks

Does this feature give access to something it should not? NO


Usage Rules

Rules: Object scale rule

  • No single side of the prim can scale larger than 10m or smaller than 0.010m. (See Megaprims and Prim Torture for exceptions and work arounds.)

Link distance rule

  • To link two or more prims together, the must be "close". However the definition of "close" is very complicated, depending on the size of the objects as well as the distance between their centers.
  • Reason for rule - to make things simpler for the physics engine and the simulator code.

Attachment offset limit

  • The root prim of an attachment must stay within 3.5m of its attach point.
  • Reason for rule - it seems a good balance(?)

Linked object prim limit

  • 254?
  • Reason for rule - limitation of the physics engine.

Physical object prim limit

  • 31?
  • Reason for rule - limitation imposed by physics engine performance and need to keep simulator performance reasonable.

Create

  • Enter Create mode by
    • Click the Build button in the toolbar
    • Right click the ground or an object and choose Create from the pie menu
    • Hit ctrl-4
  • Your cursor will change to a wand
  • Choose a shape
  • Click the ground or another object.

Selections

  • Must be in edit mode.
  • Adding to selection - shift select
  • Subtracting from a selection - shift select
  • Drag-select
    • You can start your drag select by clicking and dragging anywhere.
    • You can limit the scope of your selection through options in the Tools menu
      • Select only my object
      • Select only objects I can edit
    • You can change the drag select sensitivity
      • Select whole object (vs. only selecting a vertice)
      • Select whole object requires your drag select to competely enclose the object.
    • You can change the look of the selection
      • Show hidden lines
  • Select textures
    • Select textures allows you to click individual sides of objects and texture them.
    • Shift click sides to add or subtract them from the selection.
    • If you already have an object selected when you change to "select texture", all sides of the object(s) will be automatically selected.
  • Select linked part
    • select linked parts allows you to select individual prims within a linked set
    • Shift click other prims within the linked set to add or subtract them from the selection.
      • You cannot select prims outside of the linked set.
    • If you already have an object selected when you change to "select linked parts", all prims of the linked set will be automatically selected.


Deselecting

  • Hit escape
  • Click another object
  • Walk or fly (unwanted feature)

Linking

  • Select some objects that you have edit permissions for.
  • Link selected objects together by pressing ctrl-L or Choosing Link from the tools menu. (should this be in a more prominent space?)
  • link order - last selected prim becomes the root

(backwards for drag select - bug?)


Unlinking

  • Unlinking whole set
    • Select the object and hit shift-ctrl-L, or choose unlink from the Tools menu.

- All prims will be unlinked

  • Unlinking piece(s) from linked set
    • Root

- This leaves the selected prim selected. The new root of the other object will be prim selected second to last when the object was linked.

    • Child

- The selected prim is unlinked and remains selected. Link order will be recalculated for the still linked object.

Editing

Editing whole Linked sets

  • Move
    • Same behaviour as moving a single prim
  • Rotate
    • Same behaviour as rotating a single prim
  • Scale
    • All prims within the linked set must conform to the Object scale rule.

Editing one or multiple parts of a Linked set

  • Move
    • Obey the Link distance rule
    • Other prims are unaffected
  • Rotate
    • Selected prims rotate around their own center of mass.
    • Obey the Link distance rule
    • Other prims are unaffected
  • Scale
    • Obey the Object scale rule
    • Obey the Link distance rule
    • Other prims are unaffected


Editing whole attachments

  • Move
    • Attachments movement must follow attachment offset limit (The root prim of an attachment must stay within 2m of its attach point.)
    • Moving an object relative to Avatar shows the move arrows relative to the avatar's forward direction.
  • Rotate
    • Attachments rotate around their center of mass.
    • Confined to attachment offset limit. The attachment may move after scaling to comply with the Attachment offset limit.
    • Setting the reference to World, Avatar, or Object affects the rotate rings.
  • Scale
    • Confined to Object scale rule, Link distance rule, and Attachment offset limit. The attachment may move after scaling to comply with the Attachment offset limit.
    • (does Scale relative to avatar do anything special?)


Editing one or multiple parts of an attachment

  • Move
    • The root must follow the Attachment offset limit
    • If the edit breaks the Link distance rule, the edit will be automatically reverted, and the prims will snap back to their previous position. (?)
    • Unmodified prims should not be affected by changes made to the root object.
  • Rotate
    • Unmodified prims should not be affected by changes made to the root object.
  • Scale
    • Unmodified prims should not be affected by changes made to the root object.


Editing seats


Dropping inventory onto objects you have edit permissions for.

  • Textures
    • Textures will be applied to the object face you dropped it on.
    • Textures will be applied to all faces if you hold down Shift while dropping it on the object.
    • The texture will also be added to the contents of the object if the texture has any permissions restrictions (eg. no-modify, no-copy, or no-transfer)
  • Calling Cards
    • Calling Cards cannot be put into the contents of an object. You will see a "not" symbol if you try.
  • Folders
    • Folders can be dragged onto an object. The contents of the folder will be copied to the content of the object. The folder itself will not show up in the contents of the object.
    • no-copy items will be moved to the contents of the object.(right?)
  • Objects
    • Objects will rez near the object you dropped it on.
  • Everything else
    • Animations, Body Parts, Clothing, Gestures, Landmarks, Notecards, Scripts, and Sounds will simply go into the contents of the object.

Control-dropping inventory into objects you have edit permissions for.

  • Textures
    • Textures will be put into the contents of the object and Not applied to the side of the object.
  • Calling Cards
    • Same as drop.
  • Folders
    • Same as drop.
  • Objects
    • Objects will be put into the contents of the object you control-dropped it on.
  • Scripts
    • Scripts will be put into the contents of the object, but will have their running checkbox unchecked. (this is confusing and not predictable)
  • Everything else
    • Animations, Body Parts, Clothing, Gestures, Landmarks, Notecards, and Sounds will simply go into the contents of the object.


Dragging inventory onto objects that allow anything to be dropped in them because of the llAllowInventoryDrop LSL command.

Dragging inventory over objects you don't have edit permissions for will show a "not" symbol. Except object, which will let you rez an object at the surface of the other object

Linked object editing

  • Object scale limit rule

No single side of the prim can scale larger than 10m or smaller than 0.010m.

When uniformly scaling a linked set, all primitives within the linked set must obey the object scale limit rule If you try to scale beyond the rule, the object will simply not scale (Needs feedback?)



Undo works only for

  • text editing within notecards and scripts
  • sliders within editing appearances
  • object move, scale and rotation operations

Undo / Redo

  • Undo history is only kept for move, scale and rotation operations
  • Each object has it's own undo history.
  • The undo history is X(?) steps deep.

Taking and rezzing an object clears the object's undo history

A duplicated object has no undo history, the same as a new object.

Undo is only applied to the object(s) selected when you activate undo.

Linking clears undo history(?)

Unlinking clears undo history (?)

Undo can be accessed with Ctrl-z or via the Edit menu

Redo can be accessed with Ctrl-y or via the Edit menu


UI widgets

  • Move
  • Scale
  • Rotate


Grid snap

Scale both sides

  • The object's center of mass will stay at the same position while the object is scaled.


Scale Textures

  • When this is checked, the texture will keep the same number of repeats per face as the object. If you squish an object, the texture will squish along with it.
  • When this is unchecked, the texture will attempt to keep the same number or repeats per meter.


Reference

  • World
  • Local / Avatar(?)
  • Object(?)


Undo



Build Tools UI

  • Focus (not really a build tool)
  • Drag (not really a build tool)
  • Edit
  • Create
  • Land (see ((FS_Parcels)) )

Edit


Features Tab

  • Flexible Path

The extra parameters are ephemeral in the sense that they are remembered only as long as the object is rezzed in-world and the simulator doesn't restart.


  • Light

The extra parameters are ephemeral in the sense that they are remembered only as long as the object is rezzed in-world and the simulator doesn't restart.