Много лет назад я обещал, что версия Джека, даже минорная, будет увеличена только в том случае, если я добавлю поддержку префабов. Я сдержал своё обещание. Версия Джека 1.2 готовится к бета-релизу в Стиме, и одной из ключевых её фич будут именно префабы.
В этой теме я кратко расскажу, как устроены префабы в Джеке. Если кратко, то интерфейс основан на привычном хаммеровском, вам не придётся привыкать к новому. Но в то же время есть некоторые интересные особенности. Во-первых, каждому префабу можно (хотя и не обязательно) создать картинку-превью при создании. Окошко справа в диалоге создания префаба - это 3д-вид, который можно крутить мышью или специальными кнопками, а также приближать-отдалять. Также есть фильтры, чтобы спрятать ненужные служебные текстуры или остановить текстурную анимацию. Вы выбираете удачный ракурс, и редактор сохраняет картинку в библиотеку префабов. Если ракурс вам в итоге не понравился - ничего страшного, эту картинку можно будет потом отредактировать в Фабрике префабов (Prefab Factory, F5). Главное - делать это в правильном игровом профиле, чтобы подгрузились нужные текстуры и модели.
Создать префаб можно как в имеющейся библиотеке, так и сразу же создать новую библиотеку. Джек поддерживает два формата: Object Library (*.ol) - это формат библиотек VHE, и J.A.C.K. Object Library (*.jol) - несмотря на сходство названия, формат принципиально отличается от хаммеровского. Он поддерживает произвольные секции, а также различные форматы для каждого префаба в отдельности (например, в библиотеке можно хранить префабы и в формате JMF, и в RMF, и в VMF, если угодно). Пока, впрочем, Джек всегда сохраняет префабы в JOL в родном JMF-формате. Наученный горьким опытом совместимости версий формата JMF, я обеспечил для формата JOL полную совместимость в обе стороны. Иными словами, гарантируется, что старые версии Джека всегда загрузят JOL-библиотеки, созданные в новых версиях Джека, и наоборот, новые версии Джека без проблем подхватят JOL-библиотеки, созданные в старых версиях, включая бесплатную (только вот когда в ней появятся префабы, я пока сказать не могу).
Поддержку записи OL-формата я добавил для тех, кто всё ещё не уверен, что Джек самый лучший редактор карт на свете удобнее и стабильнее VHE, и хочет иметь возможность работать с библиотеками в обоих редакторах. Поддержка эта полноценная - то есть Джек свободно читает и пишет OL-файлы, как говорится - стоя, лёжа, от бедра! Но и это ещё не всё. Но обо всём по порядку.
Интерфейс вставки префабов остался классическим. Они добавляются на карту в режиме Block Tool. Библиотеки перечислены в выпадающем списке, как в VHE. Джек также умеет загружать префабы из субдиректорий, в этом случае субдиректория будет показана так: "[subdir] Library Name". Выделяем рамку и жмём Enter, и префаб появляется на карте. Что делает кнопка "Insert Original Prefab", думаю, пояснять не нужно, вы и так знаете.
И здесь мы видим вторую интересную особенность Джека - при вставке префаба он автоматически исправляет все связки targetname-target (что соответствует режиму "Preserve internal connections in cloned entities" при копировании). То есть больше не нужно разгруппировывать взрывающийся ящик и менять имя у env_explosion и env_shooter, а заодно "Target on break" у бреакабли - об этом Джек позаботится сам. Что, кстати говоря, как бы по дефолту ожидается от префабов. Я был очень удивлён, что в Хаммере это не реализовали. Ну, может, в новых версиях уже починили - я не интересовался.
Переходим к самому интересному - диалогу "Фабрика префабов". Если в Хаммере он довольно убог, то в Джеке это полноценный "файловый менеджер", который позволяет добавлять, переименовывать и удалять библиотеки, импортировать префабы (и даже целые библиотеки в другие библиотеки, включая разные форматы), экспортировать префабы, открывать их для редактирования, менять порядок префабов в библиотеке и т.д. Кроме того, помимо обычных описаний, задаваемых пользователем, Джек поддерживает ещё и, так сказать, техническое описание, которое он генерирует автоматически. Это формат префаба, количество брашей, энтитей, уникальных текстур и т.п. Ну и конечно же, тут можно сгенерировать или отредактировать превью префаба.
Вот так выглядит одна из стандартных библиотек префабов для Half-Life в формате VHE (*.ol):
Как видите, в таких библиотеках нет ни превьюшек, ни технического описания, ну правда, откуда им взяться? Но Джек может их создать. Для этого нужно кликнуть на кнопку "Generate" в поле "Information", а также нажать "Edit" -> "Prefab Preview". И вуаля!
Теперь самое важное: и превью, и техническое описание Джек сохранит прямиком в библиотеку VHE, то есть в OL-файл. И самое интересное. Эту модифицированную библиотеку преспокойно загрузит обычный Хаммер, даже самой древней версии! Вот такая вот совместимость. Правда, если вы пересохраните OL-библиотеку уже в Хаммере, то превьюшка и дополнительная информация будут утеряны, ну тут уже ничего не попишешь.
А вот я сконвертировал одну из стандартных библиотек халфовских префабов в формат Джека, немного "причесав". Кстати, в комплекте с Джеком 1.2 будут идти все эти стандартные библиотеки в формате Джека. Я сначала хотел приложить библиотеки в "расширенном" формате Хаммера, ну то есть с превьюшками, а потом подумал - это, пожалуй, может создать проблему с копирайтами. А джековские префабы это по сути уже совсем другие файлы, в другом формате.
Ну и напоследок упомяну ещё одну очень важную фичу Джека. Какого бы вы треша не наворотили в Фабрике префабов - поудаляли библиотеки и префабы из них, добавили кучу новых, переименовали, испортили превьюшки и т.п. - достаточно нажать магическую кнопку "Cancel", Джек спросит, уверены ли вы сбросить изменения, и если да - то всё вернётся взад. Так что не бойтесь экспериментировать. Правда, если вы нажмёте Apply - то отменить изменения уже ожидаемо не сможете. Ну а в Хаммере все изменения применялись сразу же: удалил префаб значит удалил, если нет бэкапа библиотеки - ССЗБ. Такие дела.
Ставьте лайки, оставляйте комментарии, подписывайтесь на мой канал, хотя нет, это немного из другой области, а у нас тут форум. Ну вы поняли. О выходе беты 1.2 будет объявлено дополнительно.
API для плагинов будет позже.
А в чём проблема бета-версии по коду? Код же общеизвестен, это как ключ, висящий на гвоздике рядом с дверью. Просто хочу, чтобы перед тем как включать бету, люди знали, куда писать багрепорты.
Фишка прикольная, но интерфейс конечно не интуитивный.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
XaeroX
Ну можно было их дрег дропом туда сюда таскать вместо всего этого обилия кнопок, а кнопка для генерации превьюшек вообще не понимаю зачем, почему сразу автоматом их не собирать?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Ну можно было их дрег дропом туда сюда таскать
Куда туда-сюда? Почему ты считаешь, что все эти кнопки - исключительно для таскания префабов?
Цитата:
FiEctro писал: почему сразу автоматом их не собирать
Наверное потому, что автоматический ракурс тебя может не устроить? Или ты считаешь, что интуитивный интерфейс - это когда в софт внедрён ИИ, который подбирает самый удачный ракурс? Если бы у меня был такой ИИ, я бы именно его и продавал, а не Джек.
В библиотеку префабов. Её можно вынести например там где у тебя консоль. Аналогично можно сделать библиотеку моделей там же.
Вот например как устроена ассет библиотека в Блендере:
Цитата:
XaeroX писал: Почему ты считаешь, что все эти кнопки - исключительно для таскания префабов?
Это ты опять мне приписываешь то чего я не говорил.
Но вот эти Add, Remove, Edit, Export можно вынести на ПКМ меню например. Посмотри как винда с файлами работает. Сейчас это похоже на какой то дос.
Цитата:
XaeroX писал: Наверное потому, что автоматический ракурс тебя может не устроить? Или ты считаешь, что интуитивный интерфейс - это когда в софт внедрён ИИ, который подбирает самый удачный ракурс? Если бы у меня был такой ИИ, я бы именно его и продавал, а не Джек.
Ну другие то редакторы как то без ИИ обходятся?
Можно посчитать ббокс для того чтобы высчитать расстояние и влазит ли он в фрустум камеры. Ну, а угол обычно 45 градусов по горизонтали и 25 по вертикали подходит для большинства префабов.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Вот например как устроена ассет библиотека в Блендере:
Но ты же, надеюсь, понимаешь, что в блендере совершенно иной UX в целом?
Цитата:
FiEctro писал: Но вот эти Add, Remove, Edit, Export можно вынести на ПКМ меню например.
Можно. Но в хаммере-то они в виде кнопок. А кто первым прибежит спрашивать где ротатабля кнопки? Ты, конечно же!
И вообще, люди дропали рейтинги продуктам в подвал и за меньшие отклонения от их ожиданий.
Цитата:
FiEctro писал: Ну, а угол обычно 45 градусов по горизонтали и 25 по вертикали подходит для большинства префабов.
А для меньшинства не подходит, и что ты предлагаешь делать?
Ракурс уже подбирается автоматически. Посмотри внимательно на первую картинку в посте. Там ничего делать не нужно, просто нажать ок, если ракурс устраивает.
XaeroX писал: Но ты же, надеюсь, понимаешь, что в блендере совершенно иной UX в целом?
Библиотеки ассетов плюс минус везде одинаково работают.
Цитата:
XaeroX писал: Можно. Но в хаммере-то они в виде кнопок. А кто первым прибежит спрашивать где ротатабля кнопки? Ты, конечно же!
И вообще, люди дропали рейтинги продуктам в подвал и за меньшие отклонения от их ожиданий.
Да нет, вполне очевидно пкм на ассетах нажимать. Так же и папки делать. А эти все Add/Edit только путают. Ты проводником в винде никогда не пользовался?
Цитата:
XaeroX писал: А для меньшинства не подходит, и что ты предлагаешь делать?
Ракурс уже подбирается автоматически. Посмотри внимательно на первую картинку в посте. Там ничего делать не нужно, просто нажать ок, если ракурс устраивает.
Я даже не могу представить таких случаев, если только не ставить объект специально по нормали к камере.
Ничего не мешает вынести твою фишку с изменением камеры так же в меню на ПКМ. Но по дефолту лучше сгенерировать сразу все превьюшки, чтобы не открывать каждый префаб по отдельности.
Информацию о префабе можно выводить просто подсказками при наведении курсора. Этот элемент сжирает у тебя уйму места.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Библиотеки ассетов плюс минус везде одинаково работают.
Ну-ну.
Цитата:
FiEctro писал: Да нет, вполне очевидно пкм на ассетах нажимать.
Скажи честно - сколько раз ты в Хаммере открывал окошко Prefab Factory? Два или три раза за всё время? Где ты собрался нажимать ПКМ?
Кстати, меню по ПКМ у меня тоже имеется.
Цитата:
FiEctro писал: Ты проводником в винде никогда не пользовался?
Как давно проводник стал идеалом UI/UX?
Цитата:
FiEctro писал:
Ничего не мешает вынести твою фишку с изменением камеры так же в меню на ПКМ
Ну и кто кому тут свои мысли приписывает?
С чего ты взял, что нельзя открыть редактирование превью по ПКМ? Я это где-то написал?
Цитата:
FiEctro писал: Но по дефолту лучше сгенерировать сразу все превьюшки
Какие - все? Ты способен в один клик создать сразу десять префабов из одного и того же выделения?
Ну надо же хоть немного головой думать, когда критикуешь интерфейс...
Добавлено 26-02-2024 в 12:00:
Цитата:
FiEctro писал: Информацию о префабе можно выводить просто подсказками при наведении курсора.
Понятно. Вот такие люди и разрушили нормальный UX. В новомодном и современном софте принято каждый раз ждать пару секунд, пока всплывёт подсказка, чтобы посмотреть информацию о префабе. А когда подсказка скроется, если ты случайно двинешь мышкой - ну ещё раз наведёшь и подождёшь. И в самом деле, куда спешить, если у нас впереди целая вечность. Да?
Цитата:
FiEctro писал: Этот элемент сжирает у тебя уйму места.
Сам посмотри на свои скриншоты. Чтобы посмотреть превьюшку тебе надо уже заранее знать какой префаб выбрать. В окне слева они все у тебя показываются одинаковым значком. Почему сразу не выводить там превьюшки, как в проводнике?
Цитата:
XaeroX писал: Скажи честно - сколько раз ты в Хаммере открывал окошко Prefab Factory? Два или три раза за всё время? Где ты собрался нажимать ПКМ?
Кстати, меню по ПКМ у меня тоже имеется.
Как давно Prefab Factory в Хаммере "стал идеалом UI/UX?" Может его вообще от балды написали?
Цитата:
XaeroX писал: Как давно проводник стал идеалом UI/UX?
К нему все привыкли, и да он намного удобнее большинства интефейсов разрабатываемых во времена хаммера.
Цитата:
XaeroX писал: С чего ты взял, что нельзя открыть редактирование превью по ПКМ? Я это где-то написал?
Так ты и не писал что можно По крайней мере я не увидел. Зато увидел кучу огромных кнопок на пол экрана.
Цитата:
XaeroX писал: Какие - все? Ты способен в один клик создать сразу десять префабов из одного и того же выделения?
Ну надо же хоть немного головой думать, когда критикуешь интерфейс...
Ну, а если кто то с тобой поделился библиотекой? Сиди тыкай каждый префаб по отдельности? Согласен, это удобнее проводника, для садомазахиста
Цитата:
XaeroX писал: Понятно. Вот такие люди и разрушили нормальный UX. В новомодном и современном софте принято каждый раз ждать пару секунд, пока всплывёт подсказка, чтобы посмотреть информацию о префабе. А когда подсказка скроется, если ты случайно двинешь мышкой - ну ещё раз наведёшь и подождёшь. И в самом деле, куда спешить, если у нас впереди целая вечность. Да?
Это троллинг такой? Ты прекрасно знаешь что эти вещи настраиваются. К чему утрировать?
Цитата:
XaeroX писал: Где могла быть ваша реклама!
Шутки шутками, а на низких разрешениях или при большом скейле интерфейса у тебя не влазит окно настроек целиком в экран. По крайней мере раньше так было, не знаю как щас.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: вполне очевидно пкм на ассетах нажимать. Так же и папки делать.
Твоя проблема в том, что ты пытаешься домысливать интерфейс в своей системе, в которой присутствуют некие "ассеты". Хотя когда мы мапали под халфу в 2003-2004 годах, то даже слова такого ругательного не знали. При этом народу нравился хаммеровский менеджер текстур, который с точки зрения ассетов точно так же неудобен и не интуитивен, ведь там тоже нельзя создавать папки, и по ПКМ там неко кова меню нет.
Цитата:
FiEctro писал: Я даже не могу представить таких случаев
Ну вот ты представить не можешь, а я много раз сталкивался с такими случаями. То есть вид-то конечно имеется, префаб в кадре. Но картинка - некрасивая, неприятно смотреть.
С другой стороны, люди порой такие скриншуты со своих карт выкладывают, что диву даёшься - у людей вообще какое-то чувство вкуса в 2D имеется? Представление о гармонии, пропорциях, приятной перспективе и т.п.?
Добавлено 26-02-2024 в 12:15:
Цитата:
FiEctro писал: Почему сразу не выводить там превьюшки, как в проводнике?
Наверное, потому что значки мелкие, и ты на них ничего толком не разглядишь.
Цитата:
FiEctro писал: Как давно Prefab Factory в Хаммере "стал идеалом UI/UX?"
Это не идеал, это просто поведение Хаммера, который мы копируем, разве нет? Если была бы цель сделать редактор с современным и продвинутым UI/UX, я бы сделал Тренчбрум. Но его уже делают другие. И у него имеется своя обширная аудитория, насколько мне известно.
Цитата:
FiEctro писал: Так ты и не писал что можно По крайней мере я не увидел.
Я физически не могу предугадать все вопросы. А ты, вместо того чтобы задать вопросы про возможность того-то и того-то, попросту сделал выводы на основе собственных предположений.
Цитата:
FiEctro писал: Ну, а если кто то с тобой поделился библиотекой? Сиди тыкай каждый префаб по отдельности?
Джек не предполагает, что маппер будет ежедневно импортировать библиотеки. Он предполагает, что библиотеки будут создаваться постепенно. Но я согласен, для случая импорта UI не идеален. Впрочем, это всё мелочи, которые можно допилить и потом.
Цитата:
FiEctro писал: Ты прекрасно знаешь что эти вещи настраиваются.
Честное слово, даже не представляю, как настроить задержку при показе хинта. Это где-то в реестре параметр?
Цитата:
FiEctro писал: а на низких разрешениях
Владельцы низких разрешений страдают почти в любом софте, ну кроме разве что изначально заточенного под мобилки. И никого это не парит.
Но и тут согласен, идеальный UI должен работать даже на 800х600. Джек в этом плане не идеален.