You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/avatar/shaders.mdx
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,3 +39,28 @@ import { Callout } from 'fumadocs-ui/components/callout';
39
39
<Callouttype="info">
40
40
These are known to be working/compatible at the time of the latest documentation update.
41
41
</Callout>
42
+
43
+
44
+
## How to Make Avatars Which Use Poiyomi Shaders Work in BasisVR/URP
45
+
46
+
Many avatars use Poiyomi shaders which originally only worked with Unity's Built-in Render Pipeline (BIRP). However, now, Poiyomi shaders are also supported to work with Unity's Universal Render Pipeline (URP), which is the render pipeline used for BasisVR.
47
+
48
+
Poiyomi shaders support for URP is still in beta. If you have an avatar that was originally designed using BIRP Poiyomi shaders, you can easily convert them to be URP-compatible by following the steps below. To demonstrate how, this example uses uses [Hatsune Miku by Tomarudo](https://boothplorer.com/avatar/3226395).
49
+
50
+
- Download the latest release from https://discord.gg/poiyomi #urp-release.
51
+
52
+
-ImportyourcharacterintotheUnityscene. Ifittheshaderlooksdifferentfromwhat's expected (e.g., its colours are missing or it has a magenta colour due to missing shaders or similar), you will need to make just a few tiny adjustments to fix things.
53
+
54
+

55
+
56
+
- Select each material in your avatar's folder and change its shader to use Poiyomi Pro URP.
57
+
58
+

59
+
60
+
- After making the changes, your avatar should render as expected.
61
+
62
+

63
+
64
+
<Callouttype="info">
65
+
Poiyomi shaders for URP is compatible with both PC and Android devices.
Copy file name to clipboardExpand all lines: content/docs/world/props.mdx
+69-1Lines changed: 69 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,8 +117,76 @@ You can find your key by opening up the Basis application and selecting your pla
117
117
118
118
- Ensure Persistent is selected so that synced changes persist for late-joining players.
119
119
120
+
- Click Save XML.
121
+
120
122

121
123
122
124
- Open up the 'Initialization' scene and press play. This initialises the created scene and network objects. The next time when you load the scene through the server while running the basis application, all players will be able to interact with the network synced cube.
123
125
124
-

126
+

127
+
128
+
## How to Spawn a Prop Using a Scene button
129
+
130
+
The Runtime Loader component will generate any props located in *Basis\Basis Server\BasisServerConsole\bin\Debug\net9.0\initialresources* at runtime. It is also possible to use a button with a scene to generate props. To do so:
131
+
132
+
- Add a canvas object to your scene. Make sure to attach the relevant components similar to what was shown in the previous sections. Remember to add a Basis Prop component to generate a .bee file for your prop and upload it to a remote server.
133
+
134
+

135
+
136
+
- Create a TMP button.
137
+
138
+

139
+
140
+
- Add a Basis Prop component, enter an Asset Bundle Name and press the 'Create Prop Bee File' button. The generated .bee files will be used by the Basis Runtime Loader to load the prop into a scene. For this example, we will use the network synced cube from the previous section again.
141
+
142
+

143
+
144
+
- Create an empty Gameobject and attach a Runtime Loader component to it. This will be used to spawn the prop. To avoid props being generated on scene start up, disable the component in the inspector.
145
+
146
+

147
+
148
+
<Callouttype="info">
149
+
If you want your prop to be network synced, add a networking syncing component to it. For instance, you can use the Basis Object Network Syncing component, as shown previously, to synchronise prop movement.
150
+
151
+
You can also create your own network syncing code. For inspiration and to help you get started, you can refer to example packages *Basis Ported Pooltable* and *Basis Vehicles* which you can find inside the project.
152
+
</Callout>
153
+
154
+
- Select your button and add an onClick() event to it. Assign your Runtime Loader Gameobject, making sure to select BasisRuntimeLoader.LoadNow as the method which your button will call on when clicked.
- If you haven't already, create an empty Gamebject and attach a Basis Scene component to it, filling in the relevant fields. Once set, click 'Create Scene Bee File'.
- Enter your generated scene password and .bee url.
175
+
176
+
- Ensure Persistent is selected so that synced changes persist for late-joining players.
177
+
178
+
- Click Save XML.
179
+
180
+

181
+
182
+
- Open up the 'Initialization' scene and press play. This initialises the created scene and network objects. The next time when you load the scene through the server while running the basis application, you should be able to spawn your prop via a button.
183
+
184
+

185
+
186
+
<Callouttype="info">
187
+
Note: Both local and remote players can spawn cubes!
188
+
</Callout>
189
+
190
+
<Callouttype="info">
191
+
Double note: You can access Basis VR via Steam as well. To get an access key, [join the discord](https://discord.gg/v6ve6WT562)!
0 commit comments