// You can find the English version of this tutorial here.
В данном коротком уроке я расскажу о том, как сделать часы, обновляющиеся в режиме реального времени. Пример на видео.
Часы «идут» без использования ключей анимации.
Понадобится:
0. Blender (1 шт.)
1. аддон Animation Nodes (1 шт.)
2. знания Python (хотя бы базовые)
Для начала создаём в Blender новую сцену. Кидаем пару объектов типа Text. Один называем «text_date». Второй — «text_time».
Теперь нужно написать скрипт на Python, который и будет обновлять дату/время. Это текстовый файл следующего содержания:
from datetime import datetime # подключаем модуль для работы с датой и временем
import bpy # модуль для взаимодействия Python с Blender
def time_update(): # функция, при запуске обновляющая дату и время
today = datetime.today()
if len(str(today.day)) == 2:
dd = today.day
else:
dd = '0'+str(today.day)
if len(str(today.month)) == 2:
mm = today.month
else:
mm = '0'+str(today.month)
yy = today.year
if len(str(today.hour)) == 2:
h = today.hour
else:
h = '0'+str(today.hour)
if len(str(today.minute)) == 2:
m = today.minute
else:
m = '0'+str(today.minute)
if len(str(today.second)) == 2:
s = today.second
else:
s = '0'+str(today.second)
bpy.data.scenes['Scene'].objects['text_date'].data.body = str(dd)+'.'+str(mm)+'.'+str(yy)
bpy.data.scenes['Scene'].objects['text_time'].data.body = str(h)+':'+str(m)+':'+str(s)
time_update() # запуск функции time_update()
Файл сохраняем под именем date_and_time_updater.py. Убедитесь, что название именно такое, потому что в windows, например, при попытке так назвать файл он будет назван date_and_time_updater.py.txt — во всяком случае, при использовании стандартного блокнота.
В Blender разбиваем экран на 3: нам нужны стандартный 3D-вьюпорт, текстовый редактор и редактор нодов.
В текстовом редакторе нажимаем Open и открываем созданный ранее скрипт. Чтобы он запускался автоматически после запуска сцены — включаем флажок Register на этой же панели.
Если нажать кнопку Run Script — в Text'ах установятся текущие дата и время. Поскольку включена опция Register, дата и время будут устанавливаться на текущие автоматически при каждом открытии файла со сценой.
Теперь сделаем так, чтоб время и дата обновлялись в режиме реального времени. Для этого понадобится аддон Animation Nodes.
Если аддон правильно установлен, в редакторе нодов появляется новая вкладка:
Выбираем её, нажимаем кнопку New.
Добавляем нод Subprograms → Script.
В качестве скрипта выбираем ранее созданный файл. Имя «My Script» для удобства лучше заменить на что-то другое.
Добавляем второй нод — Subprograms → Invoke Subprogram. Blender предложит сразу добавить этот нод, связанный с нашим скриптом:
После этого часы заработают.
Автор: Денис Скиба aka Mapper720
21.08.2018