Skip to content

Commit 5048dc2

Browse files
committed
feat: add jesus mode
1 parent 75ab4ec commit 5048dc2

5 files changed

Lines changed: 230 additions & 7 deletions

File tree

Assets/Scenes/Main.unity

Lines changed: 209 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,81 @@ Transform:
785785
m_Children: []
786786
m_Father: {fileID: 0}
787787
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
788+
--- !u!1 &238760728
789+
GameObject:
790+
m_ObjectHideFlags: 0
791+
m_CorrespondingSourceObject: {fileID: 0}
792+
m_PrefabInstance: {fileID: 0}
793+
m_PrefabAsset: {fileID: 0}
794+
serializedVersion: 6
795+
m_Component:
796+
- component: {fileID: 238760729}
797+
- component: {fileID: 238760730}
798+
m_Layer: 0
799+
m_Name: JesusCamera
800+
m_TagString: Untagged
801+
m_Icon: {fileID: 0}
802+
m_NavMeshLayer: 0
803+
m_StaticEditorFlags: 0
804+
m_IsActive: 1
805+
--- !u!4 &238760729
806+
Transform:
807+
m_ObjectHideFlags: 0
808+
m_CorrespondingSourceObject: {fileID: 0}
809+
m_PrefabInstance: {fileID: 0}
810+
m_PrefabAsset: {fileID: 0}
811+
m_GameObject: {fileID: 238760728}
812+
serializedVersion: 2
813+
m_LocalRotation: {x: 0, y: -0.9974045, z: 0.07200225, w: 0}
814+
m_LocalPosition: {x: 0, y: 1.32, z: 7}
815+
m_LocalScale: {x: 1, y: 1, z: 1}
816+
m_ConstrainProportionsScale: 0
817+
m_Children: []
818+
m_Father: {fileID: 1946048952}
819+
m_LocalEulerAnglesHint: {x: 8.258, y: -180, z: 0}
820+
--- !u!114 &238760730
821+
MonoBehaviour:
822+
m_ObjectHideFlags: 0
823+
m_CorrespondingSourceObject: {fileID: 0}
824+
m_PrefabInstance: {fileID: 0}
825+
m_PrefabAsset: {fileID: 0}
826+
m_GameObject: {fileID: 238760728}
827+
m_Enabled: 1
828+
m_EditorHideFlags: 0
829+
m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
830+
m_Name:
831+
m_EditorClassIdentifier:
832+
Priority:
833+
Enabled: 0
834+
m_Value: 0
835+
OutputChannel: 1
836+
StandbyUpdate: 0
837+
m_StreamingVersion: 20241001
838+
m_LegacyPriority: 0
839+
Target:
840+
TrackingTarget: {fileID: 0}
841+
LookAtTarget: {fileID: 0}
842+
CustomLookAtTarget: 0
843+
Lens:
844+
FieldOfView: 20
845+
OrthographicSize: 10
846+
NearClipPlane: 0.1
847+
FarClipPlane: 5000
848+
Dutch: 0
849+
ModeOverride: 0
850+
PhysicalProperties:
851+
GateFit: 2
852+
SensorSize: {x: 21.946, y: 16.002}
853+
LensShift: {x: 0, y: 0}
854+
FocusDistance: 10
855+
Iso: 200
856+
ShutterSpeed: 0.005
857+
Aperture: 16
858+
BladeCount: 5
859+
Curvature: {x: 2, y: 11}
860+
BarrelClipping: 0.25
861+
Anamorphism: 0
862+
BlendHint: 0
788863
--- !u!1 &410087039
789864
GameObject:
790865
m_ObjectHideFlags: 0
@@ -1473,7 +1548,7 @@ MonoBehaviour:
14731548
facialFeaturesMat: {fileID: 2100000, guid: 640484c930a9c425791b434dd2094bff, type: 2}
14741549
configuratorController: {fileID: 3845507387249961957}
14751550
previewController: {fileID: 1667190199235124708}
1476-
debugUrl: ?mode=configurator&username=miha
1551+
debugUrl: ?mode=jesus&profile=0x04E77bA608Cc78aD8aEFfBc60a2Ea47ABdaEA7BA
14771552
--- !u!4 &983774208
14781553
Transform:
14791554
m_ObjectHideFlags: 0
@@ -1489,6 +1564,130 @@ Transform:
14891564
m_Children: []
14901565
m_Father: {fileID: 0}
14911566
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1567+
--- !u!1 &1243316494
1568+
GameObject:
1569+
m_ObjectHideFlags: 0
1570+
m_CorrespondingSourceObject: {fileID: 0}
1571+
m_PrefabInstance: {fileID: 0}
1572+
m_PrefabAsset: {fileID: 0}
1573+
serializedVersion: 6
1574+
m_Component:
1575+
- component: {fileID: 1243316495}
1576+
- component: {fileID: 1243316497}
1577+
- component: {fileID: 1243316496}
1578+
m_Layer: 0
1579+
m_Name: JesusVFX
1580+
m_TagString: Untagged
1581+
m_Icon: {fileID: 0}
1582+
m_NavMeshLayer: 0
1583+
m_StaticEditorFlags: 0
1584+
m_IsActive: 0
1585+
--- !u!4 &1243316495
1586+
Transform:
1587+
m_ObjectHideFlags: 0
1588+
m_CorrespondingSourceObject: {fileID: 0}
1589+
m_PrefabInstance: {fileID: 0}
1590+
m_PrefabAsset: {fileID: 0}
1591+
m_GameObject: {fileID: 1243316494}
1592+
serializedVersion: 2
1593+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
1594+
m_LocalPosition: {x: 0, y: 0, z: -0.02}
1595+
m_LocalScale: {x: 1, y: 1, z: 1}
1596+
m_ConstrainProportionsScale: 1
1597+
m_Children: []
1598+
m_Father: {fileID: 7613730345039360970}
1599+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1600+
--- !u!73398921 &1243316496
1601+
VFXRenderer:
1602+
serializedVersion: 1
1603+
m_ObjectHideFlags: 2
1604+
m_CorrespondingSourceObject: {fileID: 0}
1605+
m_PrefabInstance: {fileID: 0}
1606+
m_PrefabAsset: {fileID: 0}
1607+
m_GameObject: {fileID: 1243316494}
1608+
m_Enabled: 1
1609+
m_CastShadows: 0
1610+
m_ReceiveShadows: 0
1611+
m_DynamicOccludee: 1
1612+
m_StaticShadowCaster: 0
1613+
m_MotionVectors: 0
1614+
m_LightProbeUsage: 0
1615+
m_ReflectionProbeUsage: 0
1616+
m_RayTracingMode: 0
1617+
m_RayTraceProcedural: 0
1618+
m_RayTracingAccelStructBuildFlagsOverride: 0
1619+
m_RayTracingAccelStructBuildFlags: 1
1620+
m_SmallMeshCulling: 1
1621+
m_ForceMeshLod: -1
1622+
m_MeshLodSelectionBias: 0
1623+
m_RenderingLayerMask: 1
1624+
m_RendererPriority: 0
1625+
m_StaticBatchInfo:
1626+
firstSubMesh: 0
1627+
subMeshCount: 0
1628+
m_StaticBatchRoot: {fileID: 0}
1629+
m_ProbeAnchor: {fileID: 0}
1630+
m_LightProbeVolumeOverride: {fileID: 0}
1631+
m_ScaleInLightmap: 1
1632+
m_ReceiveGI: 1
1633+
m_PreserveUVs: 0
1634+
m_IgnoreNormalsForChartDetection: 0
1635+
m_ImportantGI: 0
1636+
m_StitchLightmapSeams: 1
1637+
m_SelectedEditorRenderState: 3
1638+
m_MinimumChartSize: 4
1639+
m_AutoUVMaxDistance: 0.5
1640+
m_AutoUVMaxAngle: 89
1641+
m_LightmapParameters: {fileID: 0}
1642+
m_GlobalIlluminationMeshLod: 0
1643+
m_SortingLayerID: 0
1644+
m_SortingLayer: 0
1645+
m_SortingOrder: 0
1646+
m_MaskInteraction: 0
1647+
--- !u!2083052967 &1243316497
1648+
VisualEffect:
1649+
m_ObjectHideFlags: 0
1650+
m_CorrespondingSourceObject: {fileID: 0}
1651+
m_PrefabInstance: {fileID: 0}
1652+
m_PrefabAsset: {fileID: 0}
1653+
m_GameObject: {fileID: 1243316494}
1654+
m_Enabled: 1
1655+
m_Asset: {fileID: 8926484042661614526, guid: 369c77ad093b4f3499e2d9e57cca2bad, type: 3}
1656+
m_InitialEventName:
1657+
m_InitialEventNameOverriden: 1
1658+
m_StartSeed: 0
1659+
m_ResetSeedOnPlay: 1
1660+
m_AllowInstancing: 1
1661+
m_ResourceVersion: 1
1662+
m_PropertySheet:
1663+
m_Float:
1664+
m_Array: []
1665+
m_Vector2f:
1666+
m_Array: []
1667+
m_Vector3f:
1668+
m_Array: []
1669+
m_Vector4f:
1670+
m_Array:
1671+
- m_Value: {x: 1.3567125, y: 42.544434, z: 95.87453, w: 0}
1672+
m_Name: Particles Color
1673+
m_Overridden: 0
1674+
m_Uint:
1675+
m_Array: []
1676+
m_Int:
1677+
m_Array: []
1678+
m_Matrix4x4f:
1679+
m_Array: []
1680+
m_AnimationCurve:
1681+
m_Array: []
1682+
m_Gradient:
1683+
m_Array: []
1684+
m_NamedObject:
1685+
m_Array:
1686+
- m_Value: {fileID: 1620652238}
1687+
m_Name: Skinned Mesh Renderer
1688+
m_Overridden: 1
1689+
m_Bool:
1690+
m_Array: []
14921691
--- !u!1 &1248428039
14931692
GameObject:
14941693
m_ObjectHideFlags: 0
@@ -1783,6 +1982,11 @@ Transform:
17831982
m_Children: []
17841983
m_Father: {fileID: 0}
17851984
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1985+
--- !u!137 &1620652238 stripped
1986+
SkinnedMeshRenderer:
1987+
m_CorrespondingSourceObject: {fileID: -440673046031751957, guid: 5b63cb074d2b1474882caf59b30c3739, type: 3}
1988+
m_PrefabInstance: {fileID: 979165174}
1989+
m_PrefabAsset: {fileID: 0}
17861990
--- !u!137 &1715398135 stripped
17871991
SkinnedMeshRenderer:
17881992
m_CorrespondingSourceObject: {fileID: -440673046031751957, guid: 5b63cb074d2b1474882caf59b30c3739, type: 3}
@@ -1927,6 +2131,7 @@ Transform:
19272131
- {fileID: 543892822}
19282132
- {fileID: 1248428040}
19292133
- {fileID: 2096491903}
2134+
- {fileID: 238760729}
19302135
- {fileID: 2125300648}
19312136
m_Father: {fileID: 7613730345039360970}
19322137
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -2350,6 +2555,7 @@ MonoBehaviour:
23502555
marketplaceWearableCamera: {fileID: 1248428041}
23512556
marketplaceAvatarCamera: {fileID: 543892823}
23522557
builderCamera: {fileID: 2125300649}
2558+
jesusCamera: {fileID: 238760730}
23532559
--- !u!1 &1411485568905184141
23542560
GameObject:
23552561
m_ObjectHideFlags: 0
@@ -2437,6 +2643,7 @@ MonoBehaviour:
24372643
wearableLoader: {fileID: 5537778323977382523}
24382644
wearableOffset: {x: -5, y: 0, z: 0}
24392645
emoteAnimationController: {fileID: 1373223117}
2646+
confirmationVFX: {fileID: 1243316497}
24402647
animationReference: {fileID: 5311886945900016938}
24412648
platform: {fileID: 1330754706}
24422649
wearablePadding: 0.15
@@ -4106,6 +4313,7 @@ Transform:
41064313
m_LocalScale: {x: 1, y: 1, z: 1}
41074314
m_ConstrainProportionsScale: 0
41084315
m_Children:
4316+
- {fileID: 1243316495}
41094317
- {fileID: 7959537047933389600}
41104318
- {fileID: 2126498203402035751}
41114319
- {fileID: 6180915621169407461}

