Осваиваю новый движок, ибо хотя BGE очень удобный и привычный (в том числе из-за полноценного Python), однако очень много сложностей с финальной 'обёрткой' готового приложения и экспортом под иные платформы... да и развивают его как-то слабо (хотя есть инсайдерская инфа про новые крутые изменения, но про исправление глобальных недостатков пока молчок).
В итоге, выбор пал на Godot; тем более, что 'на днях' вышла версия 2.0 с большим количеством правок и новых интересных фишек. Движок уже вполне взрослый, стабильный и насыщен фичами, да и развивается весьма успешно. К тому же, как и BGE,- open-source software! А с недавнего времени ещё и часть Open Source Initiative. В общем, изучаем'с.
Попутно решил первую задачку в GDScript касательно #NodeGraphShader, а именно мне требовалось смещать UV для текстуры. В итоге, решил это добавлением VectorConstant в канал UV, а в скрипте просто устанавливаю значение по Y. (можно было и вообще без скрипта, точнее сделал и такой вариант, с активацией нодом Time... но скриптом понтовее! :))
Код:
____________________________________
#testuvslideextends MeshInstance
var x = 0
func _ready():
set_process(true)
pass
func _process(delta):
var b = get_mesh().surface_get_material(0).get_shader().vec_const_node_get_value(1, 4)
get_mesh().surface_get_material(0).get_shader().vec_const_node_set_value(1, 4, Vector3(0, x, 0))
if x > -.99:
x = x-.01
else:
x = 0
print(b)
pass
____________________________________
Пошёл простым путём, добавил нод _вектор_констант_ и меняю ему значение. Текстурка 'едет' вниз, то есть по оси 'Y'.
Возможно позже, для ещё большей ощущаемой плавности, добавлю поправку на задержку отклика (delta). А пока смотрится гоd0tно и в такой, более простой реализации.
Я доволен. :)
^
P.S. Мне тут поведали, что к постам надо обязательно аттачить картинки, а то как бы типа не модно мол - так что вот вам пачка в тему. :)
#godot #game #engine #gdscript #development #blender #bge #programming