This commit is contained in:
Oscar
2025-05-28 20:21:58 +03:00
parent 77c1704cd6
commit a6f2e43c49
35 changed files with 1310 additions and 132 deletions

BIN
Assets/animations/test_anim_3.fbx LFS Normal file

Binary file not shown.

BIN
Assets/animations/test_anim_4.fbx LFS Normal file

Binary file not shown.

View File

@@ -33569,16 +33569,16 @@
{
_class = "CSequenceAnimNode"
m_sName = "Unnamed"
m_vecPosition = [ 6144.0, -880.0 ]
m_vecPosition = [ 6032.0, -992.0 ]
m_nNodeID =
{
m_id = 1030023589
}
m_sNote = ""
m_tagSpans = [ ]
m_sequenceName = "test_anim_2"
m_sequenceName = "test_anim_4"
m_playbackSpeed = 1.0
m_bLoop = true
m_bLoop = false
}
},
{
@@ -74354,14 +74354,14 @@
{
_class = "CSequenceAnimNode"
m_sName = "Unnamed"
m_vecPosition = [ 5952.0, -944.0 ]
m_vecPosition = [ 6064.0, -864.0 ]
m_nNodeID =
{
m_id = 1952387107
}
m_sNote = ""
m_tagSpans = [ ]
m_sequenceName = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
m_sequenceName = "test_anim_3"
m_playbackSpeed = 1.0
m_bLoop = true
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
https://befonts.com/integral-cf-font-family.html

View File

@@ -69,8 +69,8 @@
},
{
_class = "AnimFile"
name = "test_anim_2"
activity_name = "test_anim_2"
name = "test_anim_3"
activity_name = "test_anim_3"
activity_weight = 1
weight_list_name = ""
fade_in_time = 0.2
@@ -83,7 +83,30 @@
disable_compression = false
disable_interpolation = false
enable_scale = false
source_filename = "animations/test_anim_2.fbx"
source_filename = "animations/test_anim_3.fbx"
start_frame = -1
end_frame = -1
framerate = -1.0
take = 0
reverse = false
},
{
_class = "AnimFile"
name = "test_anim_4"
activity_name = "test_anim_4"
activity_weight = 1
weight_list_name = ""
fade_in_time = 0.2
fade_out_time = 0.2
looping = false
delta = false
worldSpace = false
hidden = false
anim_markup_ordered = false
disable_compression = false
disable_interpolation = false
enable_scale = false
source_filename = "animations/test_anim_4.fbx"
start_frame = -1
end_frame = -1
framerate = -1.0

View File

@@ -102,27 +102,6 @@
"VectorGravity": "-97.97028,0,-844.3351",
"WallTolerance": 1
},
{
"__type": "Sandbox.SphereCollider",
"__guid": "ac941436-f43b-4bef-9171-fdee4422f354",
"Center": "0,0,44.79994",
"Friction": null,
"IsTrigger": true,
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"OnObjectTriggerEnter": null,
"OnObjectTriggerExit": null,
"OnTriggerEnter": null,
"OnTriggerExit": null,
"Radius": 8.499956,
"Static": false,
"Surface": null,
"SurfaceVelocity": "0,0,0"
},
{
"__type": "Dedugan",
"__guid": "c87cabbd-fbf9-4000-9d2c-77d476ae6692",
@@ -208,6 +187,44 @@
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null
},
{
"__type": "Sandbox.ModelHitboxes",
"__guid": "75f1de36-d36a-4b4c-921a-67414eeae4bf",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Renderer": {
"_type": "component",
"component_id": "559de9a6-0eab-4676-99e4-9e6c3cdc2a95",
"go": "4ee14eb8-86a4-4742-8298-7492b7deccea",
"component_type": "SkinnedModelRenderer"
},
"Target": null
},
{
"__type": "Sandbox.SphereCollider",
"__guid": "e73e53b2-a335-4233-b811-f61b05c59b27",
"Center": "0,0,47.19997",
"Friction": null,
"IsTrigger": true,
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"OnObjectTriggerEnter": null,
"OnObjectTriggerExit": null,
"OnTriggerEnter": null,
"OnTriggerExit": null,
"Radius": 7.899954,
"Static": false,
"Surface": null,
"SurfaceVelocity": "0,0,0"
}
],
"Children": [

View File

@@ -998,7 +998,6 @@
"Name": "Club",
"Position": "0,0,5000",
"Scale": "0.6,0.6,0.6",
"Enabled": true,
"Components": [],
"Children": [
{
@@ -1208,7 +1207,11 @@
{
"__type": "Teleporter",
"__guid": "76f3c916-1052-42fd-9e9d-a7bad9f383d8",
"Building": null,
"Building": {
"_type": "gameobject",
"go": "ff3159db-f393-4632-a969-e9e8aeb61f68"
},
"gravityType": "Down",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
@@ -1223,48 +1226,6 @@
],
"Children": []
},
{
"__guid": "a55f6065-4465-4520-937f-dbf7b3a3bb45",
"Flags": 0,
"Name": "NormalGravity",
"Position": "0,0,-421.6626",
"Enabled": true,
"Components": [
{
"__type": "NormalGravityTrigger",
"__guid": "1161811e-33f7-42ef-a1ce-757a89db6b44",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"TriggerOnEnter": false
},
{
"__type": "Sandbox.BoxCollider",
"__guid": "c02dbc59-ccd8-4d25-b8ec-a40a1a2a217c",
"Center": "0,0,0",
"Friction": null,
"IsTrigger": true,
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"OnObjectTriggerEnter": null,
"OnObjectTriggerExit": null,
"OnTriggerEnter": null,
"OnTriggerExit": null,
"Scale": "2000,2000,1000",
"Static": true,
"Surface": null,
"SurfaceVelocity": "0,0,0"
}
],
"Children": []
},
{
"__guid": "9ccdf814-1051-47e1-9735-75ba5aeddad8",
"Flags": 0,
@@ -2196,9 +2157,565 @@
"Children": []
}
]
},
{
"__guid": "62f21cd0-bc18-43b6-aed4-905f28eb7dd6",
"Flags": 0,
"Name": "test_anim",
"Position": "98.93472,210.4744,-331.7082",
"Rotation": "0,0.000000000000001776357,0.9999999,0.00000003344307",
"Scale": "0.393735,0.393735,0.393735",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "9aaa0e4a-8aa3-480f-8e2d-6fc9cae437e6",
"AnimationGraph": "animations/test/test_anim.vanmgrph",
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": null,
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "animations/test/test_anim.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {
"anim": false
},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 0.75,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "16f2ad9d-9f85-4b59-a17f-a9bf0e29d84d",
"Flags": 0,
"Name": "Strip",
"Position": "78.80431,85.86729,-409.1845",
"Scale": "1.666667,1.666667,1.666667",
"Enabled": true,
"Components": [],
"Children": [
{
"__guid": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"Flags": 0,
"Name": "Body",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "22bf7556-93f3-40a0-9434-483cc9988fed",
"AnimationGraph": "animgraphs/custom_citizen.vanmgrph",
"BodyGroups": 341,
"BoneMergeTarget": null,
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen/citizen.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {
"test_dance": false,
"b_swim": true
},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
},
{
"__type": "ClothingDresser",
"__guid": "7fc26f9b-6c82-451f-905b-61a9c6659322",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null
}
],
"Children": [
{
"__guid": "5fd6dcfd-f64e-46a4-b988-1ae4de1d0e0c",
"Flags": 0,
"Name": "Clothing - party_glasses",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "02f042cb-4486-46dc-9a98-b1d37b64e136",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/glasses/party_glasses/mesh/party_glasses.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "cee2fd97-88e2-4358-99be-1a4cdd66d7f8",
"Flags": 0,
"Name": "Clothing - hair_long_bangs",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "f0a792d2-3f48-442f-834a-9f5a193c434c",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/hair/hair_long_bangs/models/hair_long_bangs.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "3f6bacca-3843-4898-be28-4aaf5bfda1c3",
"Flags": 0,
"Name": "Clothing - slippers",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "457ffae2-4c85-46f5-80d6-107d573b699c",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/shoes/slippers/models/slippers.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "42d2d426-9d40-42aa-b711-2d6d00f35244",
"Flags": 0,
"Name": "Clothing - simple_dress_blue",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "b6ab519a-70cf-458b-b95b-b1ab7e5d8449",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/dress/simple_dress/models/simple_dress_blue.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "4f34337f-9a3a-4577-8c17-a958242a145a",
"Flags": 0,
"Name": "Clothing - boxing_gloves_blue",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "4f05e69a-828d-491b-b2b1-d29ddeb0195e",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/gloves/boxing_gloves/models/boxing_gloves_blue.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "77e05105-bb0e-4f85-8d3a-01f97cfcb84c",
"Flags": 0,
"Name": "Clothing - plump_lips_03",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "d96f5988-ebbf-4d55-90eb-1fa621681cfe",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/makeup/plump_lips/models/plump_lips_03.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
},
{
"__guid": "79dced14-3d0b-45a9-b726-c238e39d31c2",
"Flags": 0,
"Name": "Clothing - eye_makeup",
"Tags": "clothing",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "393e9b23-b696-4b21-81fa-806306e30b58",
"AnimationGraph": null,
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": {
"_type": "component",
"component_id": "22bf7556-93f3-40a0-9434-483cc9988fed",
"go": "e3a69197-6706-4b95-9b72-0eb6b7e10492",
"component_type": "SkinnedModelRenderer"
},
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "models/citizen_clothes/makeup/eye_makeup/models/eye_makeup.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 1,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
}
]
}
]
}
]
},
{
"__guid": "a55f6065-4465-4520-937f-dbf7b3a3bb45",
"Flags": 0,
"Name": "NormalGravity",
"Position": "0,0,4747.002",
"Scale": "0.6,0.6,0.6",
"Enabled": true,
"Components": [
{
"__type": "NormalGravityTrigger",
"__guid": "1161811e-33f7-42ef-a1ce-757a89db6b44",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"TriggerOnEnter": true
},
{
"__type": "Sandbox.BoxCollider",
"__guid": "c02dbc59-ccd8-4d25-b8ec-a40a1a2a217c",
"Center": "0,0,0",
"Friction": null,
"IsTrigger": true,
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"OnObjectTriggerEnter": null,
"OnObjectTriggerExit": null,
"OnTriggerEnter": null,
"OnTriggerExit": null,
"Scale": "2000,2000,1000",
"Static": true,
"Surface": null,
"SurfaceVelocity": "0,0,0"
}
],
"Children": []
},
{
"__guid": "285c9910-d341-4fa0-9e80-c89a2e31f4cb",
"Flags": 0,
@@ -2256,7 +2773,11 @@
{
"__type": "Teleporter",
"__guid": "587a82f6-7821-40db-9fdc-e62d098430f0",
"Building": null,
"Building": {
"_type": "gameobject",
"go": "ff3159db-f393-4632-a969-e9e8aeb61f68"
},
"gravityType": "Down",
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
@@ -2676,60 +3197,6 @@
}
],
"Children": []
},
{
"__guid": "62f21cd0-bc18-43b6-aed4-905f28eb7dd6",
"Flags": 0,
"Name": "test_anim",
"Position": "69.22212,98.3616,4800.975",
"Rotation": "0,0.000000000000001776357,0.9999999,0.00000003344307",
"Scale": "0.236241,0.236241,0.236241",
"Enabled": true,
"Components": [
{
"__type": "Sandbox.SkinnedModelRenderer",
"__guid": "9aaa0e4a-8aa3-480f-8e2d-6fc9cae437e6",
"AnimationGraph": "animations/test/test_anim.vanmgrph",
"BodyGroups": 18446744073709551615,
"BoneMergeTarget": null,
"CreateAttachments": false,
"CreateBoneObjects": false,
"MaterialGroup": null,
"MaterialOverride": null,
"Model": "animations/test/test_anim.vmdl",
"Morphs": {},
"OnComponentDestroy": null,
"OnComponentDisabled": null,
"OnComponentEnabled": null,
"OnComponentFixedUpdate": null,
"OnComponentStart": null,
"OnComponentUpdate": null,
"Parameters": {
"bools": {
"anim": false
},
"ints": {},
"floats": {},
"vectors": {},
"rotations": {}
},
"PlaybackRate": 0.75,
"RenderOptions": {
"GameLayer": true,
"OverlayLayer": false,
"BloomLayer": false,
"AfterUILayer": false
},
"RenderType": "On",
"Sequence": {
"Name": null,
"Looping": true
},
"Tint": "1,1,1,1",
"UseAnimGraph": true
}
],
"Children": []
}
],
"SceneProperties": {

View File

@@ -0,0 +1,261 @@
//=========================================================================================================================
// Optional
//=========================================================================================================================
HEADER
{
Description = "Glass Shader";
Version = 3;
}
//=========================================================================================================================
// Optional
//=========================================================================================================================
FEATURES
{
#include "common/features.hlsl"
Feature( F_RENDER_SIGHTS_ONLY, 0..1, "Glass");
}
//=========================================================================================================================
// Optional
//=========================================================================================================================
MODES
{
VrForward(); // Indicates this shader will be used for main rendering
ToolsVis( S_MODE_TOOLS_VIS ); // Ability to see in the editor
ToolsWireframe("vr_tools_wireframe.shader"); // Allows for mat_wireframe to work
ToolsShadingComplexity("tools_shading_complexity.shader"); // Shows how expensive drawing is in debug view
Depth( S_MODE_DEPTH );
}
//=========================================================================================================================
COMMON
{
#include "common/shared.hlsl"
}
//=========================================================================================================================
struct VertexInput
{
#include "common/vertexinput.hlsl"
};
//=========================================================================================================================
struct PixelInput
{
#include "common/pixelinput.hlsl"
};
//=========================================================================================================================
VS
{
#include "common/vertex.hlsl"
//
// Main
//
PixelInput MainVs(VS_INPUT i)
{
PixelInput o = ProcessVertex(i);
// Add your vertex manipulation functions here
return FinalizeVertex(o);
}
}
//=========================================================================================================================
PS
{
// Combos ----------------------------------------------------------------------------------------------
StaticCombo( S_MODE_DEPTH, 0..1, Sys(ALL) );
StaticCombo( S_RENDER_SIGHTS_ONLY, F_RENDER_SIGHTS_ONLY, Sys(ALL) );
DynamicCombo( D_MULTIVIEW_INSTANCING, 0..1, Sys(PC) );
// Transparency
#if (S_RENDER_SIGHTS_ONLY)
#define BLEND_MODE_ALREADY_SET
RenderState(BlendEnable, true);
RenderState(SrcBlend, SRC_ALPHA);
RenderState(DstBlend, INV_SRC_ALPHA);
#endif
// Attributes ------------------------------------------------------------------------------------------
#include "common/pixel.hlsl"
BoolAttribute(bWantsFBCopyTexture, !F_RENDER_SIGHTS_ONLY );
BoolAttribute(translucent, true);
CreateTexture2D( g_tFrameBufferCopyTexture ) < Attribute("FrameBufferCopyTexture"); SrgbRead( false ); Filter(MIN_MAG_MIP_LINEAR); AddressU( MIRROR ); AddressV( MIRROR ); > ;
CreateTexture2DMS( g_tSceneDepth ) < Attribute( "DepthBuffer" ); SrgbRead( false ); Filter( POINT ); AddressU( MIRROR ); AddressV( MIRROR ); >;
//
// Blur and Refraction Settings
//
float g_flBlurAmount < Default(0.0f); Range(0.0f, 1.0f); UiGroup("Glass,10/10"); > ;
float g_flRefractionStrength < Default(1.005); Range(1.0, 1.1); UiGroup("Glass,10/20"); > ;
float g_flIridescence < Default(600.0); Range(0.0f, 1000.0); UiGroup("Glass,10/30"); > ;
float g_flIridescenceScale < Default(1.0); Range(0.0f, 10.0); UiGroup("Glass,10/30"); > ;
float3 g_vSightLightColor < UiType( Color ); Default3(1.0, 1.0, 1.0); UiGroup("Glass,10/40"); > ;
float g_flSightDistanceScale < Default(1.0); Range(0.0, 20.0); UiGroup("Glass,10/50"); > ;
//
// Overlay layer
//
CreateInputTexture2D(RedDot, Srgb, 8, "", "_color", "Sight Dot,10/10", Default3(0.0, 0.0, 0.0));
CreateInputTexture2D(RedDot2, Srgb, 8, "", "_color", "Sight Dot,10/10", Default3(0.0, 0.0, 0.0));
CreateInputTexture2D(RedDot3, Srgb, 8, "", "_color", "Sight Dot,10/10", Default3(0.0, 0.0, 0.0));
CreateTexture2DWithoutSampler(g_tRedDot) < Channel(R, Box(RedDot), Linear); Channel(G, Box(RedDot2), Linear); Channel(B, Box(RedDot3), Linear); OutputFormat(BC7); SrgbRead(false); > ;
float3 GetIridescence(float3 vCameraDirWs, float3 vNormalWs, float k)
{
const float3 c1 = float3(3.54585104, 2.93225262, 2.41593945);
const float3 x1 = float3(0.69549072, 0.49228336, 0.27699880);
const float3 y1 = float3(0.02312639, 0.15225084, 0.52607955);
const float3 c2 = float3(3.90307140, 3.21182957, 3.96587128);
const float3 x2 = float3(0.11748627, 0.86755042, 0.66077860);
const float3 y2 = float3(0.84897130, 0.88445281, 0.73949448);
float3 color = 0;
float NDotV = dot(vNormalWs, vCameraDirWs);
[unroll]
for (int n = 1; n <= 8; n++) {
float wavelength = abs( NDotV ) * k / float(n);
float x = saturate( ( wavelength - 400.0f ) / 300.0f );
float3 col1 = saturate(1 - (c1 * (x - x1)) * (c1 * (x - x1)) - y1);
float3 col2 = saturate(1 - (c2 * (x - x2)) * (c2 * (x - x2)) - y2);
color += col1 + col2;
}
return color;
}
//
// Main
//
float4 MainPs(PixelInput i) : SV_Target0
{
Material m = Material::From(i);
// Shadows
#if S_MODE_DEPTH
{
float flOpacity = CalcBRDFReflectionFactor(dot(-i.vNormalWs.xyz, g_vCameraDirWs.xyz), m.Roughness, 0.04).x;
flOpacity = pow(flOpacity, 1.0f / 2.0f);
flOpacity = lerp(flOpacity, 0.75f, sqrt(m.Roughness)); // Glossiness
flOpacity = lerp(flOpacity, 1.0 - dot(-i.vNormalWs.xyz, g_vCameraDirWs.xyz), ( g_flRefractionStrength - 1.0f ) * 5.0f ); // Refraction
flOpacity = lerp(1.0f, flOpacity + 0.04f, length(m.Albedo)); // Albedo absorption
OpaqueFadeDepth(flOpacity, i.vPositionSs.xy);
return 1;
}
#endif
m.Metalness = 0; // Glass is always non-metallic
float3 vViewRayWs = normalize(i.vPositionWithOffsetWs.xyz);
float flNDotV = saturate(dot(-m.Normal, vViewRayWs));
float3 vEnvBRDF = CalcBRDFReflectionFactor(flNDotV, m.Roughness, 0.04);
float4 vDotColor;
{
float4 vRefractionColor = 0;
float flDepthPs = RemapValClamped( Tex2DMS( 1 - g_tSceneDepth, i.vPositionSs.xy, 0 ).r, g_flViewportMinZ, g_flViewportMaxZ, 0.0, 1.0);
float3 vRefractionWs = RecoverWorldPosFromProjectedDepthAndRay(flDepthPs, normalize(i.vPositionWithOffsetWs.xyz)) - g_vCameraPositionWs;
float flDistanceVs = distance(i.vPositionWithOffsetWs.xyz, vRefractionWs);
float3 vRefractRayWs = refract(vViewRayWs, m.Normal, 1.0 / g_flRefractionStrength);
float3 vRefractWorldPosWs = i.vPositionWithOffsetWs.xyz + vRefractRayWs * flDistanceVs;
float4 vPositionPs = Position4WsToPs(float4(vRefractWorldPosWs, 0));
float2 vPositionSs = vPositionPs.xy / vPositionPs.w;
vPositionSs = vPositionSs * 0.5 + 0.5;
vPositionSs.y = 1.0 - vPositionSs.y;
//
// Multiview
//
#if (D_MULTIVIEW_INSTANCING)
{
vPositionSs.x *= 0.5;
}
#endif
float flAmount;
float3 vAlbedoTint = m.Albedo;
vAlbedoTint += GetIridescence( vViewRayWs, m.Normal, g_flIridescence ) * g_flIridescenceScale * m.Albedo;
//
// Color and blur
//
{
flAmount = g_flBlurAmount * m.Roughness * (1.0 - (1.0 / flDistanceVs));
// Isotropic blur based on grazing angle
flAmount /= flNDotV;
const int nNumMips = 7;
float2 vUV = float2(vPositionSs) * g_vFrameBufferCopyInvSizeAndUvScale.zw;
vRefractionColor = Tex2DLevel(g_tFrameBufferCopyTexture, vUV, sqrt(flAmount) * nNumMips);
}
// Blend
{
m.Emission = lerp(vRefractionColor.xyz, 0.0f, vEnvBRDF);
m.Emission *= vAlbedoTint;
m.Albedo = 0;
}
// Sight dot
{
float3 vRedDotColor = g_vSightLightColor * 20.0f;
float3 vCameraToPosition = i.vPositionWithOffsetWs;
float3 vCameraDir = normalize( vCameraToPosition );
float flProjectDirOntoNormal = 1.0f / dot( vCameraDir, m.Normal );
float flProjectA = -g_flSightDistanceScale * flProjectDirOntoNormal ;
float flProjectDirOntoTangentU = dot( vCameraDir, i.vTangentUWs ) ;
float flProjectDirOntoTangentV = dot( vCameraDir, i.vTangentVWs ) ;
float2 vRedDotUV = saturate( i.vTextureCoords.xy + ( flProjectA * 0.5 ) * float2( flProjectDirOntoTangentU, flProjectDirOntoTangentV ) );
float2 vRedDotUV2 = saturate( i.vTextureCoords.xy + ( flProjectA * 1.1 ) * float2( flProjectDirOntoTangentU, flProjectDirOntoTangentV ) );
float2 vRedDotUV3 = saturate( i.vTextureCoords.xy + ( flProjectA * 1.2 ) * float2( flProjectDirOntoTangentU, flProjectDirOntoTangentV ) );
float flRedDot = Tex2DLevelS(g_tRedDot, TextureFiltering, vRedDotUV, sqrt(flAmount) * 7 ).r;
flRedDot += Tex2DLevelS(g_tRedDot, TextureFiltering, vRedDotUV2, sqrt(flAmount) * 7 ).g;
flRedDot += Tex2DLevelS(g_tRedDot, TextureFiltering, vRedDotUV3, sqrt(flAmount) * 7 ).b;
vDotColor = float4( flRedDot * vRedDotColor * vAlbedoTint, flRedDot );
m.Emission = lerp(m.Emission, vDotColor.rgb, vDotColor.a );
}
#if S_MODE_TOOLS_VIS
m.Albedo = m.Emission;
m.Emission = 0;
#endif
}
#if S_RENDER_SIGHTS_ONLY
return vDotColor;
#endif
return ShadingModelStandard::Shade(i, m);
}
}

Binary file not shown.