Assets/Scripts/AangConfiguration.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public void SetMode(string value)
2828
Mode = value switch
2929
{
3030
"profile" => PreviewMode.Profile,
31+
"jesus" => PreviewMode.Jesus,
3132
"authentication" => PreviewMode.Authentication,
3233
"builder" => PreviewMode.Builder,
3334
"configurator" => PreviewMode.Configurator,
@@ -365,5 +366,6 @@ public enum PreviewMode
365366
Authentication,
366367
Profile,
367368
Builder,
368-
Configurator
369+
Configurator,
370+
Jesus,
369371
}

Assets/Scripts/Configurator/ConfiguratorController.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,10 @@ private async Awaitable InitialLoad()
260260
await ReloadPreview();
261261

262262
// Preload VFX hack
263-
confirmationVFX.Play();
264-
await Awaitable.NextFrameAsync();
265-
confirmationVFX.Stop();
263+
// TODO: Uncomment this if we put back the Jump In screen
264+
// confirmationVFX.Play();
265+
// await Awaitable.NextFrameAsync();
266+
// confirmationVFX.Stop();
266267

267268
JSBridge.NativeCalls.OnLoadComplete();
268269

Assets/Scripts/Preview/PreviewCameraController.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class PreviewCameraController : MonoBehaviour
1515
[SerializeField] private CinemachineCamera marketplaceWearableCamera;
1616
[SerializeField] private CinemachineCamera marketplaceAvatarCamera;
1717
[SerializeField] private CinemachineCamera builderCamera;
18+
[SerializeField] private CinemachineCamera jesusCamera;
1819

