Перейти к контенту

FantomICW

Опытные
  • Число публикаций

    365
  • Регистрация

  • Последнее посещение

  • Дней в топе

    14
  • AMKoin

    68 [Подарить AMKoin]

Весь контент пользователя FantomICW

  1. FantomICW

    Работа с текстурами

    [spoiler=Создание тайлов (Автор: Юрий Рогач (Ursus))]Данный урок посвящен подготовке текстуры-тайла в программе Adobe Photoshop. Автор: Юрий Рогач (Ursus) Определение текстурного Тайла имеет огромное множество значений, также, как и способов его применения. Данный урок посвящен в большей степени способу высокодетального текстурирования трёхмерных игровых локаций, создаваемых в Maya, с разделом, в котором даны некоторые советы и рекомендации подготовки непосредственно самой текстуры-тайла в программе Adobe Photoshop. Поэтому для конкретного случая воспользуемся определением: Тайл (Tile) - текстура изображения поверхности 3D-объекта, предназначенная для заполнения областей с помощью укладки способом "черепица", т. е. размещая копии текстуры бок о бок, как керамическую плитку. Текстура называется тайленной, если её края копий соединяются без видимых швов (левые с правыми и верхние с нижними) . Наиболее удобно иметь тайлы в виде квадратной текстуры. И, для игрового моделирования, обязательное условие: размер сторон Тайла в пикселях должен быть кратен степени два: 128, 256, 512, 1024, и д.р. Tiles и Photoshop Прежде, чем загрузить текстурный тайл в Maya, и продолжить работать там с ним в ней, попробуем расширить область данного урока, исследовав несколько способов подготовки его в Photoshop-е. Существует огромное множество библиотек готовых тайленных текстур, а также специальных сетевых ресурсов, обзоры которых можно найти и на данном сайте. Также, существуют специальные программы и приложения, которые могут алгоритмически генерить готовые тайлы. Но сейчас рассмотрим несколько способов создания тайла, используя в виде исходного материала растровое изображение нужной нам фактуры, изготовленное или с помощью цифровой аппаратуры, или же взятое из внешних источников. Сперва опробуем несколько способов изготовления регулярных тайловых текстур, которые при наложении на объекты при удаленном просмотре не позволяют различить на их поверхности повторяющихся рисунков, рождённых фактурой тайла. Для примера возьмём фото страницы старой книги. В моем случае оно было размера 1716 х 2332 пикселей. Всегда работает правило - чем больше размер исходника, и чем выше его качество, тем лучше может быть качество самого конечного тайла, и тем больший размер его может быть изготовлен. Поэтому можно было предположить, что из этого образца вполне неплохо может быть изготовлен тайл 1024 х 1024, а тайл размером 512 х 512 будет полностью соответствовать всем нормам. С помощью рамки выделения Marquee Tool (Прямоугольная область) в режиме Fixed Aspect Ratio (Заданные пропорции), Width: 1 Height: 1 (Высота: 1 Ширина: 1) выберем на фото участок бумаги, наименее отмеченный характерными пятнами или бросающимися в глаза деталями. А затем, используя Crop (Кадрирование) (Image > Crop) (Изображение > Кадрировать), удаляем всё не вошедшее в выделение. Полученный размер картинки после Crop имеем 1428 х 1428. Чтобы далее было удобнее работать с ней, округляем ее размер до 1400 х 1400. А затем, с помощью инструмента Healing Brush Tool (???) замазываем наиболее заметные пятна на текстуре, чтобы при тайлинге они не повторялись синхронным рисунком. Ниже приведён пример до (слева) и после (справа) использования Healing Brush Tool-а: Способ первый: применим к измененной текстуре "фильтр" Offset (Сдвиг) (Filter>Other>Offset...) (Фильтр > Другие > Сдвиг), не забывая про возможно созданные новые слои (Используя Healing Brush Tool, как и другие инструменты в Photoshop-е, желательно все изменения и добавления вносить в отдельный слой, сохраняя снизу орининальный). В окне Offset, зная размер текстуры (у нас он 1400 х 1400), вносим в строку Horizontal (По горизонтали) +700, оставляя остальные настройки по умолчанию. Получаем сдвиг текстуры ровно наполовину, который производит видимый вертикальны шов по центру, но с гарантией того, что левый и правый края совпадают своим рисунком абсолютно. Поэтому далее, используя Healing Brush Tool аккуратно замазываем центральный шов, добиваясь равномерности рисунка или фактуры по всему центральному полю текстуры. Всякие более темные или более светлые участки придётся разделить на неравномерные пятна, или же даже вообще сравнять с оттенком основной площади. Иногда для ускорения процесса приходится также воспользоваться и Clone Stamp Tool (Штамп), но им надо работать довольно осторожно, чтобы не оставлять заметными границы работы кисти этого инструмента. По завершении сокрытия шва, надо повторить работу "фильтра" Offset (Filter>Other>Offset...), но уже по вертикальному направлению, после чего также придется замазать образовавшийся шов, правда на сей раз горизонтальный. В конце этой операции мы при определенной аккуратности уже сможем получить вполне пригодный для работы Тайл бумаги размером 1400 х 1400 пикселей. Теперь, уменьшив его размеры до технологически подходящего разрешения 1024 х 1024 пикселей, мы увеличим его качество, хотя бы частично убрав неизбежные искажения, полученные при фотографировании или же компрессии, если вы пользовались клипартами, или же фотографиями из какой-нибудь базы. Уменьшив же тайл до 512 х 512 пикселей, вы еще больше усилите качество вашей текстуры. Для последующего сохранения его стоит пользоваться только форматами, не приводящими к потерям достигнутого вами качества, избежав компрессию. Рекомендуется, например, формат TGA. В финале тайл будет выглядеть подобно ниже приведенной текстуре, края которой при соединении с её же копиями не должны образовывать видимых швов: Способ второй: выделим всю область первоначальной заготовки тайла (без заметных пятен) и применим к ней "фильтр" Pattern Maker (???) ( Filter > Pattern Maker...). В открывшемся окне настроек можно долго экспериментировать со значениями, и пробовать заново генерацию тайла. Причем, даже при одинаковых значениях новые генерации дают новые рисунки тайла. Для данного примера я воспользовался настройками: Получившийся при данном быстром способе тайл выглядит следующим образом: Его также можно отредактировать Healing Brush Tool, при условии, что не будут затронуты полученные границы рисунка. Теперь, и его уменьшив до технологически подходящего разрешения 1024 х 1024 пикселей, мы снова увеличим его качество. Ничто не мешает и этот тайл уменьшить до 512 х 512 пикселей. Изготовление нерегулярных тайловых текстур выглядит несколько сложнее, хотя при определенном навыке также не должно вызывать каких-то особых затруднений. Для примера возьмём фото скальной породы, при изготовлении тайла которой важно сохранить детали и формы минеральных вкраплений и выпуклостей. Размер исходника был 3591 х 2426 пикселей: Сперва с помощью рамки выделения Marquee Tool в режиме Fixed Aspect Ratio, Width: 1 Height: 1 выберем на фото наиболее подходящий участок с наименьшей потерей площади. Из выделения с последующим изменением размера получаем первую заготовку с размером, который должен быть кратный цифре 1,5, при последующем делении на которую, мы бы могли потом для удобства получить округленное значение размера текстуры, из которой потом придётся делать тайл. В нашем случае получилась заготовка 2400 х 2400 пикселей. При делении значения 2400 на 1,5 впоследствии мы сможем получить текстуру 1600 х 1600 пикселей. Заготовку сохраняем новым слоем в формате PSD, так как нам придётся делать несколько слоев при изготовлении тайла: Далее слой с заготовкой разделяем на два, причем один из них (основной) должен иметь размер по горизонтали такой, каким мы изначально предполагали размер конечной текстуры. В нашем примере: 1600 пикселей. Второй слой будет в размере по ширине в 1/2 от 1600: 800 пикселей: Затем организуем наш PSD файл так, чтобы размер образа был выровнен под размер нижнего основного слоя (в нашем случае 1600 х 2400 пикселей), а верхний, дополнительный, был приснаплен к правому краю : Далее, применим к нижнему основному слою "фильтр" Offset (Filter>Other>Offset...), с опцией Horizontal относительно 1/2 ширины этого слоя (1600 пикселей) в +800. А к верхнему применим маску Add layer mask (Добавить слой-маску), которую по правому краю наполовину ширины уже этого дополнительного слоя (в нашем случае на 200 пикселей в ширину) зальём черным цветом, получив на этом участке прозрачность верхнего слоя (Пользоваться Eraser Tool (Нужны знания работы со слоем-маской) настоятельно не рекомендуется не только для данной цели, но для многих других при работе над текстурами в Photoshop-е, так как тогда всегда теряется возможность обратного редактирования удалённых зон): Затем, редактируя маску, и используя топологию рисунка верхнего слоя, стараемся наиболее логично совместить рисунки верхнего и нижнего слоев: В конце процедуры получаем подобное видимое совмещение верхнего слоя с нижним: На данном этапе мы уже получим тайлинг этой текстуры по левому и правому краям. Теперь повторим все вышеописанные процедуры для того, чтобы сделать тайлинг по верхнему и нижнему краям, завершив, по сути, изготовление нормального четырёхстороннего тайла. На сей раз повторное описание я пропущу, ограничившись лишь картинками, иллюстрирующими последовательные шаги работы, очень похожие на те, что уже были описаны выше: При редактировании маски на сей раз придется следить за тем, чтобы не изменились ее правая и левая границы, чтобы при составлении тайла они совпадали и не вызывали в дальнейшем видимого шва. В финале получаем готовый тайл размером 1400 х 1400 пикселей. Теперь, уменьшив его размеры до технологически подходящего разрешения 1024 х 1024 пикселей, мы увеличим его качество, также убирая неизбежные искажения, полученные при фотографировании или же компрессии. Уменьшив же и этот тайл до 512 х 512 пикселей, мы еще больше усилим качество нашей текстуры: Применение данного тайла бывает ограничено тем, что при частой его укладке довольно заметен рисунок (или вернее его повторение) фактуры самого тайла, особенно при удаленном просмотре объекта с этой текстурой. __________________________________________________________________ Об авторе: Юрий Рогач Родился в 1966 г. в г.Сморгонь, Беларусь, где и официально проживает до настоящего времени. Закончил биофак БГУ (Минск). В компьютерной графике с 1998 г. С 2002 г. работает в игровой индустрии, временно переехав в Москву. Непосредственно участвовал в проектах «Корсары 2», «Пираты Карибского Моря», «Pirates of the Burning Sea», «Капитан Блад», «Корсары 3», «Корсары 3: Сундук Мертвеца», «Корсары: Возвращение Легенды». С пиратской тематикой, как видно, повезло. Так же, как и с заметными должности во всех этих проектах. В настоящее время является арт-директором одного из проектов компании Акелла. Одновременно - арт-директор студии «Seaward.ru». С моей же (assassinDemon) стороны были сделаны небольшие пометки в переводе инструментов (не всех) (Основан на официальной русификации) для небольшого облегчения работы новичкам. *вынесено в отдельный пост в рамках переоформления шапки.
  2. Давай конкретней, товарищ. Ну, в туториалах, к примеру, такое вот есть: <function_on_stop>xr_effects.pri_a28_talk_ssu_video_end</function_on_stop> <function_check_start>outro_cond.skadovsk_neutral_cond</function_check_start> <action id="use" finalize="1">xr_effects.jup_b32_place_scanner</action>
  3. FantomICW

    Кураторам тем, дубль два

    Доброго дня! Предлагаю свою кандидатуру в качестве куратора этих тем: Текстурирование Еще текстуры С уважением. Готово. Желаем успехов!
  4. FantomICW

    Скриптование

    @Romann, не в шапке конечно, но лови) Smart_terrain (в простонароде - гулаг) Интересный способ настройки логики для гулагов Скриптовая часть игровой логики
  5. FantomICW

    Работа с текстурами

    @Akello, все же лучше вчитаться еще раз. Больше туторов правильных нету. Хотя, Genior неплохой тутор про бампы сделал относительно недавно. Во всяком случае, основы там даны. Главное понять общую систему - а там уже все с опытом, всякие специфические приемы.
  6. FantomICW

    Разговоры о модах

    Доброго времени суток, господа! При всем уважении к Заурусу и его команде...Скриншоты, мягко говоря, не очень впечатляют. Судя по скринам, идет в сторону "Альтернативы" и "Дианы". Пройдемся по скринам: 1. Бампы стен (по сторонам) - неправильные. Резко очень. У ребят текстурщик есть? Модели - промолчу...Мне такое не по душе, но если впишется классно в сюжет, ладно, потерпим "депутата" и "дворецкого" в Зоне. 2. Бампы просто ужасные. Издевательство над глазами. Карту нормалей более мягкую сделать никак нельзя? Спекуляр затемнить тоже не судьба? Ну, а атмосфера средневекового замка чувствуется Каморка сама неплохая очень даже. 3. Я понимаю, что сейф не в лучшем состоянии, но опять же, бамп стоит сделать менее рельефным. Погоны на милиционере улыбнули) Эх, физика Сталкера...Из лучше по алгоритму обвесов прицепить. А то гнутся, как пластилин. 4. Chebvolet стоят случайно не перед входом в поместье того "депутата" на первом скрине?) Для Зоны жирновато. 5. Ничего не скажешь, все хорошо. 6. Текстуры, бампы - "браво"! А вот узнать, что Вано делает у Сидора было бы интересно. 7. Что это за место? Кто поставил монумент сталкеру? На сама модель - респект. 8. Какова суть этой картинки? Подгрузили дефолтную анимацию снайпера из игры к модели в Милкшейп. Если модель новую показать, то да, классно было бы. А так... 9. Улыбнуло тоже) Посмотрим, для чего милиция в Зоне, если там есть военные) Хотя, похоже, действие будет в каком-то городке происходить. 3 и 4 хлопцы (считая слева) - клуб молодых мам какой-то) Нет, правда, на них эти броники смотрятся, как конверты, которые для ношения грудничков. Как-то так, вообщем.
  7. FantomICW

    Работа с текстурами

    У lafugix'a есть свой урок на инсайде (смотри подпись). Так что вопрос был закрыт достаточно давно Довольно сложно понять с первого раза, написано для людей, которые ориентируются в фотошопе, основных понятиях касательно текстур, но если вчитаться, попрактиковаться, то все выходит. Единственное, что не полностью раскрыто, так это как правильно делать карты высот/карты нормалей/спекуляр карты. Но если погуглить и самому поразмышлять часик по вопросу двух первых карт, вопрос снимется. По спекуляру - вообще ничего такого сложного нет.
  8. @k01jan, попробуй вот так: actor_menu.dead_body_search_wnd_closed()
  9. @Сталкер Лом,вот, Шокер что-то предлагал, может поможет. Ссылка
  10. FantomICW

    Скриптование

    @aleksn09, по идее, ты строки прописал в нужное место. Это ведь постоянное обновление. Что-то мне подсказывает, что нужно пробовать переписать зажигание, используя движковую функцию-проверку is_on(). Как-то так, что ли: if db.actor:position():distance_to(self.object:position()) <= 4 and not self.campfire:is_on() then self.campfire:turn_on() end
  11. @ммихаилл, я просто привел пример секции сквада с монстрами. Спавнятся так же, как и НПС Как ты хочешь заспавнить: по условию, с начала игры или респавн?
  12. @ммихаилл, делается все точно так же, как и сквад НПС. Вот, к примеру, секция сквада с бюррерами из squad_descr_jupiter.ltx: [jup_b208_burers_squad]:online_offline_group faction = monster npc = burer_normal, burer_normal target_smart = jup_b208 spawn_point = jup_b208_burer_lair_1_spawn_point story_id = jup_b208_burers_squad
  13. @Старлей,@_Val_, спасибо, ребята. Таки в условии проблема была. Я догадывался, что оно может сбоить, с другой стороны смотрю, в роде же можно так...Спасибо еще раз
  14. Доброго дня! Создал одну сложную логику рестриктора, вроде все как надо, но на определенном этапе действий получаю вылет: scripts\xr_logic.script:777: attempt to compare nil with number
  15. FantomICW

    Работа с текстурами

    @CuJIbBEP, на Инсайд-Вики в разделе текстурирования есть статейка о thm. Я там добавил "Примечание по ошибке thm".
  16. @IGOR™,здравствуй. Попробуй вот так: В ui_main_menu.script после if dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() добавь: elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then db.actor:give_info_portion("gar_quest_captive_reward_done")
  17. FantomICW

    Работа с текстурами

    Если не секрет, что ты имеешь ввиду? Брать старую текстуру bump и редактировать только спекуляр, вместо создания нового бампа?
  18. FantomICW

    Работа с текстурами

    @Stalker_Monolit, желательно, скинь свою текстуру bump. Как уже сказал @_Val_, дело в карте бликов (Specular Map), которая находится в текстуре bump на красном канале. Этот канал и требуется "почернить".
  19. Все верно, в аргументе вызова через логику указывается id_сквада:смарт.
  20. @karavan, тебе нужен какой-то конкретный предмет проверить?
  21. @дядяСаша, срабатывают два каких-то спейс рестриктора, которые телепортируют ГГ и начинают кат-сцену. Просто до перехода нужно выдать инфопорции: ("jup_first_meet_made") ("jup_b217_welcome_faded") ("jup_b217_welcome_guide_talked") ("jup_b217_pp_end_in_scene") ("jup_b217_welcome_tech_talked") ("jup_b217_guide_welcome_end") ("jup_b217_tech_welcome_end") ("jup_b217_tech_instruments_start") ("jup_b217_stalker_tech_met")
  22. @FEET,так НПС должен на смарте находится + с эксклюзивной логикой, чтобы все работало на 100%. Я обычно |a=анимка добавляю в look. Работает.
  23. @FEET, предлагаю не жить позавчерашним днем, и создать НПС более удобным способом - через сквад. Если не знаешь как это делать, скажи, помогу разобраться. Для спавна сквадов с НИ даже отдельный файл есть - simulation.ltx. В настройках сквада в configs/misc/squad_sescr_.ltx можно задать параметр spawn_point - вей-поинт, где заспванится сквад. А в настройках смарта, где будет НПС, нужно в секции [exclusive] задать путь к логике НПС: [exclusive] название_эксклюзивной_логики = локация\файл_с_логикой.ltx
  24. @Маданах, подробней, пожалуйста. Какие значки? В КПК? В мультиплеере? На нашивках НПС?
  25. FantomICW

    Скриптование

    @riddik121, на слово enemy. То есть выходит: function glavny_vrag(first_speaker, second_speaker) second_speaker:set_relation(game_object.enemy, first_speaker) end
×
×
  • Создать...