Перейти к содержимому

Добро пожаловать на ФОРУМ AIMGAME
Зарегистрируйтесь, чтобы получить доступ к важным темам и разделам форума...
Войти Зарегистрироваться
Фотография

Скрипт ARMA3: Перекраска/ретекстур моделей

скрипт арма покраска ретекстур

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1
exploadead

exploadead

    Президент

  • Администраторы
  • 1 322 сообщений
Здесь рассмотрены азы данного процесса, для вашего лучшего понимания.

Если нужна пошаговая инструкция, она тут, но пока лишь краткая и только по униформе.

Рассмотрим несколько консольных команд для быстрой перекраски техники/униформы:
 
- проверка своих скинов в редакторе
- проверки самой возможности покраски той или иной модели
- вытаскивание текстур из шифрованых и нешифрованых файлов pbo
 
 

Ниже представлено несколько простых команд, с помощью которых можно узнать, где конкретно располагаются файлы текстур для модели на которую направлен курсор:

_ct = cursorTarget;                             //- определяем цель на которую смотрим
hint str (getObjecttextures _ct);               //- выводим сообщение на экран со списком текстур цели
copyToClipboard str (getObjecttextures _ct);    //- выводим в буфер обмена список текстур (затем можно вставить в блокнот)

Затем вытащить эту текстуру из нешифрованного файла будет проще простого, ведь в полученной информации указан полный путь к ней > распаковываем указанный там pbo и проходим в нужную папку.

Для шифрованых модов ситуация сложнее, самый простой способ вытащить текстуру - скопировать полученный выше путь к ней и указать его в качестве основной текстуры объекта "Пользовательская текстура 10х10" в редакторе. Затем выставить камеру обзора поровнее и сделать скриншот.

 

Также существуют утилиты для взлома шифрованых pbo, но как правило они приватные, либо платные.

 