1920
private float _targetFOV;
2021
private float _initialFOV;
@@ -41,6 +42,9 @@ public void SetMode(PreviewMode mode)
4142
case PreviewMode.Profile:
4243
authProfileCamera.Prioritize();
4344
break;
45+
case PreviewMode.Jesus:
46+
jesusCamera.Prioritize();
47+
break;
4448
case PreviewMode.Builder:
4549
builderCamera.Prioritize();
4650
break;

Assets/Scripts/Preview/PreviewController.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Services;
77
using UnityEngine;
88
using UnityEngine.Assertions;
9+
using UnityEngine.VFX;
910
using Utils;
1011

1112
namespace Preview
@@ -24,6 +25,7 @@ public class PreviewController : MonoBehaviour
2425
[SerializeField] private Vector3 wearableOffset = new(-5, 0, 0);
2526

2627
[SerializeField] private EmoteAnimationController emoteAnimationController;
28+
[SerializeField] private VisualEffect confirmationVFX;
2729

2830
[SerializeField] private GameObject animationReference;
2931
[SerializeField] private GameObject platform;
@@ -121,6 +123,7 @@ private async Awaitable Reload()
121123
mainCamera.orthographic = config.Projection == "orthographic";
122124
previewUIPresenter.EnableLoader(!config.DisableLoader);
123125
previewCameraController.SetMode(config.Mode);
126+
confirmationVFX.gameObject.SetActive(config.Mode is PreviewMode.Jesus);
124127

