Adding Flight to an Avatar: Difference between revisions
mNo edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
{{Warning|This entire feature relies on a physics bug, which may be fixed in the future.}} | {{Warning|This entire feature relies on a physics bug, which may be fixed in the future.}} | ||
{{Note|This guide was written in Unity 2018.4.20f1 on Windows 10. YMMV.}} | {{Note|This guide was written in Unity 2018.4.20f1 on Windows 10. YMMV.}} | ||
__TOC__ | |||
== | == VRC SDK 3 Methods == | ||
== | === Inclined Plane Method === | ||
Same method, but with a few tweaks. Tested by [[User:N3X15|N3X15]] ([[User talk:N3X15|talk]]) 18:57, 16 November 2020 (CST) | |||
[[ | |||
# Right-click on your avatar's root node in the scene hierarchy. | # Right-click on your avatar's root node in the scene hierarchy. | ||
Line 55: | Line 29: | ||
# Choose '''Remove Component'''. | # Choose '''Remove Component'''. | ||
# Make sure ''Box Collider'' is still checked (enabled). | # Make sure ''Box Collider'' is still checked (enabled). | ||
[[File:Unity 2020-11-03 04-07-07.png | [[File:Unity 2020-11-03 04-07-07.png|How everything should look.|alt=|center|frame]] | ||
Now you just need to make a toggle for ''Fly''. | Now you just need to make a toggle for ''Fly''. | ||
=== Toggles === | ==== Toggles ==== | ||
# Create an animation to enable the ''Fly'' object, called ''Fly On''. | # Create an animation to enable the ''Fly'' object, called ''Fly On''. | ||
## Duplicate the avatar in your scene. Name doesn't matter, you can leave it as default. | ## Duplicate the avatar in your scene. Name doesn't matter, you can leave it as default. | ||
## Open your Animation tab. ('''Window > Animation > Animation''') | ## Open your Animation tab. ('''Window > Animation > Animation''') | ||
## '''Make absolutely certain you have selected the DUPLICATE avatar in your scene.''' | ##'''Make absolutely certain you have selected the DUPLICATE avatar in your scene.''' | ||
## In your animation tab, click the Create button. | ## In your animation tab, click the Create button. | ||
## Save the animation somewhere convenient, and name it ''Fly On.anim''. | ## Save the animation somewhere convenient, and name it ''Fly On.anim''. | ||
Line 99: | Line 73: | ||
# Add a new toggle control to your menu. | # Add a new toggle control to your menu. | ||
## Click on the new menu in your assets. | ## Click on the new menu in your assets. | ||
## Ensure the Active Avatar is | ## Ensure the Active Avatar is | ||
## Click '''Add Control'''. | ## Click '''Add Control'''. | ||
## Set the '''Name''' to ''Flying''. | ## Set the '''Name''' to ''Flying''. | ||
Line 149: | Line 123: | ||
## Select Not Equals from the second. | ## Select Not Equals from the second. | ||
## Enter <code>1</code> in the textbox. | ## Enter <code>1</code> in the textbox. | ||
==== Usage ==== | |||
# Enable the Fly object. | |||
# Move forward and jump, or fall off of something. | |||
# Move forward to go up. | |||
# Move backwards to go down. | |||
# Strafe to stay at the same level. | |||
# Jump go up. | |||
= VRC SDK 2 Methods = | |||
=== Inclined Plane Method === | |||
==== Prerequisites ==== | |||
* VRCSDK2 | |||
* A working avatar | |||
* Some experience with Unity | |||
==== Process ==== | |||
# With your Unity project open, right-click on your avatar's root node in the scene hierarchy. | |||
# Select '''Create Empty''' from the context menu. | |||
# Rename the new empty GameObject to ''Fly'' or something similar. | |||
# Right-click ''Fly'' in the hierarchy. | |||
# Select '''3D Object > Cube'''. | |||
# Select your new ''Cube'' in the hierarchy. | |||
# In the Inspector, set the '''scale''' of Cube to: | |||
#* X: 2 | |||
#* Y: 0.4 | |||
#* Z: 5 | |||
# Set the '''rotation''' of the '''X axis''' to '''-30'''. | |||
# '''Disable''' the '''Mesh Renderer'''. | |||
# Make sure Box Collider is enabled. Leave it at default settings. | |||
Your cube should now look like this: | |||
[[Image:VRChat-Fly-Cube.png|center|Ready for take-off.]] | |||
However, you will want to toggle this ability with a gesture or emote, otherwise you will always be in "flight mode". You will want to toggle the ''Fly'' node we made earlier. | |||
== References == | == References == | ||
<references /> | <references /> |
Latest revision as of 00:57, 17 November 2020
Here's how to add the ability to fly to your avatar.[1]
Warning: This entire feature relies on a physics bug, which may be fixed in the future.
Note: This guide was written in Unity 2018.4.20f1 on Windows 10. YMMV.
VRC SDK 3 Methods
Inclined Plane Method
Same method, but with a few tweaks. Tested by N3X15 (talk) 18:57, 16 November 2020 (CST)
- Right-click on your avatar's root node in the scene hierarchy.
- Select Create Empty from the context menu.
- Rename the new GameObject to Fly or something memorable.
- Right-click Fly in the scene hierarchy.
- Choose 3D Object > Cube.You should now see a Cube under the Fly object.
- Select Cube.
- In the Inspector tab, set the following:
- Rotation:
- X: -15
- Y: 0
- Z: 0
- Scale:
- X: 2
- Y: 0.4,
- Z: 5
- Rotation:
- Select the icon on the far right of the Mesh Renderer component.
- Choose Remove Component.
- Make sure Box Collider is still checked (enabled).
Now you just need to make a toggle for Fly.
Toggles
- Create an animation to enable the Fly object, called Fly On.
- Duplicate the avatar in your scene. Name doesn't matter, you can leave it as default.
- Open your Animation tab. (Window > Animation > Animation)
- Make absolutely certain you have selected the DUPLICATE avatar in your scene.
- In your animation tab, click the Create button.
- Save the animation somewhere convenient, and name it Fly On.anim.
- Click Add Property.
- Click the + icon next to Fly > Is Active.
- Click the keyframe diamond at the end of the timeline.
- Press delete.
- Click the keyframe diamond at the beginning of the keyframe.
- Check the checkbox next to Fly: Game Object.Is Active to make it active for that keyframe.
- Click on the frame line immediately after the 0:00 mark.
- Add a new keyframe using the Add Keyframe button.
- Make sure that Fly: Game Object.Is Active is still checked.
- Add an animation to disable the Fly object, called Fly Off.
- Perform the same steps as above, but name it Fly Off, and uncheck the Fly: Game Object.Is Active checkbox.
- Delete the duplicate avatar.
- Make an expression menu object for your avatar.
- Right-click your avatar's assets directory in the Project View.
- Create > Folder named Menus.
- Right-click the new folder.
- Create > VRChat > Avatars > Expressions Menu.
- Name it Avatar Root Menu.
- Select the avatar's root node in your Scene Hierarchy.
- Under your VRC Avatar Descriptor, expand the Expressions section.
- Drag Avatar Root Menu into the Menu slot.
- Make a parameters object for your avatar.
- Right-click your avatar's assets directory in the Project View.
- Create > Folder named Parameters.
- Right-click the new folder.
- Create > VRChat > Avatars > Expression Parameters.
- Name it Avatar Params
- Select the avatar's root node in your Scene Hierarchy.
- Under your VRC Avatar Descriptor, expand the Expressions section.
- Drag Avatar Params into the Parameters slot.
- In an empty slot, add an Int called Flying.
- Add a new toggle control to your menu.
- Click on the new menu in your assets.
- Ensure the Active Avatar is
- Click Add Control.
- Set the Name to Flying.
- Leave Icon as None.
- Set Type to Toggle.
- For Parameter, select Flying, Int from the dropdown.
- Set Value to
1
.
- Make an FX Animator.
- Right-click your avatar's assets directory in the Project View.
- Create > Folder named Animators.
- Right-click the new folder.
- Create > Animator Controller.
- Name it Avatar FX.
- Select the avatar's root node in your Scene Hierarchy.
- Under your VRC Avatar Descriptor, expand the Playable Layers section.
- Click the Default FX button to override it.
- Drag the new Avatar FX animator into the FX slot.
- Open your FX animator by double-clicking on it.
- At the very top, select the Parameters tab.
- Click the button.
- Select Int.
- Type in
Flying
(case-sensitive). - Leave the default value as 0.
- Go back to the Layers tab.
- Create a new layer using the + button.
- Double-click on the layer's name.
- Name it
Flying
. - Click the white on the far right of the new layer's name.
- Set Weight to 1.
- Leave Mask set to None.
- Ensure Blending is Override.
- Select the layer by clicking on it.
- Drag Fly Off into the graph. It's highlighted in orange, so this is our landing state, where the animation controller will sit by default.
- Drag Fly On into the graph.
- Right-click the Fly Off node in the graph.
- Select Make Transition.
- Click Fly On to finish making the transition from Fly Off to Fly On.
- Click the new Fly Off -> Fly On transition.
- Uncheck Has Exit Time.
- You will get a warning, ignore it. We're fixing it in the next step.
- Click the + button under Conditions.
- Select Flying from the first dropdown.
- Select Equals from the second dropdown.
- Enter
1
in the textbox.
- Uncheck Has Exit Time.
- Create another transition between Fly On and Exit.
- Uncheck Has Exit Time.
- Add a condition.
- Select Flying from the first dropdown.
- Select Not Equals from the second.
- Enter
1
in the textbox.
Usage
- Enable the Fly object.
- Move forward and jump, or fall off of something.
- Move forward to go up.
- Move backwards to go down.
- Strafe to stay at the same level.
- Jump go up.
VRC SDK 2 Methods
Inclined Plane Method
Prerequisites
- VRCSDK2
- A working avatar
- Some experience with Unity
Process
- With your Unity project open, right-click on your avatar's root node in the scene hierarchy.
- Select Create Empty from the context menu.
- Rename the new empty GameObject to Fly or something similar.
- Right-click Fly in the hierarchy.
- Select 3D Object > Cube.
- Select your new Cube in the hierarchy.
- In the Inspector, set the scale of Cube to:
- X: 2
- Y: 0.4
- Z: 5
- Set the rotation of the X axis to -30.
- Disable the Mesh Renderer.
- Make sure Box Collider is enabled. Leave it at default settings.
Your cube should now look like this:
However, you will want to toggle this ability with a gesture or emote, otherwise you will always be in "flight mode". You will want to toggle the Fly node we made earlier.
References
- ↑ Rampag3, How to Make a Flying Avatar https://www.youtube.com/watch?v=w28WejN9MMQ