Следующие команды бывают полезны для получения исчерпывающей инфы об объекте (название класса, модели, текстур и тд., подробнее у бисов - https://community.bi...impleObjectData ):

_vp = vehicle player;                                   //- техника в которой находится игрок (если он пеший, то это равно player)
hint str (_vp call BIS_fnc_simpleObjectData);
copyToClipboard str (_vp call BIS_fnc_simpleObjectData);
 

Определим несколько основных цветов:

_wht = "#(argb,8,8,3)color(1,1,1,0.6,co)";      //- белый
_blk = "#(argb,8,8,3)color(0,0,0,1,co)";        //- черный
_red = "#(argb,8,8,3)color(0.25,0,0,1,co)";     //- красный
_blu = "#(argb,8,8,3)color(0.1,0.15,0.3,1,co)"; //- синий

 

Быстрая перекраска униформы на себе:

player setObjectTextureGlobal [0, _wht];
или
player setObjectTextureGlobal [0, "wedding_dressBB.paa"];

- в первом случае форма красится просто в белый цвет, переменную которого мы определили выше.

- во втором - в текстуру (файл текстуры должен лежать в той же папке что и миссия в которой мы всё это делаем).

 
 
Перекраска техники:
_ct = cursorTarget;
_ct setObjectTextureGlobal [0, _red];
_ct setObjectTextureGlobal [1, _wht];
_ct setObjectTextureGlobal [2, _blk];

- перекрасится авто на которое мы в данный момент смотрим: слои 0, 1, 2 - определяют разные части модели, как правило слой 0 - основной слой и является корпусом техники, слой 1 - обычно это колёсные диски, слой 2 - чаще всего стёкла. Однако у разных мододелов всё бывает по разному, слои перепутаны, смещены и тд. 
 

А бывает, что слои вообще не используются, и тогда какой бы слой мы не поставили - перекрашивание не сработает.

В этих случаях путь к файлу текстуры прописан жёстко внутри самой модели P3D, и чтобы ее перекрасить необходимо менять эту текстуру в самом моде.

 

Также может быть гораздо больше слоёв, например у D3S разработчика слои с 20 по 26 - определяют семь символов регистрационного номера:

_ct setObjectTextureGlobal [20, _wht];
_ct setObjectTextureGlobal [21, "\d3s_cars_core_18\license\X.paa"];
_ct setObjectTextureGlobal [22, "\d3s_cars_core_18\license\7.paa"];
_ct setObjectTextureGlobal [23, "\d3s_cars_core_18\license\7.paa"];
_ct setObjectTextureGlobal [24, "\d3s_cars_core_18\license\7.paa"];
_ct setObjectTextureGlobal [25, "\d3s_cars_core_18\license\X.paa"];
_ct setObjectTextureGlobal [26, _wht];

- в данном примере вместо 7-ми символов на номере будет всего 5 - по центру - Х777Х, а первый и седьмой - просто белое поле.

 

Для быстрых проверок в редакторе можно использовать JPG формат скинов (их быстрее сохранять чем формат РАА):

_ct setObjectTextureGlobal [0, "skin.jpg"];
_ct setObjectTextureGlobal [2, "steklo.jpg"];

- в данном случае на корпус накладывается скин skin.jpg, на окна - steklo.jpg, и не забывайте, что эти файлы должны лежать рядом с mission.sqm в которой вы работаете в этот момент. При окончательном сохранении скинов в мод формат JPG уже не подойдёт, итоговый проект необходимо сохранять только в РАА.

 



#2
Olimpic

Olimpic

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

У меня вопрос по этим командам "_ct = cursorTarget; //- определяем цель на которую смотрим
hint str (getObjecttextures _ct); //- выводим сообщение на экран со списком текстур цели
copyToClipboard str (getObjecttextures _ct); //- выводим в буфер обмена список текстур (затем можно вставить в блокнот)"

 

В редакторе навожу прицел на бота которого одел, весь шмот на нем нужен для ретекстура,  в консоль вбиваю первую строку отдельно жму ЕНТЕР или все сразу но ничего не пишет в буфер не сохраняет, пожалуйста поподробней для новичка уточните что сделать еще нужно?



#3
exploadead

exploadead

    Президент

  • Администраторы
  • 1 322 сообщений

У меня вопрос по этим командам "_ct = cursorTarget; //- определяем цель на которую смотрим
hint str (getObjecttextures _ct); //- выводим сообщение на экран со списком текстур цели
copyToClipboard str (getObjecttextures _ct); //- выводим в буфер обмена список текстур (затем можно вставить в блокнот)"

 

В редакторе навожу прицел на бота которого одел, весь шмот на нем нужен для ретекстура,  в консоль вбиваю первую строку отдельно жму ЕНТЕР или все сразу но ничего не пишет в буфер не сохраняет, пожалуйста поподробней для новичка уточните что сделать еще нужно?

 

Чаще всего с ботами так не работает. Бот не сам покрашен в каких-то слоях, у него прописана форма, жилет, шлем... это всё отдельные объекты по сути. И даже через переменную на боте - не получится взять с него текстуру формы (при условии что мы сами его не красили скриптом).

 

Однако! Встречаются униформы, которые позволяют снять инфу о нулевом слое с бота!

Даже среди стандартных армовских форм есть и те и другие.

 

Например форма U_BG_Guerrilla_6_1 выдаёт инфу о своей текстуре вышеописанным способом -

 

Прикрепленный файл  Arma3_x64 2020-06-30 22-44-57-446.jpg   75,87К   0 Количество загрузок:

 

А вот форма U_B_CombatUniform_mcam не выдаёт никакой инфы о своей текстуре. Так себя ведут и большинство модовских униформ.

 

В таких случаях получить текстуру формы можно иначе:

- возьмем эту же U_B_CombatUniform_mcam

- сделаем поиск по файлам игры по слову "U_B_CombatUniform_mcam", чтобы найти все PBO где она упоминается

- поскольку мы знаем, что это стандартная форма в арме и существует она в ней уже очень давно, то скорее всего искать надо в основных самых первых аддонах армы - в папке Addons
- нашлось 6 файлов, но самый подходящий по логике - characters_f.pbo - открываем его
- в аддонах/модах большинство классов и параметров описывается в файле config.cpp (config.bin если забинарен) - он нам и нужен
- в файле конфига находим нашу форму, а именно ее класс -     class U_B_CombatUniform_mcam : Uniform_Base {.....
- в нём нам важна строка - hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Suitpacks\data\suitpack_soldier_blufor_co.paa"}; - это и есть путь к файлу скина этой формы
- заходим в папку Characters_F\Common\Suitpacks\data\ и берем оттуда файл suitpack_soldier_blufor_co.paa - вот он наш скин :)

 

Бывает так, что пбо зашифрованы...  в этом случае открыть аддон и вытащить скин можно только с помощью приватных/платных инструментов по расшифровке.







Темы с аналогичным тегами скрипт, арма, покраска, ретекстур

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных