modular-avatar/docs~/docs/reference/bone-proxy.md
bd_ ddbc3b164b
chore: restructure repository to put package at top-level (#477)
* chore: rearrange package structure to have the package at the root

* ci: update CI workflows

* ci: fixing workflow bugs

* ci: recurse building .zip package

* ci: more fixes

* ci: add back in the nadena.dev VPM repo

* ci: fix tests
2023-10-08 15:39:57 +09:00

47 lines
2.4 KiB
Markdown

# Bone Proxy
![Bone Proxy](bone-proxy-compare.png)
The Bone Proxy allows you to place objects from your prefab inside of objects that are part of the original avatar.
For example, in the [Clap sample](/docs/samples/#clap), this is used to place contacts inside the avatar's hands.
Bone Proxy will also adjust any animators referencing the old location of the objects so that they reference the
new paths after the objects are moved.
## When should I use it?
Bone Proxy should be used when you have objects that you want to place inside of existing objects inside the avatar.
## When shouldn't I use it?
Bone Proxy isn't intended to be used to configure clothing. Try using [Merge Armature](merge-armature.md) instead.
## Setting up Bone Proxy
Add the Bone Proxy component to an object in your prefab, and drag the destination of this object to the "Target" field.
The Bone Proxy-annotated object will then be placed inside the target object.
### Usage in prefabs
The Bone Proxy component automatically translates the object you specify into a humanoid bone and relative path reference.
This ensures that it can restore this reference automatically after it is saved in a prefab.
If you want to adjust the internal references, you can see them in the Advanced foldout.
### Attachment mode
Bone proxy can be attached in two different ways, depending on use case.
In the "As child at root" attachment mode, the object that the bone proxy is attached to will be reparented to the target object, and
its local position and orientation will be zeroed out. This will place it at the same position and orientation as the target object.
This mode is recommended for prefabs that are not avatar-specific.
In the "As child keep world pose" attachment mode, the object that the bone proxy is attached to will be reparented to the target object,
but its world position and orientation will be preserved. This is usually only useful for avatar-specific prefabs, where you want to
place an object at a precise position relative to the parent bone. For example, it can be used to place colliders for cloth components.
You can also opt to keep only one of the original position or rotation, allowing the other to match the target bone. This can sometimes
be useful for more advanced applications.
When you set the target for a bone proxy component, the attachment mode will be automatically set based on whether the object is
currently at the target bone's position and orientation.