Race 2: своя палитра и небо, чистовое запекание, вентиляторы сильнее, скрытая шахта, новая песня
- палитра целиком (индиго, пурпур, ледяная бирюза): SOLID/NEON, SURFACES/GLOWS, туман, ambient, свет запекания, ворота, полосы, надписи; новое небо - запекание 384 сэмпла + огни у подножия башни - вентилятор: VENT_MAX_RISE 16, VENT_ACCEL 80; шахта-лифт без знака и без столба/света (hidden) - музыка Race 2: Poloz «On My Way to Hell» с 1:40 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,12 +5,12 @@ extends Area3D
|
||||
|
||||
@export var size := Vector2(6.0, 10.0) # ширина (X) и длина (Z), м
|
||||
@export var speed := 22.0
|
||||
@export var color := Color(0.35, 0.9, 0.85) # холодный бирюзовый: отличается от жёлтых стрелок-подсказок трассы
|
||||
@export var color := Color(0.85, 0.45, 1.0) # пурпурно-белый: отличается от ледяных стрелок-подсказок трассы
|
||||
|
||||
const SHADER := """
|
||||
shader_type spatial;
|
||||
render_mode unshaded, blend_add, cull_disabled, depth_draw_never;
|
||||
uniform vec4 tint : source_color = vec4(0.35, 0.9, 0.85, 1.0);
|
||||
uniform vec4 tint : source_color = vec4(0.85, 0.45, 1.0, 1.0);
|
||||
uniform vec2 dims = vec2(6.0, 10.0);
|
||||
varying vec2 uv;
|
||||
void vertex() { uv = VERTEX.xz; }
|
||||
|
||||
+7
-3
@@ -6,7 +6,8 @@ extends Area3D
|
||||
|
||||
@export var size := Vector2(6.0, 6.0) # сечение столба (X, Z), м
|
||||
@export var height := 14.0 # высота столба, м
|
||||
@export var color := Color(0.45, 0.85, 0.35)
|
||||
@export var color := Color(0.25, 0.95, 0.75)
|
||||
@export var hidden := false # скрытый поток (шахта-лифт): только тёмная решётка, без столба, щелей и света
|
||||
|
||||
const SHADER := """
|
||||
shader_type spatial;
|
||||
@@ -55,7 +56,8 @@ func _build_visuals() -> void:
|
||||
col.material_override = sm
|
||||
col.position.y = height * 0.5
|
||||
col.cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF
|
||||
add_child(col)
|
||||
if not hidden:
|
||||
add_child(col)
|
||||
# решётка на полу: тёмная плита с светящимися щелями
|
||||
var dark := StandardMaterial3D.new()
|
||||
dark.albedo_color = Color(0.02, 0.025, 0.03)
|
||||
@@ -67,11 +69,13 @@ func _build_visuals() -> void:
|
||||
var plate := BoxMesh.new()
|
||||
plate.size = Vector3(size.x - 0.3, 0.08, size.y - 0.3)
|
||||
_add(plate, dark, Vector3(0, 0.04, 0))
|
||||
var n := int((size.x - 0.8) / 0.7)
|
||||
var n := 0 if hidden else int((size.x - 0.8) / 0.7)
|
||||
for i in n:
|
||||
var slit := BoxMesh.new()
|
||||
slit.size = Vector3(0.22, 0.03, size.y - 1.0)
|
||||
_add(slit, glow, Vector3(-(size.x - 0.8) * 0.5 + (i + 0.5) * (size.x - 0.8) / n, 0.095, 0))
|
||||
if hidden:
|
||||
return
|
||||
# слабый свет над решёткой
|
||||
var l := OmniLight3D.new()
|
||||
l.light_color = color
|
||||
|
||||
Reference in New Issue
Block a user