125128
var hasEmoteOverride = false;
126129
var hasWearableOverride = false;
@@ -165,6 +168,11 @@ private async Awaitable Reload()
165168
showingAvatar = true;
166169
await LoadForProfile(config.Profile, config.Emote);
167170
break;
171+
case PreviewMode.Jesus:
172+
showingAvatar = true;
173+
confirmationVFX.Play();
174+
await LoadForProfile(config.Profile, "character/Particles_Anim", true);
175+
break;
168176
// case PreviewMode.Builder:
169177
// await LoadForBuilder(config.BodyShape, config.EyeColor, config.HairColor, config.SkinColor,
170178
// await GetUrns(config), config.Emote, config.Base64);
@@ -276,15 +284,15 @@ await avatarLoader.LoadAvatar(avatarBodyShape, wearables, emoteDefinition,
276284
return (overrideDefinition.Type == EntityType.Emote, emoteAnimationController.HasAudio, hasValidRepresentation, avatarBodyShape);
277285
}
278286

279-
private async Awaitable LoadForProfile(string profileID, string defaultEmote)
287+
private async Awaitable LoadForProfile(string profileID, string defaultEmote, bool loop = false)
280288
{
281289
Assert.IsNotNull(profileID);
282290

283291
var avatar = await APIService.GetAvatar(profileID);
284292
var entities = await EntityService.GetEntities(avatar.wearables);
285293

286294
await avatarLoader.LoadAvatar(avatar.GetBodyShape(), entities,
287-
EntityDefinition.FromEmbeddedEmote(defaultEmote, false), avatar.forceRender, avatar.GetAvatarColors());
295+
EntityDefinition.FromEmbeddedEmote(defaultEmote, loop), avatar.forceRender, avatar.GetAvatarColors());
288296
}
289297

290298
private async Awaitable<List<string>> LoadUrns(AangConfiguration config)

0 commit comments

Comments
 (0)