Russian Qt Forum
Март 29, 2024, 11:59
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Алгоритмы
>
Анимашки, графы и пытон
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Анимашки, графы и пытон (Прочитано 10759 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #15 :
Апрель 16, 2021, 14:06 »
Цитата: tux от Апрель 16, 2021, 13:43
Ну так и начните разрабатывать. Сомневаюсь, что найдётся лох, кто подобное будет делать нахаляву.
Прибегаете к дешевым приемам
Цитировать
Ты хочешь чтобы за тебя сделали твою работу!
Такой упрек можно бросить любой теме
Цитата: tux от Апрель 16, 2021, 13:43
Если подобное заказывать - ТЗ всё равно будет нужно.
Если заказывать - то нужна хоть какая-то надежда на "сасес"
А из нашего обсуждения она даже меньше нуля
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #16 :
Апрель 16, 2021, 14:26 »
Цитата: kambala от Апрель 16, 2021, 13:58
1) написать аналогичный тестовый код на С++
2) определить его ключевые элементы: какие классы и объекты используются
3) создать к ним питоновские привязки (по-моему один из вариантов — SWIG)
4) переписать 1) на питоне для верификации
не знаю, может поможет подобное из другого проекта (понятия не имею как оно работает):
-
https://github.com/xbmc/xbmc/tree/master/xbmc/interfaces/swig
-
https://github.com/xbmc/xbmc/tree/master/xbmc/interfaces/python
-
https://github.com/xbmc/xbmc/tree/master/tools/codegenerator
Спасибо за ссылки, но (как я понял) они посвящены интеграции пытона. Это давно есть (PyQt, спасибо
sergek
). И небольшой, минимальный опыт создания API на пытоне (для др целей). Трудности 100% "идейные"
Цитата: kambala от Апрель 16, 2021, 13:58
1) написать аналогичный тестовый код на С++
Ну хорошо, давайте попробуем, вот вверху описана простая сцена "стадион, гол!! (штангв)". Или предложите др, нет проблем. Что писать? И у меня как-то в голове совсем пусто.
Такое иногда бывает. Помню в школе писал сочинение "Осень". Начал бодро
Цитировать
Настала осiнь. Поховалися комахи та жаби. Все коротшають та коротшають днi
Эти неск фраз я где-то слышал. Но дальше - я не могу придумать ничего. Совсем. Включив логическое мЫшление я еще дописал
Цитировать
Все длиннiшають та длиннiшають ночi
Хотя понимал что учительнице это не понравится. В общем - тупик
Записан
kambala
Джедай : наставник для всех
Online
Сообщений: 4724
Re: Анимашки, графы и пытон
«
Ответ #17 :
Апрель 16, 2021, 15:09 »
и как писать, словами?
никто кроме вас ваш код не видит, что в нем доступно — неизвестно.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Анимашки, графы и пытон
«
Ответ #18 :
Апрель 16, 2021, 15:23 »
Цитата: Igors от Апрель 16, 2021, 14:26
Такое иногда бывает. Помню в школе писал сочинение "Осень". Начал бодро
Цитировать
Настала осiнь. Поховалися комахи та жаби. Все коротшають та коротшають днi
Эти неск фраз я где-то слышал. Но дальше - я не могу придумать ничего. Совсем. Включив логическое мЫшление я еще дописал
Цитировать
Все длиннiшають та длиннiшають ночi
Хотя понимал что учительнице это не понравится. В общем - тупик
Можно было еще ж написать, что "почало падаты лыстя, та поховолыся билкы та дятлы"
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
tux
Крякер
Offline
Сообщений: 399
Re: Анимашки, графы и пытон
«
Ответ #19 :
Апрель 16, 2021, 20:58 »
Цитата: Igors от Апрель 16, 2021, 14:06
Если заказывать - то нужна хоть какая-то надежда на "сасес"
А из нашего обсуждения она даже меньше нуля
Просто есть впечатлнение (опять же, из нашего разговора), что вы сами не осознаёте, что именно вам надо. Я потому и затеял разговор за ТЗ.
Нормальный ТЗ как раз и предполагает, что заказчик точно знает, что он хочет. И знает, как это проверить.
А вариант "хочу, шоб было круто" - чаще всего означает, что работа:
1) никогда не будет закончена (ибо условия будут меняться на лету)
2) достойна не будет оплачена (в последний момент появится какая-нибудь "хотелка", которая приведёт к полному переписыванию кода (или к существенной его переработке).
Просто задача довольно обширная. Несколько операционных систем (если упоминать Qt), несколько движков игр (если анимации делать именно для игр), несколько языков программирования (допустим в Qt c++, а в unity c#). Соответственно или корректные переходники, или дикие костыли. Ну, либо можно поиграть в национальную русскую забаву "каша из топора".
«
Последнее редактирование: Апрель 16, 2021, 21:29 от tux
»
Записан
Digital Art
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #20 :
Апрель 17, 2021, 10:30 »
Цитата: tux от Апрель 16, 2021, 20:58
Нормальный ТЗ как раз и предполагает, что заказчик точно знает, что он хочет.
А в данном случае он как раз и не знает - и в этом смысл задачи
Простая аналогия - язык программирования. Для какой (конкретной) задачи он нужен? Ответа (конкретного, точного, как Вы настаиваете) здесь нет. Так что, выходит "язык программирования - бесполезная вещь"? Вовсе нет.
Цитата: tux от Апрель 16, 2021, 20:58
И знает, как это проверить.
А вот это неплохая мыслишка. Хорошо, пусть что-то сделано, как это проверить/оценить? Наверное так: исполнитель должен предъявить код на созданном API который обеспечивает анимацию 3-4 заранее известных сцен (стадион и др). Если это работает, то в присутствии заказчика исполнитель (напр в течение часа) пишет код на API для пары задач заранее подготовленных заказчиком, но исполнителю заранее неизвестных. Чтобы было ясно чего стоит созданное API или так, захардкодил.
Разумеется всегда можно придумать такую сцену что никакое API не потянет
Или скрипт окажется слишком сложным. Ну как видно из примеров выше речь идет о простых случаях. Доклепаться конечно можно и тут (а что такое "просто"?), но в конце-концов какое-то "понимание" между заказчиком и исполнителем должно быть всегда
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #21 :
Апрель 17, 2021, 10:55 »
Цитата: kambala от Апрель 16, 2021, 15:09
и как писать, словами?
никто кроме вас ваш код не видит, что в нем доступно — неизвестно.
Писать псевдокодом. Никакого кода у меня пока нет, что доступно - надо решать. Есть приложение на плюсах, оно располагает предметом анимации (character) и набором именованных анимаций для него (напр idle, walk, run, jump). Кадр за кадром приложение вызывает скрипт который должен вернуть имя текущей анимации и ее (локальный) кадр. Все, дальше приложение разберется, на экране char напр побежал.
Таким образом скрипт имеет по меньшей мере "object" и доступ ко всем его анимациям. Разумеется если в скрипте мы хотим "реагировать на событие", то скрипт должен иметь ф-ции проверки этого события. Ну это не проблема, подобное уже делал.
А вот какие методы должен иметь object в скрипте - большой вопрос, собсно это и есть предмет разработки.
Записан
tux
Крякер
Offline
Сообщений: 399
Re: Анимашки, графы и пытон
«
Ответ #22 :
Апрель 18, 2021, 10:48 »
Цитата: Igors от Апрель 17, 2021, 10:30
Хорошо, пусть что-то сделано, как это проверить/оценить?
Должно быть полное соответствие ТЗ. Если уж совсем "по-взрослому", то к ТЗ должен прилагаться "протокол испытаний".
С границами возможных отклонений в качестве ПО. Ну и со штрафами разработчику, если он косячит. И с жестким дедлайном.
А "код на созданном АПИ" - это уже будет совсем отдельная работа, за совсем другие деньги.
Записан
Digital Art
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #23 :
Апрель 18, 2021, 11:33 »
Цитата: tux от Апрель 18, 2021, 10:48
Должно быть полное соответствие ТЗ.
...
...за совсем другие деньги.
Я не предлагал эту работу, во всяком случае пока, поэтому разговоры о ТЗ и деньгах, мягко говоря, преждевременны.
И с чего Вы решили что это вещь "достойная заказа"? Может потому что прозвучало слово "игра"?
Нет, созданием игр я не занимаюсь (там и без меня умельцев хватает). Речь идет об "интеграции скриптов в приложение", в принципе задача типовая, но везде своя специфика, здесь - анимации.
В общем, давайте смотреть на вещи проще. А то пока я ничего не увидел и не услышал, ну вот совсем ничего. А меня уже посылают писать ТЗ и заряжать бабульки
Записан
tux
Крякер
Offline
Сообщений: 399
Re: Анимашки, графы и пытон
«
Ответ #24 :
Апрель 18, 2021, 12:36 »
Цитата: Igors от Апрель 18, 2021, 11:33
В общем, давайте смотреть на вещи проще. А то пока я ничего не увидел и не услышал, ну вот совсем ничего.
Давайте. Я про ТЗ говорил не в свете "заряжания бабулек", а в свете понимания масштаба задачи.
Совершенно понятно, что анимации используются не только в играх. Также понятно, что в силу отсутствия некоего общего API для подобных вещей, каждый разработчик пилит свой велосипед для решения этой задачи.
Я вот, пока, даже не представляю себе такой "комбайн" для решения этой задачи "в общем". Хотя, штука может быть весьма популярной, если её удастся осуществить. Но, даже если представить 4 ОС и с десяток движков (если смотреть на игры, к примеру), то API будет просто гигантским. Впрочем, возможно, что я и ошибаюсь...
Записан
Digital Art
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #25 :
Апрель 18, 2021, 16:43 »
Цитата: tux от Апрель 18, 2021, 12:36
Я вот, пока, даже не представляю себе такой "комбайн" для решения этой задачи "в общем". Хотя, штука может быть весьма популярной, если её удастся осуществить. Но, даже если представить 4 ОС и с десяток движков (если смотреть на игры, к примеру), то API будет просто гигантским. Впрочем, возможно, что я и ошибаюсь...
Попробуем с чего-то начать. Давайте плясать от того "какой скрипт должен написать юзер", учитывая что он вовсе не горит желанием учить какие-то скрипты, поэтому чем меньше ему писать - тем лучше. Та же сцена "стадион-гол" (не вижу др предложений), думаю идеальным вариантом было бы
Код:
if (global_frame() == 100)
object.set_next_anim("apploud")
Задумка: метод set_next_anim автоматычно находит путь в графе от текущей анимации до "apploud" и помещает все найденные по дороге анимации на стек, дальше они тупо плеются. Конечно копаться в графе на пытоне нафиг надо, это на плюсах, со всеми удобствами, напр привлекая QStateMachine
Да, но что должно проигрываться дj кадра 100 и после того как кончится "apploud"? Нагружать этим скрипт никак не хочется. А не свалиться ли в "default"? Т.е. если текущая анимация кончилась и стек пуст - идем на default анимацию. А назначим дефаулт а приложении, там все равно список анимаций юзеру придется заполнять. А из скрыпта может дадим доступ.
Круто (червона рута)? Ну пока хватит, а то выходит "монолог"
. Критикуем, улучшаем, предлагаем
Записан
tux
Крякер
Offline
Сообщений: 399
Re: Анимашки, графы и пытон
«
Ответ #26 :
Апрель 19, 2021, 12:46 »
Вы с кода начинаете. А надо с плана.
Понятно, что хочется открыть IDE и начинать "кодить", но так, обычно, ничего не выходит.
Записан
Digital Art
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #27 :
Апрель 19, 2021, 14:06 »
Цитата: tux от Апрель 19, 2021, 12:46
Вы с кода начинаете. А надо с плана.
Это когда части кода очевидны, или хотя бы "достаточно ясны", тогда да, торопиться писать не следует. А здесь все наоборот - главная трудность что нет никакого понятия что юзер должен писать, с этого и надо начинать. А "план" в данном случае подозреваю будет набором общих слов (типа "интеграция" и.т.п.), в общем верных, но ничего не проясняющих.
Продолжим, немного усложним задачу: юзер хочет нечто типа "волны", т.е. когда забили гол, сначала встают болельщики передних рядов, потом более дальних и.т.п. Как это сделать скриптом ?
[off]Ну это точно ппц, дальше нравоучений дело не уйдет. Блин, ну хоть бы раз ошибиться
[/off]
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Анимашки, графы и пытон
«
Ответ #28 :
Май 12, 2021, 12:00 »
Немного покрутил, поприкидывал, ну в общем придумать скриптовое API - "сама по себе" задача несложная. Проблема в том что API просто сваливает работу на ф-ции которые еще надо реализовать (как в примере выше). И пока выходит что каждая новая задача требует новых ф-ций, типа "замаскированный хардкодинг"
Ну "на старте" это терпимо, нужно накопить какой-то набор базовых ф-ций.
Цитата: Igors от Апрель 19, 2021, 14:06
Продолжим, немного усложним задачу: юзер хочет нечто типа "волны", т.е. когда забили гол, сначала встают болельщики передних рядов, потом более дальних и.т.п. Как это сделать скриптом ?
Ну это слишком пошло/банально, для простоты считаем что это всем ясно.
Вот есть большой класс задач - подстройка анимации под заданную траекторию движения. Напр летит стая птиц - и каждая машет крылышками. Простое решение
Код:
// скрипт
anim = object.get_anim("flap")
anim.set_random_start(0.0, 2.0)
anim.set_random_speed(0.75, 1.25)
object.set_next_anim(anim)
Т.е. избавиться от однообразия чтобы стая не походила на взвод солдат идущих в ногу.
Ну а если "не так просто"? Перед работой я пью чай, курю и смотрю в окно, во дворе обычно летает десятка полтора голубей. И они совсем не "глупые птахи" чтобы все время крыльями хлопать - они машут при наборе высоты. А при снижении они "планируют", хотя в обоих случаях бывают редкие исключения (выглядят красиво).
Ну хорошо, юзер заготовил 2 короткие базовые анимации "flap" (взмах), и "plane" (планирование). Есть траектория движения (контейнер пар "номер кадра + позиция") и есть номер текущего кадра. На основании этой траектории нужно вычислить какую анимацию заряжать следующей (flap или plane). Как это сделать в скрипте?
Конечно "задача смешная", но проблема в том что нет никакой "матчасти" к которой можно привязаться. Напр
Цитировать
А откуда я знаю какой формат у "траектории движения"? В каком виде это получает скрипт? Вот вы мне все это дайте, распишите, а потом я покажу силу богатырскую (ну конечно сначала покритикую)
При этом почему-то совсем не приходит в голову что если у кого-то хватило ума расписать - то тем более хватит реализовать.
Др трудный момент - делать такие гибкие ф-ции API которые могли бы юзаться в др задачах. Как уже говорил, с этим пока напряженка. Напр взлет/посадка (тех же птичек) - пока нет идей. Ах, ну да
Цитировать
Вот видите? Теперь он уже говорит про взлет/посадку, он же все время меняет задачу!
Да, ну что поделать, задача такая, типа "динамическая" (не путать с динамическим программированием). Так редко, но бывает
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...