Сочетание цветов мне всё равно не нравится, но смысла долго возиться с подгонкой я не вижу. Картинка ниже:
Показаны сообщения с ярлыком бла-бла. Показать все сообщения
Показаны сообщения с ярлыком бла-бла. Показать все сообщения
вторник, 13 августа 2019 г.
воскресенье, 3 февраля 2019 г.
Заинтересовался Godot.
Скачал на предмет посмотреть - пощупать. Что можно сказать - 3D я пока особо не трогал, все же изучать лучше начинать с простого, тем более что в самоучителе на их сайте показывают работу на примере двухмерных игр. Что подкупает - встроенный прямо в редактор справочник по API и готовые элементы управления, вроде кнопок и прогресс баров. Ну и конечно Питон-подобный язык скриптов под названием GDScript. Отличия конечно есть, но по большей части то же самое. Если интересно, то можно зайти в ютубе на канал ScanerSoft, там есть хорошего качества уроки и довольно подробные. Ссылка, если что.
В общем, поигравшись с Godot, и немножко с ним разобравшись, решил вспомнить молодость и сделать приложение - часы. Давным-давно, когда я только начинал вникать в азы программирования, я делал свой аналог виджета часов на рабочий стол еще на VisualBasic 6.0. Или уже на VB.Net? Не помню. НО помню, что возился тогда долго, знаний не было, спросить тоже было не у кого. Вот, решил сейчас повторить подвиг, скачал текстуры циферблата и стрелок и за пару часов сделал. Картинка:
В общем, поигравшись с Godot, и немножко с ним разобравшись, решил вспомнить молодость и сделать приложение - часы. Давным-давно, когда я только начинал вникать в азы программирования, я делал свой аналог виджета часов на рабочий стол еще на VisualBasic 6.0. Или уже на VB.Net? Не помню. НО помню, что возился тогда долго, знаний не было, спросить тоже было не у кого. Вот, решил сейчас повторить подвиг, скачал текстуры циферблата и стрелок и за пару часов сделал. Картинка:
Скопипастю код функции, управляющей движением стрелок:
func _process(delta):
var currTime = OS.get_time()
var currSecond = currTime['second']
var secondHand = self.get_node("Second_hand")
secondHand.rotation_degrees = currSecond * 6
var currMinute = currTime['minute']
var minuteHand = self.get_node("Minute_hand")
minuteHand.rotation_degrees = currMinute * 6 + currSecond * 0.1
var currHour = 0
if currTime['hour'] >= 12:
currHour = currTime['hour'] - 12
else:
currHour = currTime['hour']
var hourHand = self.get_node("Hour_hand")
hourHand.rotation_degrees = currHour * 30 + currMinute * 0.5
var currTime = OS.get_time()
var currSecond = currTime['second']
var secondHand = self.get_node("Second_hand")
secondHand.rotation_degrees = currSecond * 6
var currMinute = currTime['minute']
var minuteHand = self.get_node("Minute_hand")
minuteHand.rotation_degrees = currMinute * 6 + currSecond * 0.1
var currHour = 0
if currTime['hour'] >= 12:
currHour = currTime['hour'] - 12
else:
currHour = currTime['hour']
var hourHand = self.get_node("Hour_hand")
hourHand.rotation_degrees = currHour * 30 + currMinute * 0.5
пятница, 15 июня 2018 г.
Фейковое освещение в БГЕ.
Опять долго не писал, причина - перефразируя шутку из КВН - "беспробудное пьянство победило природную лень". И даже не буду обещать писать часто, хотя бы потому что BGE вроде как того... заменяется другим движком, который Armory3d - лично для меня довольно - таки демотивирующая новость, потому что для перехода на этот движок мне надо новый комп покупать, а я еще BGE толком не изучил. В общем одно не слишком стабильное изделие заменяется на другое, тоже не слишком стабильное. Мимо UPBGE я так же пролетаю, по той же причине. "О, на этом месте мы горько плачем и не можем писать в рифму!.."(с)
понедельник, 9 апреля 2018 г.
Балуюсь с туманом войны.
Давным - давно, в одной очень далекой гала... еще на БУ обсуждался вопрос создания эффекта тумана войны с помощью кучи расставленных плейнов, которые бы перекрывали собой обзор из камеры в собственных координатах. И становились бы невидимыми, когда их сенсор показал бы приближение юнита, принадлежащего игроку. Тогда дело не пошло, потому что этих самых плейнов надо было очень много, чтобы перекрыть всю карту, я уже молчу о обработке сигналов сенсоров. А я тогда только - только изучать БГЕ и Питон начал, так что не сообразил, что камера небольшое количество плейнов с собой таскать может по карте всей, остается только вычислить координату частицы тумана на карте и из списка этой координате извлечь значение видимости. Дальше уже дело техники. Вот мне это недавно в голову и пришло. Как говориться, лучше поздно, чем никогда... Ниже КДПВ и ссылка на черновик. Там еще пилить надо, но для понимания принципа оно уже вполне пригодно к употреблению.
воскресенье, 1 апреля 2018 г.
среда, 21 марта 2018 г.
Хм...
Немного поигрался с текстурой малого разрешения, внезапно оказалось что примерно так можно туман войны для ландшафта сделать. Получается конечно не так чтобы очень красиво, но на безрыбье и не так раскорячишься.
пятница, 12 января 2018 г.
Не прошло и года, как я написал следующий пост.
Ситуация такая получилась - комп у меня стационарный, а я сам почти всё прошедшее время в прямом смысле слова дома не был, вот на Новый год только домой приехал. А в телефоне я запустить Блендер не могу. Чистый же Питон сам по себе как-то не интересен, короче не получилось и не знаю как оно дальше будет продолжаться, вполне может статься, что опять год меня не будет. Хотелось бы летом дома побыть, но не уверен, что получится. Посмотрим.
суббота, 24 декабря 2016 г.
Двигаю полигоны.
Я тут попробовал полигоны подвигать, скорее прицениться, что надо, для фейковой системы частиц на полигонах, вместо объектов.
понедельник, 19 декабря 2016 г.
Пока так.
В принципе, вполне работоспособная версия, я было даже обрадовался, дескать закончил. Ага, как же, размечтался, одноглазый. Работать - то оно работает, но только до тех пор, пока частицам не надо просчитывать столкновения и вот тут вылезает такая неприятность, что теряются ключи, потому что система частиц теряет свои частицы, или еще что с ними делает, и фиг знает, как эту проблему решить. Обидно, да. Вдвойне обидно, что иногда оно работает вполне себе нормально, а потом как вожжа под хвост попадает. Буду думать, а пока свежая версия.
explodeToShape0.9.py.7z
Лицензия:
"Скачивая этот аддон, вы соглашаетесь с тем, что данный аддон поставляется "как есть", автор не несет ответственности за любой причиненный данным аддоном вред вашему Блендеру, компьютеру, здоровью, планете, душе. Используя данный аддон вы соглашаетесь с возможным приближением момента тепловой смерти Вселенной. " )))
explodeToShape0.9.py.7z
Лицензия:
"Скачивая этот аддон, вы соглашаетесь с тем, что данный аддон поставляется "как есть", автор не несет ответственности за любой причиненный данным аддоном вред вашему Блендеру, компьютеру, здоровью, планете, душе. Используя данный аддон вы соглашаетесь с возможным приближением момента тепловой смерти Вселенной. " )))
суббота, 17 декабря 2016 г.
Добавил что хотел.
Добавил кнопочку запекания результата работы оператора, как и хотел. Также добавил возможность включения/отключения воздействия гравитации на траекторию частиц. Код сейчас добавлять не буду, смотрите картинку:
пятница, 16 декабря 2016 г.
Баловался.
Всех с Пятницей!
Возился с одной задумкой, хотелось добавить кнопочку на панель настройки оператора, для так сказать, оформления результата настройки. Делалось это для аддона взрыва, но он уже изрядно разросся, поэтому я не рискнул сразу в его коде писать. Если всё выгорит, а меня всё равно терзают смутные сомнения, то можно будет видеть траекторию разлета осколков, и настраивать параметры как нравится и только когда уже всё будет готово, запаковывать в ключи формы. Сейчас во время работы оператора приходится гонять туда -сюда текущий кадр сцены, чтобы просто увидеть результат.
Возился с одной задумкой, хотелось добавить кнопочку на панель настройки оператора, для так сказать, оформления результата настройки. Делалось это для аддона взрыва, но он уже изрядно разросся, поэтому я не рискнул сразу в его коде писать. Если всё выгорит, а меня всё равно терзают смутные сомнения, то можно будет видеть траекторию разлета осколков, и настраивать параметры как нравится и только когда уже всё будет готово, запаковывать в ключи формы. Сейчас во время работы оператора приходится гонять туда -сюда текущий кадр сцены, чтобы просто увидеть результат.
суббота, 10 декабря 2016 г.
Зря жаловался.
Внезапно всё пошло, причем почти сразу же после написания предыдущего поста. Логику добавления системы частиц я поменял, еще кое-какие изменения есть. По сути эта версия уже Бета, основной функционал готов, осталось только напильником пройтись, попереименовывать некоторые переменные, определиться с диапазоном их изменения, возможно добавить еще каких настроек, или наоборот, какие-то настройки убрать. Еще добавить всякие подсказки, короче красиво оформить. Да, проверку типа объекта надо сделать, чтобы оно не пыталось взорвать лампочку, к примеру.
Долго провозился с системой частиц, сразу всем хочу сказать, не надо для изменения текущего кадра в сцене использовать scene.frame_current, оно так не работает, система частиц плевать хотела на такое изменение, юзайте scene.frame_set(), если бы я сразу им воспользовался, то пару дней не провозился бы.
Ниже код, какой он есть сейчас. ДЛИННОТА!
Долго провозился с системой частиц, сразу всем хочу сказать, не надо для изменения текущего кадра в сцене использовать scene.frame_current, оно так не работает, система частиц плевать хотела на такое изменение, юзайте scene.frame_set(), если бы я сразу им воспользовался, то пару дней не провозился бы.
Ниже код, какой он есть сейчас. ДЛИННОТА!
четверг, 8 декабря 2016 г.
что-то оно не хочет опять.
Хотел переделать логику добавления/удаления модификаторов системы частиц. Сейчас всё это дело на каждую копию вешается в индивидуальном порядке, при этом настроики системы частиц у всех копий одинаковы. Планировал добавлять систему частиц и модификаторы только на первую копию, а потом клонировать уже её, с этим как раз проблем нет. А вот когда начинаю применять модификаторы система частиц впирается рогом и не дает изменить сетку копий. Причем ручками применяю - всё работает. Разобрался заодно с ключами анимации, теперь они Linear.
четверг, 10 ноября 2016 г.
Промежуточный итог.
Хвастать пока нечем. Пока делал GUI для оператора взрыва объекта, в общем ниже картинка:
понедельник, 7 ноября 2016 г.
Переезд кнопки.
Погонял кнопку исполнения оператора по разным местам и панелям, по результату сделал вывод, что если разместить кннопку во вкладке DATA, как изначально планировалось, то блендер просто не даст изменить активный объект, вроде как выбрал какой-то объект, значит с ним и работай, нечего с объекта на объект зайцем скакать. Зато в меню 3D окна - пожалуйста, делай что хочешь, так что кнопка оператора туда переезжает. Покамест вожусь с настройкой интерфейса, точнее почитываю, что попадается про это дело, надо сделать крутилки кучи настраиваемых параметров. Так-то на пробу вставил пару проперти, все нормально работает, только не очень опрятно получается. Модификатор Solidify я добавил, надо еще несколько изменить логику работы оператора, добавлять систему частиц и модификаторы только на первый клон, а уже с него все копировать. Еще надо поправить получающуюся анимацию, кривые ключей почему-то создаются типа Безье, нехорошо, надо линейные.
воскресенье, 6 ноября 2016 г.
Как я и думал.
При работе оператора от назначенной кнопки почему-то не происходит смена текущего объекта, сиречь bpy.context.object. Поэтому, при работе все модификаторы вешаются не на клоны объекта, а на сам объект.
пятница, 4 ноября 2016 г.
Что за ерунда?
Переписал оператор взрыва объекта, с добавление модификатора Solidify, при вызове оператора из текстового редактора всё работает нормально, как только делаю оператору кнопку на панели, при нажатии этой кнопки в консоли сплошные ошибки. Система частиц и модификаторы вешаются на объект, на котором их быть не должно. Тьфу...
понедельник, 10 октября 2016 г.
Код оператора будущего аддона.
Разобрался с выбором объекта и с прочими появившимися проблемами. Что еще надо сделать:
a) Добавить модификатор Solidify, и соответственно применение его.
b) Оформить некоторые переменные как Property
c) Написать первую версию Гуя, и разместить его в DATA
Выпотрошил пример Simple Operator из примеров блендера и заменил функционал. Замучился я с применением модификатора взрыва, никак не хотел он нормально применяться, пришлось каждый раз пересчитывать его данные, как итог, результат не похож на настроенный оригинал. Все остальное позже доделаю, а пока можно почитать, да и потестить ( с подсветкой синтаксиса и комментариями!):
a) Добавить модификатор Solidify, и соответственно применение его.
b) Оформить некоторые переменные как Property
c) Написать первую версию Гуя, и разместить его в DATA
Выпотрошил пример Simple Operator из примеров блендера и заменил функционал. Замучился я с применением модификатора взрыва, никак не хотел он нормально применяться, пришлось каждый раз пересчитывать его данные, как итог, результат не похож на настроенный оригинал. Все остальное позже доделаю, а пока можно почитать, да и потестить ( с подсветкой синтаксиса и комментариями!):
пятница, 7 октября 2016 г.
Что-то я делаю не так.
Пытаюсь написать оператор блендера на основе скрипта из предыдущего сообщения. Казалось бы, код вполне себе работоспособный, бери и пользуйся. Голосом М. Задорнова: "Конечно!". То не могу активный объект переназначить, теперь модификатор взрыва выеживается. Применяется совсем не так, как ручками. Совсем другая логика, ни разу не BGE. Где бы что на русском языке почитать, для достижения просветления, не век же мне в позе лотоса медитировать созерцая строки кода? Бубен купить что ли?
среда, 5 октября 2016 г.
Пишу аддон взрыва объекта.
Будем считать, что пока еще версия 0.1 Авось хватит времени его дописать, но пока не сделал, буду периодически выкладывать сюда код. Собственно базовый функционал уже готов, при запуске скрипта, при наличии выбранного объекта, рядом с ним генерируется объект, отвечающий за демонстрацию взрыва. На нем генерируется куча ключей форм, значения которых анимируется. Вот эту анимацию и надо запускать в BGE, не забывая конечно, что анимацию нужно применять именно на этом свежесозданном объекте. Код и немного подробностей ниже, извините что мало и код без подсветки синтаксиса, но всё еще будет переписываться, поэтому ИЗВИНИТЕ.
Подписаться на:
Сообщения (Atom)
