Skip to content

Commit c342209

Browse files
committed
Add Aqua Shader support, add AudioLink Theme Colors.
1 parent 8a0bcba commit c342209

File tree

5 files changed

+163
-47
lines changed

5 files changed

+163
-47
lines changed

README.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
11
# LumaDriver
22

3-
The world-side [Furality Luma Glow Shader](https://furality.org/lumaglow) and [Furality Legendary Shader](https://furality.org/legendaryshader) support you have been waiting for! Built up from scratch, inspired by workings of [AudioLink](https://github.com/llealloo/vrc-udon-audio-link).
3+
An unofficial VRChat world-side plugin designed to drive the various [Furality](https://furality.org/) shaders. Built up from scratch and inspired by workings of [AudioLink](https://github.com/llealloo/vrc-udon-audio-link). Capable of powering the following:
4+
5+
* [Furality Luma Glow Shader](https://furality.org/lumaglow)
6+
* [Furality Legendary Shader](https://furality.org/legendaryshader)
7+
* [Furality Aqua Shader](https://furality.org/aqua-shader-info)
48

59
**NOTE: This project is a derivative work and is not part of Furality Online Xperience or created by Furality, Inc.**
610

711
A live demo is available in the [Luminescent Ledge](https://vrchat.com/home/world/wrld_fb4edc80-6c48-43f2-9bd1-2fa9f1345621) VRChat world!
812

913
## Features
1014
* Four Luma Glow / Hero and Villain zones for the respective shaders.
11-
* Three gradients for Legendary Shader.
12-
* Audio Reactivity for Legendary Shader.
13-
* AudioLink integration, using ColorChord and bands to control the glow.
15+
* Three gradients for Legendary and Aqua Shader.
16+
* Audio Reactivity for Legendary and Aqua Shader.
17+
* AudioLink integration, using Theme Colors and ColorChord for controlling the colors and bands to control the flashing.
1418
* VR Stage Lighting (VRSL) integration, with a dedicated fixture definition.
1519
* Possibility to set custom colors using Udon.
1620
* Debug functionalities.
1721
* Extreme level of customization.
1822

1923
**Requires:** [AudioLink](https://github.com/llealloo/vrc-udon-audio-link) v0.2.6+ for the integration to properly function.
2024

21-
**Optional:** [VR Stage Lighting](https://github.com/AcChosen/VR-Stage-Lighting) v1.10+ for DMX functionality.
25+
**Optional:** [VR Stage Lighting](https://github.com/AcChosen/VR-Stage-Lighting) v1.10+ for DMX functionality. (NOTE: Currently doesn't support horizontal layout.)
2226

2327
## Usage
2428
1. Import the Unity package.
@@ -64,7 +68,7 @@ This page allows for adjusting the behavior of idle animations. These are the sl
6468

6569
![alt text](https://raw.githubusercontent.com/Thorinair/LumaDriver/master/img/LumaDriverUI_2.png "LumaDriver AudioLink")
6670

67-
This page allows for adjusting the way how [AudioLink](https://github.com/llealloo/vrc-udon-audio-link) interfaces with the driver. All Color Control options can use AudioLink's ColorChord feature in order to have interesting and dynamic colors when music is playing. In order to enable AudioLink integration, follow the steps:
71+
This page allows for adjusting the way how [AudioLink](https://github.com/llealloo/vrc-udon-audio-link) interfaces with the driver. All Color Control options can use either AudioLink's Theme Colors or ColorChord feature in order to have interesting and dynamic colors when music is playing. In order to enable AudioLink integration, follow the steps:
6872

6973
1. Import AudioLink package and set it up in the world following official instructions.
7074
2. Check the **Enabled** checkbox on AudioLink page in LumaDriver's configuration.
@@ -73,15 +77,16 @@ Below are explanations for different configuration options:
7377

7478
* **Enabled** - Enables AudioLink integration.
7579
* **Automatic Switchover** - Monitors the audio throughput in AudioLink in order to decide whether idle animations should be playing instead when there is no audio.
76-
* **Maximize Colors** - Increases the intensity of ColorChord generated colors.
80+
* **Maximize Colors** - Maximizes the intensity of Theme Colors and ColorChord generated colors.
81+
* **Use Theme Colors** - Enables the usage of AudioLink Theme Colors for all Color Control options. Themes can be customized programatically on AudioLink or adjusted directly on the AudioLink Controller. By default, Theme Colors act as ColorChord. Disabling this option **forces** ColorChord instead.
7782
* **Reactive Pixel Enabled** - Enables the AudioLink integration with the Legendary Shader Audio Reactivity features.
7883
* **Reactive Pixel Lows Band** - Defines AudioLink band to use for the Lows audio reactivity.
7984
* **Reactive Pixel Highs Band** - Defines AudioLink band to use for the Highs audio reactivity.
80-
* **Zone X Color Control** - Defines source of colors for the zone. Can be either the idle animation or one of the ColorChord colors.
85+
* **Zone X Color Control** - Defines source of colors for the zone. Can be the idle animation, a Theme Color, or one of the ColorChord colors.
8186
* **Zone X Audio Band** - Defines AudioLink band to use for the zone.
82-
* **Enable Gradient X Color Control** - Enables the ColorChord control of the gradient.
83-
* **Gradient X Stop A Color Control** - Defines ColorChord source for the first color stop.
84-
* **Gradient X Stop C Color Control** - Defines ColorChord source for the end color stop.
87+
* **Enable Gradient X Color Control** - Enables the Theme Color or ColorChord control of the gradient.
88+
* **Gradient X Stop A Color Control** - Defines Theme Color or ColorChord source for the first color stop.
89+
* **Gradient X Stop C Color Control** - Defines Theme Color or ColorChord source for the end color stop.
8590
* **Gradient X Audio Band** - Defines AudioLink band to use for the gradient.
8691
* **Reverse Gradient X Audio** - Reverses the animation of the AudioLink flowing animation on the gradient.
8792
* **Gradient X Audio Length** - Shortens or lengthens the AudioLink flowing animation on the gradient.
@@ -155,7 +160,7 @@ Below is a table which lists locations of individual pixels and gradients, along
155160

156161
| Data | Location | Channels | Description |
157162
| ---- | -------- | -------- | ----------- |
158-
| **Luma ON** | `0.629, 0.511` | Red | Controls whether old Luma Glow Shader is running. Always 255 red. |
163+
| **Luma ON** | `0.629, 0.511` | Red | Controls whether old Luma Glow Shader and Aqua Shader are running. Always 255 red. |
159164
| **Zone 1 (Heros 1)** | `0.856, 0.522` | RGB | Applies color for the Luma Glow Zone 1. Also counts as Heros 1. |
160165
| **Zone 2 (Villains 1)** | `0.856, 0.507` | RGB | Applies color for the Luma Glow Zone 2. Also counts as Villains 1. |
161166
| **Zone 3 (Heros 2)** | `0.864, 0.522` | RGB | Applies color for the Luma Glow Zone 3. Also counts as Heros 2. |

img/LumaDriverUI_2.png

3.44 KB
Loading

src/LumaDriver/Materials/LumaDriver_Driver.mat

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Material:
1010
m_Name: LumaDriver_Driver
1111
m_Shader: {fileID: 4800000, guid: 26be09cd3367da94b85b01d138cb2e7a, type: 3}
1212
m_ShaderKeywords: _ALAUTOMATIC_ON _ALCCG1_ON _ALCOLORCHORD_ON _ALMAXIMIZE_ON _ALREACTIVEPIXEL_ON
13-
_COLOROVERRIDE_ON _DMXCCZ1ENABLE_ON _DMXINTG1_ON _DMXINTZ1_ON _DMXINTZ2_ON _DMXINTZ3_ON
14-
_DMXINTZ4_ON _DMXSTROBE_ON _ISENABLED_ON _LUMAPIXEL_ON _REACTIVEIDLE_ON
13+
_ALTHEMES_ON _COLOROVERRIDE_ON _DMXCCZ1ENABLE_ON _DMXINTG1_ON _DMXINTZ1_ON _DMXINTZ2_ON
14+
_DMXINTZ3_ON _DMXINTZ4_ON _DMXSTROBE_ON _ISENABLED_ON _LUMAPIXEL_ON _REACTIVEIDLE_ON
1515
m_LightmapFlags: 4
1616
m_EnableInstancingVariants: 0
1717
m_DoubleSidedGI: 0
@@ -30,6 +30,7 @@ Material:
3030
- _ALMaximize: 1
3131
- _ALOverride: 0
3232
- _ALReactivePixel: 1
33+
- _ALThemes: 1
3334
- _ALccG1: 1
3435
- _ALccG1StopA: 0.1992
3536
- _ALccG1StopB: 0.5
@@ -46,6 +47,16 @@ Material:
4647
- _ALccZ2: 0.207
4748
- _ALccZ3: 0.2148
4849
- _ALccZ4: 0.2227
50+
- _ALttG1StopA: 0.0039
51+
- _ALttG1StopC: 0.0117
52+
- _ALttG2StopA: 0.0195
53+
- _ALttG2StopC: 0.0273
54+
- _ALttG3StopA: 0.0039
55+
- _ALttG3StopC: 0.0039
56+
- _ALttZ1: 0.0039
57+
- _ALttZ2: 0.0117
58+
- _ALttZ3: 0.0195
59+
- _ALttZ4: 0.0273
4960
- _BandG1: 0.0078
5061
- _BandG1Length: 0.2
5162
- _BandG1Reverse: 0

src/LumaDriver/Scripts/Editor/LumaDriver_GUI.cs

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,37 +68,69 @@ void ShowPage_AudioLink() {
6868
ShowProperty("_ALOverride");
6969
ShowProperty("_ALAutomatic");
7070
ShowProperty("_ALMaximize");
71+
MaterialProperty _ALThemes = FindProperty("_ALThemes", properties);
72+
editor.ShaderProperty(_ALThemes, _ALThemes.displayName);
7173

7274
ShowProperty("_ALReactivePixel");
7375
ShowProperty("_ReactiveBandLows");
7476
ShowProperty("_ReactiveBandHighs");
7577

76-
ShowProperty("_ALccZ1");
78+
if (_ALThemes.floatValue == 0)
79+
ShowProperty("_ALccZ1");
80+
else
81+
ShowProperty("_ALttZ1");
7782
ShowProperty("_BandZ1");
78-
ShowProperty("_ALccZ2");
83+
if (_ALThemes.floatValue == 0)
84+
ShowProperty("_ALccZ2");
85+
else
86+
ShowProperty("_ALttZ2");
7987
ShowProperty("_BandZ2");
80-
ShowProperty("_ALccZ3");
88+
if (_ALThemes.floatValue == 0)
89+
ShowProperty("_ALccZ3");
90+
else
91+
ShowProperty("_ALttZ3");
8192
ShowProperty("_BandZ3");
82-
ShowProperty("_ALccZ4");
93+
if (_ALThemes.floatValue == 0)
94+
ShowProperty("_ALccZ4");
95+
else
96+
ShowProperty("_ALttZ4");
8397
ShowProperty("_BandZ4");
8498

8599
ShowProperty("_ALccG1");
86-
ShowProperty("_ALccG1StopA");
87-
ShowProperty("_ALccG1StopC");
100+
if (_ALThemes.floatValue == 0) {
101+
ShowProperty("_ALccG1StopA");
102+
ShowProperty("_ALccG1StopC");
103+
}
104+
else {
105+
ShowProperty("_ALttG1StopA");
106+
ShowProperty("_ALttG1StopC");
107+
}
88108
ShowProperty("_BandG1");
89109
ShowProperty("_BandG1Reverse");
90110
ShowProperty("_BandG1Length");
91111

92112
ShowProperty("_ALccG2");
93-
ShowProperty("_ALccG2StopA");
94-
ShowProperty("_ALccG2StopC");
113+
if (_ALThemes.floatValue == 0) {
114+
ShowProperty("_ALccG2StopA");
115+
ShowProperty("_ALccG2StopC");
116+
}
117+
else {
118+
ShowProperty("_ALttG2StopA");
119+
ShowProperty("_ALttG2StopC");
120+
}
95121
ShowProperty("_BandG2");
96122
ShowProperty("_BandG2Reverse");
97123
ShowProperty("_BandG2Length");
98124

99125
ShowProperty("_ALccG3");
100-
ShowProperty("_ALccG3StopA");
101-
ShowProperty("_ALccG3StopC");
126+
if (_ALThemes.floatValue == 0) {
127+
ShowProperty("_ALccG3StopA");
128+
ShowProperty("_ALccG3StopC");
129+
}
130+
else {
131+
ShowProperty("_ALttG3StopA");
132+
ShowProperty("_ALttG3StopC");
133+
}
102134
ShowProperty("_BandG3");
103135
ShowProperty("_BandG3Reverse");
104136
ShowProperty("_BandG3Length");

0 commit comments

Comments
 (0)