Приветствую Вас Гость!
Суббота, 20.04.2024, 09:00
Главная | Регистрация | Вход | RSS

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
FS Форум » Моделирование » Скриптинг » Как прописать скрипт грязи на трактор. (На форуме уже есть, но я хочу предложить вам свою)
Как прописать скрипт грязи на трактор.
}I{EKAДата: Пятница, 13.01.2012, 17:31 | Сообщение # 1
Группа: Мастера
Сообщений: 108
Репутация: 15
Статус: Offline
Итак, сейчас я расскажу как прописать грязь, на любую технику, работающую на сторонних скриптах. Сложного здесь ничего нет, если вам нужно испачкать одну или две текстуры, но вот с трактором МТЗ, пришлось мне повозится но, поверьте, оно того стоит.
Что нам понадобится:
1. Сам скрипт Washable.lua и файлик dirtShader.xml к нему прилагается. Скачать
2. GIANTS Editor 4.1.9 Я рекомендую именно эту версию т. к. у 4.1.7 нету возможности автоматического подсчета индексов. Скачать его Вы можете здесь
3. Adobe Photoshop и желательно DDS плагин к нему, его вы можете скачать на просторах инета.
4. Кисти для Фотошоп`а (для рисования грязи на текстурах), я их закинул в архив со скриптом.
5. Немного фантазии и конечно-же желания:)

Приступим.

1. Устанавливаем вышеперечисленный софт. (Желательно что-бы игра и гигант были установлены на диске "С")

2. Берем архив с подопытным, копируем в корень диска C например (это не критично, главное что-бы по пути к .i3d файлу не было русских символов), жмем на него правой кнопкой мыши, затем "Извлечь в..." и извлекаем все содержимое архива на диск "С", затем сам архив удалить!.

3. Для начала нам нужно нарисовать грязь на текстурах техники. А какие текстуры за что отвечают, спросите вы, это нужно все делать методом тыка, для этого открываем .i3d файл, редактируемой техники GIANTS Editor`ом, и видим наш (пока еще) чистый трактор, мы на него смотрим рассматриваем (зажать Alt+ЛКМ+ПКМ), затем идем в папку с текстурами и начинаем "пробивать" незнакомые текстуры, путем изменения имени или расширения файла, и так отключаем, включаем один за одним и не забываем после включения отключения текстур жать в гиганте на вот эту кнопку (перезагружать текстуры, если же вы отключили текстуру и перезагрузили текстуры в гиганте, та текстура, которую Вы отключили - не появится и Вы сразу это заметите), после того как нарисовали - сохраняем в ту же папку из которой брали текстуру, только под другим именем.("чистые" текстуры должны остаться в той-же папке и под тем-же именем) Например текстуру "krilo.png" после обработки грязью на выходе из фотошопа мы подпишем "krilo_dirt.png". И так с каждой, нужной вам текстурой.

4. Закидываем Washable.lua и файлик dirtShader.xml в корневую папку мода (это там где находится modDesc.xml)

5. Ну как? Это всего лишь начало, дальше будет круче.
Теперь нам нужно прописать наши текстуры в .i3d файл, это мы сделаем с помощью обычного блокнота или ему подобных.

На данном этапе попрошу Вас внимательно читать каждое мое слово, иначе может возникнуть куча вопросов!

Закрываем гигант, открываем .i3d файл блокнотом, в самом верху видим пути к "чистым" текстурам, мы видим примерно следующее:

Code
  <Files>    
                <File fileId="1" filename="GAZ52/CD2.png" relativePath="true"/>    
                <File fileId="2" filename="GAZ52/KUZOV.png" relativePath="true"/>    
                <File fileId="3" filename="GAZ52/Steklo.png" relativePath="true"/>    
                <File fileId="4" filename="GAZ52/X33.png" relativePath="true"/>    
                <File fileId="5" filename="GAZ52/bahroma.png" relativePath="true"/>    
                <File fileId="6" filename="GAZ52/best_light.png" relativePath="true"/>    
                <File fileId="7" filename="GAZ52/black.png" relativePath="true"/>    
                <File fileId="8" filename="GAZ52/cvet.png" relativePath="true"/>    
                <File fileId="9" filename="GAZ52/disc.png" relativePath="true"/>    
                <File fileId="10" filename="GAZ52/farmer_diffuse.png" relativePath="true"/>    
                <File fileId="11" filename="GAZ52/frstff.png" relativePath="true"/>    
    </Files>


fileId файлов я выставил по порядку, но у Вас стоять по порядку они не будут, нам нужно найти последний у меня он 11, а у вас может быть другой. Нам нужно прописать файл dirtShader.xml , для этого копируем любую строку и вставляем в самом низу блока "<Files>" , вместо пути к текстуре пишем dirtShader.xml так же как и здесь только fileId ставим свой (который получился после последнего):

Code
<File fileId="12" filename="dirtShader.xml" relativePath="true"/>


Теперь так-же прописываем нарисованные "грязные" текстуры, fileId везде должны быть разными!
Теперь поднимаемся вверх и смотрим на "чистые" текстуры, жмем "Ctrl+F" и забиваем fileId="ХХ" в поиск (вместо XX пишем fileId "чистой" текстуры, для которой Вы нарисовали "грязную" текстуру), нам выдает что-то подобное:

Code
<Material name="default" materialId="37" ambientColor="0.588 0.588 0.588">    
                  <Texture fileId="12"/>    
                </Material>


что мы делаем дальше, берем вот этот код:

Code
customShaderId="12"


(Вместо цифры "12" впишите fileId, под которым у Вас стоит файл "dirtShader.xml")
И вставляем его в конец строки "Material"
Было:

Code
<Material name="default" materialId="37" ambientColor="0.588 0.588 0.588">


Стало:

Code
<Material name="default" materialId="37" ambientColor="0.588 0.588 0.588" customShaderId="12">


затем берем вот этот код:

Code
     <Custommap name="dirtTexture" fileId="XX"/>    
                  <CustomParameter name="dirtScale" value="0 0 0 0"/>


и вставляем его под строкой <Texture fileId="12"/>
Было:

Code
    <Material name="default" materialId="37" ambientColor="0.588 0.588 0.588" customShaderId="12">    
                  <Texture fileId="12"/>    
                </Material>


Стало:

Quote
<Material name="default" materialId="37" ambientColor="0.588 0.588 0.588" customShaderId="12">
<Texture fileId="12"/>
<Custommap name="dirtTexture" fileId="XX"/>
<CustomParameter name="dirtScale" value="0 0 0 0"/>
</Material>


Вместо ХХ ставим fileId "грязной" текстуры, которую готовили на замену.
Идентичным способом прописываем остальные "грязные" текстуры. По окончании сохраняем!
6. После прописки "грязных" текстур открываем .i3d файл гигантом. Пора бы уже и с ним познакомится...
Итак слева вы видите окно сценографа, там в дереве расположены все детали вашего мода, вот они как раз нам сейчас и нужны...
Открываем Modname.xml и в самом конце перед тегом
"</vehicle>"
пишем такой код:

Code
          <!-- Waschbar -->    
             <dirt dirtInterval="0.1" cleaningInterval="20" updateInterval="0.1" >    
              <dirtComponent index="0>0|0|0" />    
              <dirtComponent index="0>0|0|1" />              
              <dirtComponent index="0>0|1" />    
              <dirtComponent index="0>1|0|0" />    
              <dirtComponent index="0>1|0|1" />    
                </dirt>


В этом коде мы будем записывать индексы пачкающихся деталей.
Затем лезем в гигант и смотрим какие нужно ставить в дереве детали, вот здесь то и пришла на помощь именно версия 4.1.9, а главная фишка в том - что выделив деталь справа в окне с атрибутами и можно смотреть ее индекс, а не считать, (как это было в 4.1.7) вот здесь вот и пишется индекс выделенной детали:



Внимание Индексы берутся только с синих кубиков, и до самой последней детали в группе, выделяете деталь в дереве, а в окне с атрибутами Вам выдает ее индекс, тот самый индекс нужно вставлять без каких либо изминений в строки
"<dirtComponent index="0>0|0|0" />" между лапок, вместо этих нолей. Строки можно и нужно создавать, если вам не хватает.

7. Все самое страшное уже позади, теперь нам остается только подключить наш скрипт.
Для этого открываем modDesc.xml и пишем в блоке "<specializations>"
такую вот строку:

Code
  <specialization name="washable" className="Washable" filename="Washable.lua" />


Например:

Quote
<specializations>
<specialization name="MTZ892" className="MTZ892" filename="MTZ892.lua"/>
<specialization name="ESLimiter" className="ESLimiter" filename="ESLimiter.lua" />
<specialization name="operatingHours" className="OperatingHours" filename="OperatingHours.lua" />
<specialization name="washable" className="Washable" filename="Washable.lua" />
</specializations>


Затем в блоке "<vehicleTypes>" пишем строку:

Code
  <specialization name="washable" />


Например:

Quote
<vehicleTypes>
<type name="MTZ892" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
<specialization name="motorized" />
<specialization name="steerable" />
<specialization name="hirable" />
<specialization name="aiTractor" />
<specialization name="MTZ892"/>
<specialization name="ESLimiter" />
<specialization name="operatingHours" />
<specialization name="frontloader" />
<specialization name="washable" />
</type>
</vehicleTypes>


Ну вот и все, я же говорил что это не сложно, а вы сидите сейчас как будто бомбу только что обезвреживали...
Извините за много текста, но такое двумя словами объяснить сложно. Если остались какие-то вопросы - пишите.


Не люблю немецкие короткометражки, в них всегда все заканчивается одним и тем-же... ©
 
P@vruh@Дата: Пятница, 13.01.2012, 17:43 | Сообщение # 2
Группа: Мастера
Сообщений: 318
Репутация: 11
Статус: Offline
Жека, так покажи ж что в конечном щёте получилось и что было... оч интересно smile

Я катаюсь на Nikon Coolpix L100, а также на ВАЗ 2101, и ЮМЗ 6М(М- потому что модифицированный))))))))
 
}I{EKAДата: Пятница, 13.01.2012, 17:53 | Сообщение # 3
Группа: Мастера
Сообщений: 108
Репутация: 15
Статус: Offline
P@vruh@, Держи.


Не люблю немецкие короткометражки, в них всегда все заканчивается одним и тем-же... ©
 
Фартовый86Дата: Воскресенье, 13.05.2012, 17:26 | Сообщение # 4
Группа: Экскурсанты
Сообщений: 30
Репутация: 0
Статус: Offline
}I{EKA,дак что же в итоше выходит?а то скрин не открываеться sad

Добавлено (13.05.2012, 17:26)
---------------------------------------------
}I{EKA,и ещё как зажать вот это

Quote (}I{EKA)
(зажать Alt+ЛКМ+ПКМ)
???? dry
 
F_O_I_TДата: Воскресенье, 13.05.2012, 21:45 | Сообщение # 5
Группа: Техники
Сообщений: 16
Репутация: 2
Статус: Offline
}I{EKA, спасибо я с первого раза все прописал правильно.. хорошо и.внятно обяснил... smile
 
серега71Дата: Среда, 30.05.2012, 18:53 | Сообщение # 6
Группа: Экскурсанты
Сообщений: 5
Репутация: 0
Статус: Offline
а как его убрать такой скрипт
 
}I{EKAДата: Воскресенье, 03.06.2012, 18:50 | Сообщение # 7
Группа: Мастера
Сообщений: 108
Репутация: 15
Статус: Offline
серега71, Ну че за вопросы? Я же расписал тут в подробностях что и как делать что-бы поставить его, здесь описано какие строки за что отвечают, что и как прописывается... Ну неужели так сложно отключить скрипт, и проделать все в обратном порядке?

Не люблю немецкие короткометражки, в них всегда все заканчивается одним и тем-же... ©
 
серега71Дата: Вторник, 05.06.2012, 19:23 | Сообщение # 8
Группа: Экскурсанты
Сообщений: 5
Репутация: 0
Статус: Offline
}I{EKA, да не я имел ввиду скрипт на следы от колес
 
Northern_StrikeДата: Среда, 06.06.2012, 11:38 | Сообщение # 9
Группа: Администраторы
Сообщений: 524
Репутация: 39
Статус: Offline
Quote (серега71)
да не я имел ввиду скрипт на следы от колес

А что тогда пишешь в этой теме? Прочитай название темы сначала.
 
саня1996Дата: Среда, 22.08.2012, 20:57 | Сообщение # 10
Группа: Экскурсанты
Сообщений: 60
Репутация: 0
Статус: Offline
подскажите одну вещь! все сделал как написано, в итоге все грязниться купил кер обошел его несколбко раз обмыл камаз, но грязь как была на нем так и осталось!почему ? wacko
 
FS Форум » Моделирование » Скриптинг » Как прописать скрипт грязи на трактор. (На форуме уже есть, но я хочу предложить вам свою)
  • Страница 1 из 1
  • 1
Поиск:

Для добавления необходима авторизация