![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
Судя по отзывам NWN2 - принесёт столько же возможностей сколько и проблемм, особенно это касается контента ибо он хоть и выглядит лучше но пока довольно скуден. Так уж повелось что решать эту проблемму прийдётся контентщикам, но их всегда было мало, а теперь учитывая общий уровень сложности изготовления моделей будет ещё меньше и делать они будут ещё дольше.
Выход всётаки есть, нужно пойти тем же путём которым идут все крупные конторы - можно ведь упростить жизнь слабым контентщикам и ускорить разработку сильным, за счёт написания своих тулсов специально под конкретные задачи. В обшем идеей написания специализированных скриптов для МАХ-а - я обзавёлся довольно давно, правда получаться что-то стало только недавно (IMG:style_emoticons/kolobok_light/smile.gif) И всё же хотелось бы распросить 3Д-шный народ о том какие задачи разработки контента хотелось бы больше всего упростить или ускорить ? - это в принципе может быть что угодно: от "Выбрать боковые грани полигона", до кнопки "Сделать Красива!!!" Жду мыслей, по этому поводу. |
![]() |
![]()
Сообщение
#2
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
QUOTE(rdx @ Oct 12 2006, 04:00) [snapback]94465[/snapback] По порядку. Макс 7, скрипт при первом запуске и выставлении кол-ва плоскостей в 1 дал ошибку, дальше никак не работал. Перезапуск скрипта пошел на пользу, выбрал 2 плоскости, расстояние, нажал слайс - все получилось, UVW сохранены, но объекты преобразованы, а модификатор "trimesh" куда-то делся. Неплохо бы еще и имена объектов дописывать, а не заменять на новые. В принципе, напоминает аналогичные утилиты, только удобнее. - В данном скрипте команды универсальные потому от версии (от 6-ки) зависить недолжны, но опять же - кто его знает, - сам я писал на 8-ке. - Насчёт модификаторов и прочего, я их неучитывал ибо пока понятия неимею что будет на НВН2, а целится на НВН1 уже и смысла то много нет. Потому стоит простая проверска класса объекта если он не editable poly зачит конвертиться в такой, но само собой всякого рода хелперы и прочие не геометрические объекты в EPoly не переконвертишь - постараюсь учесть это в будующем. - Что за ошибку, точнее что написал (если кракозябры - просьба написать какие), разберусь ибо у меня всплывало что-то подобное, но я думал что исправил ошибку. - Что до имён то хотел спросить, а как их называть ? - объктов то становиться больше, да и до реза их может быть несколько. Куда и что дописывать, в имени каждого нового объекта ??? ---------------------- QUOTE(rdx @ Oct 12 2006, 04:00) [snapback]94465[/snapback] Но скрипт не делает той важной вещи, ради которой я и написал в тему . Это моя вина, что забыл сразу нормально объяснить. Я хотел что-то для разрезания объектов тайлов на исчезающие (fadeable) и остающиеся, на определенной высоте Z. После самого разрезания нужно достроить по получившимся на высоте Z точкам черные плоскости, не выходящие за рамки тайла (-500..500 по x,y). Например, разрезал колонну, а в место разреза вставил черную плоскость, построенную по точками, оставшимся после разрезания. Естественно, плоскость строится внутри колонны (ее полигоны противолежат нормалям полигонов колонны в месте разреза). Так значит, в крацах - примерный механизм: - по Z (будем считать Z в мировых координатах - т.е высота), проводить будем один рез. - за основу реза возьмём свободную плоскость, вот тут вопросы: - как это обыграть в интерфейсе, чтоб было наглядней, - основные варианты: 1. Фиксированная плоскость, наклон и положение регулируется через значения в интерфейсе ( скажем настройки такие Plane: rotation X, rotation Y, rotation Z, Position Z, кнопка Slice) всё остальное считает скрипт. Возможна легко реализуемая массовая обработка, - т.е для каждого объекта в отдельности (или в массе) по заданным параметрам создаться плоскость реза, которая потом будет служить основой для Slice функции. ( ну примерно как сейчас в TileSlicer-e). 2. Свободная плоскость реза, выберается по кнопке Pick Plane ( или что-то вроде неё). Сложность сдесь в том что нужно будет соблюдать определённые правила при расстановке плоскости, иначе будет сбоить (ну или если учту многие проверки, то просто откажется работать (IMG:style_emoticons/kolobok_light/smile.gif) ) Но интерфейс прост до безобразия две кнопки Pick Plane и Slice. - Далее на основе новых "резных" вершин создаётся заплатка, тут тоже есть вопросы: - Заплатка должна быть отдельной, или являться частью отделяемого объекта ? - Что делать с UVW этой заплатки, текстурить как-то по умолчанию - или оставить как есть, - т.к всё равно практически в 90% случаев прийдётся натягивать свой UVW. - Что делать с материалом, назначить по умолчанию, либо предложить к обязательному выбору в интерфейсе ? И как и выше, спрашиваю: как это всё потом именовать ? PS Спасибо, за баг - посмотрю может и у меня получиться его вызвать - тогда хоть исправлю. |
![]()
Сообщение
#3
|
|
Level 5 ![]() Класс: Клерик Характер: Lawful Good Раса: Человек NWN: Контент ![]() |
QUOTE(Ice Blade @ Oct 12 2006, 07:46) [snapback]94475[/snapback] - В данном скрипте команды универсальные потому от версии (от 6-ки) зависить недолжны, но опять же - кто его знает, - сам я писал на 8-ке. - Насчёт модификаторов и прочего, я их неучитывал ибо пока понятия неимею что будет на НВН2, а целится на НВН1 уже и смысла то много нет. Потому стоит простая проверска класса объекта если он не editable poly зачит конвертиться в такой, но само собой всякого рода хелперы и прочие не геометрические объекты в EPoly не переконвертишь - постараюсь учесть это в будующем. - Что за ошибку, точнее что написал (если кракозябры - просьба написать какие), разберусь ибо у меня всплывало что-то подобное, но я думал что исправил ошибку. - Что до имён то хотел спросить, а как их называть ? - объктов то становиться больше, да и до реза их может быть несколько. Куда и что дописывать, в имени каждого нового объекта ??? А рез нельзя сделать без конвертации? Потом, в нвн2 наверняка будут похожие модификаторы, только имена поменяются. А пока этот скрипт пригодится для нвн1, в него еще годик поиграют. Насчет ошибки см. прикрепленный файл. Вызывается так - запуск макса, вместе с ним nwmax и veltools, затем загрузка модели, затем открываю скрипт и поднимаю slicepanelY до 1. Лечится ресетом. С именами можно поступить так - к существующим добавить с01, с02, .. QUOTE Так значит, в крацах - примерный механизм: - по Z (будем считать Z в мировых координатах - т.е высота), проводить будем один рез. - за основу реза возьмём свободную плоскость, вот тут вопросы: - как это обыграть в интерфейсе, чтоб было наглядней, - основные варианты: 1. Фиксированная плоскость, наклон и положение регулируется через значения в интерфейсе ( скажем настройки такие Plane: rotation X, rotation Y, rotation Z, Position Z, кнопка Slice) всё остальное считает скрипт. Возможна легко реализуемая массовая обработка, - т.е для каждого объекта в отдельности (или в массе) по заданным параметрам создаться плоскость реза, которая потом будет служить основой для Slice функции. ( ну примерно как сейчас в TileSlicer-e). 2. Свободная плоскость реза, выберается по кнопке Pick Plane ( или что-то вроде неё). Сложность сдесь в том что нужно будет соблюдать определённые правила при расстановке плоскости, иначе будет сбоить (ну или если учту многие проверки, то просто откажется работать (IMG:style_emoticons/kolobok_light/smile.gif) ) Но интерфейс прост до безобразия две кнопки Pick Plane и Slice. - Далее на основе новых "резных" вершин создаётся заплатка, тут тоже есть вопросы: - Заплатка должна быть отдельной, или являться частью отделяемого объекта ? - Что делать с UVW этой заплатки, текстурить как-то по умолчанию - или оставить как есть, - т.к всё равно практически в 90% случаев прийдётся натягивать свой UVW. - Что делать с материалом, назначить по умолчанию, либо предложить к обязательному выбору в интерфейсе ? И как и выше, спрашиваю: как это всё потом именовать ? Пункт 2 наиболее прост, однако лучше сделать 1+2, т.е. дать возможность генерировать одну (только одну) горизонтальную плоскость на высоте Z, причем сразу на всю сцену (на несколько тайлов). Наклоны и все прочее можно оставить для отдельно создаваемых плоскостей. Заплатку создавать без текстурирования, отдельным объектом c именем, например, slplane01, нормали полигонов вверх (случаи, когда кому-нить потребуется вниз, редки, инвертировать можно быстро). Материал можно любой, легко переназначить потом. Заплатки почти наверняка нужно создавать отдельные для каждого порезанного объекта. Неясно только что делать в случае, если у разрезаемого объекта стенки открытые (угол дома, например).. Но это уже вручную можно. Выглядит это так: (*) Выполнить на высоте Z () Выбрать плоскость (*) для выбранных объектов () Для всех объектов сцены Порезать!
Прикрепленные файлы
|
![]() ![]() |
Текстовая версия | Сейчас: 12th May 2025 - 10:26 |