Дядя Миша
Ну я имею ввиду объявление данных которые нужно передавать по сети и так же принимать. Сам механизм. В терминах я не силён но надеюсь понял о чём я говорю.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Объявление там минимальное, но тут скорее вопрос в возможности контроля пользователем. Когда сделаешь всё прозрачно для юзера, обязательно скажут "а мы хотим это контролировать".
Дядя Миша писал: Объявление там минимальное, но тут скорее вопрос в возможности контроля пользователем. Когда сделаешь всё прозрачно для юзера, обязательно скажут "а мы хотим это контролировать".
Оно просто не должно быть размазано по проекту. Это самый большой недостаток ХЛСДК, когда тебе чтобы добавить какую то мелочь, нужно всюду её прописывать.
Цитата:
Crystallize писал: Ну анимацию переключать всегда приходится. С камерой поработать. Да и читать позиции джойнтов и углы костей тоже бывает нужно.
Такие вещи по идее движок сам разруливать должен. Я кажется понял, вам нужна не среда разработки, а СДК чтобы возиться.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Я кажется понял, вам нужна не среда разработки, а СДК чтобы возиться.
Я не могу привыкнуть к тому чтобы всё делать в одном окне, это кажется какой-то детской игрой. Утенок короче.
Я понял что ты имеешь под этим противопоставлением, но я никогда не думал о термине "среда разработки" в таком смысле, я всегда считал его эквивалентом сдк для кодинга.
В среде разработки они впихивают в одну программу весь функционал который иначе был бы разбросан по разным тулзам которые я по очереди запускал бы в винде. И вот когда они это впихвают всё в один интерфейс, они вынуждены изгаляться: уплотнять, группировать, скрывать кнопки, выпускать видики чтобы пользователь помнил где что выпадает и где что вообще на хоткей повесили. Т.е. всё за счёт интуитивности и более крутой кривой обучения.
А ведь всё что они делают, это пытаются подменить функционал виндового интерфейса в части запуска программ и загруза-выгруза файлов. При том что виндовый интерфейс я уже выучил, а среду разработки нужно учить заново.
Я об этом говорю потому что я перепробовал несколько программ для 3д-моделинга и большинство из них страдает от переуплотнения интерфейса, тот же Modo или Cinema4D начиная с R21.
Хотя я конечно могу найти плюсы: не возиться с командной строкой, не нужно задаваться вопросом где хранить промежуточные файлы и не нужно помнить какой из них главный а какой вспомогательный.
Crystallize
Я правильно понимаю что ты не можешь разобраться с одной программой с единым интерфейсом? А вот с кучей программ с разным интерфейсом можешь?
Откуда у вас эта тяга к линуксоидству когда всё максимально не стандартизировано и запутано?
Добавлено 02-08-2024 в 11:45:
Цитата:
Crystallize писал: В среде разработки они впихивают в одну программу весь функционал который иначе был бы разбросан по разным тулзам которые я по очереди запускал бы в винде. И вот когда они это впихвают всё в один интерфейс, они вынуждены изгаляться: уплотнять, группировать, скрывать кнопки, выпускать видики чтобы пользователь помнил где что выпадает и где что вообще на хоткей повесили. Т.е. всё за счёт интуитивности и более крутой кривой обучения.
Мне кажется у тебя крайне мало опыта с этим. Такие системы как правило изолированы друг от друга и вынесены в отдельные меню. Даже в той же Синеме. А то так мы дойдём до то того что браузер текстур в хаммере или окно настроек там тоже избыточны.
Цитата:
Crystallize писал: Хотя я конечно могу найти плюсы: не возиться с командной строкой, не нужно задаваться вопросом где хранить промежуточные файлы и не нужно помнить какой из них главный а какой вспомогательный.
Это работает когда тебе нужно вставить готовую модель. Но когда ты разрабатываешь кучу моделей с нуля и у тебя куча их версий, всё это чревато большой путаницей из всех этих файлов и конфигов.
В Юнити ты просто кидаешь сырую модель, даже без текстур. Задаешь первичные аргументы, всё остальное он делает за тебя. Дальше ты просто обновляешь модель, и он уже сам пересобирает её с теми аргументами которые ты выставил изначально. В Анриле плюс минус тоже самое.
Цитата:
Crystallize писал: Т.е. всё за счёт интуитивности и более крутой кривой обучения.
Это скорее вопрос к читаемости интерфеса. Я вот сейчас ЗБраш изучаю, там UI человек явно с другой планеты делал. Хотя его сейчас без проблем изучают девочки дизайнеры на первых курсах.
Добавлено 02-08-2024 в 12:02:
Цитата:
Crystallize писал: А ведь всё что они делают, это пытаются подменить функционал виндового интерфейса в части запуска программ и загруза-выгруза файлов. При том что виндовый интерфейс я уже выучил, а среду разработки нужно учить заново.
Ну зачем ты обманываешь? Почти в любой программе окно Save As или Open или Export/Import имеет виндовый или очень схожий с ним интерфейс. А вот аргументов консольных прог я нахлебался уже по уши. Вечно ему не нравятся то названия папок, то аргументы не так задал, то ошибки какие то вообще левые. И это тупо чтобы открыть файл. Например параметры для компилятора БСП, сейчас они мне кажутся само собой разумеющимися, и интуитивно понятными. Но когда я пытаюсь объяснить другим людям как это работает, я понимаю насколько это неудобное рудиментированное говно.
Не просто так для таких вещей оболочку пишут. Сама программа может быть консольной с этим проблем никаких, но оболочка у неё должна быть.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: В Юнити ты просто кидаешь сырую модель, даже без текстур. Задаешь первичные аргументы, всё остальное он делает за тебя
Это имеет смысл только для статичной геометрии. Загрузил - вставил.
Если это перс, там будут анимации, там будут IK-констрейнты, там будут джиггл-бонесы, события на кадрах анимаций, блендинги, позы для рэгдолла, контроллеры костей. Никаким чудом ты это не задашь через какие-то первичные аргументы. Тут нужен целый отдельный файл с описанием всего этого. Ну или прямо внутри файлов анимаций, хотя это куда менее удобно, т.к. одна и та же анимация может быть переиспользована много раз в одной и той же модели.
Дядя Миша писал: Если это перс, там будут анимации, там будут IK-констрейнты, там будут джиггл-бонесы, события на кадрах анимаций, блендинги, позы для рэгдолла, контроллеры костей. Никаким чудом ты это не задашь через какие-то первичные аргументы. Тут нужен целый отдельный файл с описанием всего этого. Ну или прямо внутри файлов анимаций, хотя это куда менее удобно, т.к. одна и та же анимация может быть переиспользована много раз в одной и той же модели.
Анимации делаются через ретаргетинг, или подтягиваются из экшенов самой модели. Констрейнты движковые уже или на сцене в префаб или конфиг делать да.
Вызывать анимации напрямую через код считается говнокодингом, ими управляет отдельный аниматор который управляет всеми блендингами, лупами, условиями переходов между ними и т.д. , а в коде просто передаётся ему событие.
Прикол то что ты перечислил это не является частью какой то конкретной модели, а может использовано много раз для разных подобных друг другу (например хуманоидных) моделей, для экономии ресурсов. Вшивать это отдельно в каждую модель - расточительство ресурсов и времени разработчиков которым придется каждый раз пересобирать модель чтобы добавить новые анимации.
Аниматор используют иногда даже для моделей рассчитаной для статичной геометрии, например дверей и лифтов, это экономит кучу кода, и позволяет им делать довольно сложную логику. Чем и плох формат .csm что тебе надо разные части одного уровня хранить в разных моделях.
Про позы для регдолла не очень понял, это же процедурная анимация? Ну если цель ограничить углы поворота костей чтобы он не принимал не естественные позы, то тут скорее уже используются констрейнты.
Ик это тоже констрейнт.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Сами анимации вызывать через код считается говнокодингом
Ну не анимации - акты. Это ещё в первой халфе было. Вызываешь акт, а он сам выбирает какую-то анимацию. Можно и через аниматор конечно, зависит в первую очередь от навороченности модели.
Насколько там всё взаимосвязано и одни события переходят в другие и как к этому относится AI - доминирует или управляется. Тут масса подходов возможна, где-то проще, где-то сложнее. Если по сюжету монстры могут только бегать и атаковать - аниматор тут излишество.
Цитата:
FiEctro писал: Прикол то что ты перечислил это не является частью какой то конкретной модели, а может использовано много раз для разных подобных друг другу (например хуманоидных) моделей, для экономии ресурсов
Сами анимации - да, могут быть общими. Банк анимаций, например.
Цитата:
FiEctro писал: Чем и плох формат .csm что тебе надо разные части одного уровня хранить в разных моделях.
Ну вообще-то можно и в одной, но у тебя исчезает контроль на уровне дисковых файлов. Ты уже не понимаешь что у тебя там внутри намешано.
А это исходник, а не результат компиляции. Но если речь идёт о библиотеке префабов, то да, возможно такой подход в чём-то будет оправдан. Но опять же - материалы снаружи лежат в любом случае, текстуры снаружи. Любая попытка всё это упаковать в один файл делает только хуже. Исходники обязаны быть разбросаны по папкам. Потом компилятор всё это скомпонует в единый объект.
Добавлено 02-08-2024 в 13:08:
У Юнити я к слову заметил один баг в архитектуре. Из-за того, что доступ к ресурсам там осуществляется через идентификаторы, полученные на основе каких-то вычислений содержимого ресурса, в Юнити любое редактирование исходного ресурса автоматически приводит к созданию его копии. А потом ещё, ещё и ещё. Я с этим столкнулся ещё когда импортировал деревню викингов. Оно мне там на ровном месте насоздавало копий зачем-то.
Заманался их удалять.
Дядя Миша писал: Ну вообще-то можно и в одной, но у тебя исчезает контроль на уровне дисковых файлов. Ты уже не понимаешь что у тебя там внутри намешано.
А это исходник, а не результат компиляции. Но если речь идёт о библиотеке префабов, то да, возможно такой подход в чём-то будет оправдан. Но опять же - материалы снаружи лежат в любом случае, текстуры снаружи. Любая попытка всё это упаковать в один файл делает только хуже. Исходники обязаны быть разбросаны по папкам. Потом компилятор всё это скомпонует в единый объект.
Ресурсы это ресурсы, сконфигурированый персонаж это уже префаб. Никто в здравом уме не вшивает текстуры и материалы в модель. Все используют подход сорса в плане хранения текстур и материалов. Если уж хочется чтобы было всё в одном файле, можно собрать бандл (аналог кутришного .pak) где будут все ресурсы и префабы, кидаешь на сцену и вуаля уже всё настроено. Там же можно его распаковать, отредактировать и на его основе сохранить уже свой префаб и бандл. Более того такие бандлы могут содержать и самый обычный код (а не какую то кастрированную систему), например свой собственный контроллер управления. Или скрипт поведения ИИ для конкретно этого монстра, а эти бандлы ещё можно передавать по сети
Цитата:
Дядя Миша писал: У Юнити я к слову заметил один баг в архитектуре. Из-за того, что доступ к ресурсам там осуществляется через идентификаторы, полученные на основе каких-то вычислений содержимого ресурса, в Юнити любое редактирование исходного ресурса автоматически приводит к созданию его копии. А потом ещё, ещё и ещё. Я с этим столкнулся ещё когда импортировал деревню викингов. Оно мне там на ровном месте насоздавало копий зачем-то.
Я не замечал такое, видать у тебя хеш сумма каким то невообразимым способом побилась. При обновлении файла его копия не создаётся. Но вот если ты полезешь через виндовый проводник кидать файлы, то этот может насоздавать тебе дупликатов, это да.
Добавлено 02-08-2024 в 13:27:
Цитата:
Дядя Миша писал: Насколько там всё взаимосвязано и одни события переходят в другие и как к этому относится AI - доминирует или управляется. Тут масса подходов возможна, где-то проще, где-то сложнее. Если по сюжету монстры могут только бегать и атаковать - аниматор тут излишество.
Ты сам наверное сталкивался когда какая то простая вещь, порой начинает разрастаться в сложную систему и порой это всё сложно поддерживать. Аниматор как раз призван защитить твой код от излишнего усложнения. Тебе остаётся только отправлять персонажу акты, а то как хитроумно должна переходить и блендиться анимация это уже обрабатывает логика аниматора. Ну вот сам прикинь, тебе надо писать код для дверей, отдельный код для платформ, поездов и т.д. Нафига? Когда ты просто можешь запихать эту довольно неказистую логику в аниматор и просто вызывать акты ну и передавать может какую то параметрическую информацию типа насколько сильно откроется дверь.
К примеру:
MyObj.Animator.Play("OpenDoor", 10.15f);
Вот весь код простейшей двери.
Причём один аниматор может использоваться многоразово, это не значит что его нужно создавать персонально для каждой двери.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Но вот если ты полезешь через виндовый проводник кидать файлы, то этот может насоздавать тебе дупликатов, это да.
Не помню. Может я и правда так кинул сцену.
Цитата:
FiEctro писал: а то как хитроумно должна переходить и блендиться анимация это уже обрабатывает логика аниматора
Это у меня есть, но аниматор разделён на низкоуровневую и высокоуровневые части. Низкоуровневая в движке, высокоуровневая в скриптах на Шоте. Там просто отправляешь команду, типа повернуть голову или наклониться, а как оно внутри блендится - уже движок разруливает.
Цитата:
FiEctro писал: К примеру:
MyObj.Animator.Play("OpenDoor", 10.15f);
Вот весь код простейшей двери.
А как эта дверь будет толкать игрока или блочиться об него?
Дядя Миша писал: А как эта дверь будет толкать игрока или блочиться об него?
А как это относится к анимации? Это уже физика. Отлови столкновение и останови анимацию. Толкать - а колайдеры у тебя не умеют толкаться?
Цитата:
Дядя Миша писал: Это у меня есть, но аниматор разделён на низкоуровневую и высокоуровневые части. Низкоуровневая в движке, высокоуровневая в скриптах на Шоте. Там просто отправляешь команду, типа повернуть голову или наклониться, а как оно внутри блендится - уже движок разруливает.
Ну так да, там ещё можно типа силу задавать или условия когда какая анимация будет выполняться или блендиться.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А как это относится к анимации? Это уже физика
А зачем дизайнеру забивать себе голову?
Если он делает открывание двери анимацией он же вправе ожидать что эта анимация будет толкат игрока и делать что положено.
Если же нет - как ты предлагаешь синхронизировать анимацию с физикой?