Старая форма входа

С чего начать. Часть 5 - Редактирование модели.

   Я вас категорически приветствую (с)Гоблин, наступил долгожданный момент увидить, всё мной нижеописанное - в действии. Это будет заключительный урок из серии "С чего начать". Сегодня я расскажу о том, как из обычной модели для cs 1.6 сделать нечто другое, - то что нравится вам, ну в данном случае это понравилось мне. В статье пойдёт речь не совсем о редактировании, больше это похоже будет на дополнение, некий апгрейд. Стартовая модель ак-47 - поехали.

   Перед тем как приступить к импорту модели сделайте следующую процедуру:

   Это нужно для того чтобы единицы измерения  макса совпадали с движком half-life.

   Далее всё за планом, декомпилим v_ak47.mdl, импортим файл f_ak47_template.smd:



1. Парсер настроек SMD файла.
- Skip Mesh - не импортить геометрию(меш);
- Skip Animation - не импортить анимацию, следственно не будет костей и привязки.
В нашем случае нужно оставить пустыми оба чекбокса т.к. нужно всё.

2.Настройки SMD импортёра.
SMD Statistics(информация о файле):
- 42 кости;
- 258 вертекса;
- 454 фейса;
- 1  кадр анимации;
- 8 текстур.
Mesh Options(опции геометрии):
- Import mesh - импортить геометрию;
- Rebuild smoothing normals - сохранить группы сглаживания при импорте;
- Import materials - тут всё ясно.
Bone/Animation Options(настройки костей/анимации):
- Import bones - импортить кости;
- Use dummy for orphan bones - использовать dummy как первичную кость;
- Use dummy for end bones - использовать dummy как конечную  кость;
- Skin mesh to bones - привязать геометрию к костям;
- Import first frame (reference) only - импортировать лишь первый кадр, используется для reference моделей, здесь также можно ставить галку;
- Reverse animation - обратная анимация;
Misc. Options(другие опции):
- Convert from left handed coordinate space - ставьте галку если импортите модель с левой руки(понять правильно);
Примечание: dummy - вспомогательный объект в максе, может использоваться в роли кости.
Важно: reference-модель - не содержит абсолютно никакой анимации, в движке half-life используется для передачи в анимацию - геометрии, текстур и привязки костей(в нашем случае это f_ak47_template.smd).

   Зачастую, помимо основной модели для удобства, я импортирую и модели рук, они находятся в файлах lhand.smd(левая) и rhand.smd(правая). Импорт рук происходит по тому же принципу - что и основная модель, на запрос Import Name Conflict введите имя объекта(любое, желательно чтобы описывало его, в моём случае "left_hand" - для левой руки)

Важно: импорт рук не обязательно делать в референсную модель, я делаю это исключительно для удобства, чтоб видить как проходят руки через основную модель, не затрагивает ли её части. Повторюсь это лишь для удобства, делать не обязательно. Перед экспортом основной модели f_ak47_template.smd модели рук(кости не трогать) нужно будет удалить.

   А сейчас давайте временно скроем кости которые мешают осмотреть модель:

Переходим во вкладку Display, и хайдим(скрываем) кости.
Важно: перед экспортом обязательно включите показ костей

   Подключаем текстуры в сцену:
   1. Идём в File -> Asset Tracking или Shift+T.
   Asset Tracking - служит для отображения абсолютно всех текстур в сцене, а также подключаемых ies-светильников и шейдеров. Если в друг текстуры не отображаются, - нужно нажать кнопку Refresh(обновить) в левом верхнем углу.
   Выделяем все текстуры при помощи Shift+LB(левая кнопка мыши), затем RB - выбираем пункт Set Path(выбрать путь) и находим нужную нам папку.

2. На втором скрине я уже выбрал путь к текстурам(у вас может быть другой путь), но ещё не нажал кнопку OK, видно как все текстуры находятся в статусе File Missing, то есть - не найдены.

3. Жмём OK, видим что все текстуры перешли в статус Ok - это именно то, что нам нужно. Закрываем Asset, но текстур как небыло так и нету)), - это излишки макса. Мы могли бы пройтись по каждому материалу отдельно и проставить отображение во-вьюпорте,  ну это довольно неприятная процедура, , а я насчитал там аж 8 материалов, поэтому убиваем 2-х зайцев - сохраним файл и отобразим текстуры.

4. File -> Save As... - сохраняем в формате .max(желательно в той же папке).

5. Я назвал файл ak47_remake, сейвим...

6. Сбрасываем сцену File -> Reset.

7. Открываем только что сохранённую,  File -> Open... находим, открываем.

   Результат:

  Далее делаем то самое дополнение, лепим из бокса:

   Дополнением будет Red Dot так называемая - красная точка, порылся в нете и нашел неплохой скрин:

Совет: перед тем как начать что-либо моделить, текстурить - поищите в сети референсы(примеры)

  Так как смысл данного урока - короткий путь к удачному экспорту, мы пропускаем моделинг и текстурирование, о них пойдёт речь в следующих статьях. Итак, смотрим что у меня получилось, не стоит забывать о том движок Half-Life 1 очень слаб в поддержке большого количества полигонов, именно поэтому red dot не промоделен так - как вы видите выше на скриншоте:

   Затекстурил и отмапил следующим образом:


   Вкратце о тонкостях(если вы новичёк в максе - пропускайте шаг).
 Начинаем моделить из бокса(бокс хорошо подошел в данном случае, зачастую начинаю с плейна), поскольку материалы экспортируются через Multi/Sub Object(честно признаться я этому очень рад, не каждый движок даже в наше время может позволить себе такую роскошь, многое также зависит и от экспортёра) назначаем Mat ID нашей модели, так как в модели планируется стёклышко делим модель(Red Dot) на 2 разных ID(почему - узнаете позже) - то есть:
- основная часть ID = 9 текстура red_dot.bmp;
- стёклышко ID = 10 текстура red_dot_a.bmp.
Мапим, текстурим. Присоединяем через Attach к основной модели(ак47), далее Skin - Red Dot привязываем к основной кости Bone_AK47.

   Осталось дело за малым - экспорт и QC скрипт:
Перезаписываем f_ak47_template.smd, при экспорте обязательно укажите что экспортим для Half-Life 1 SMD:

Пример скрипта под даную модель:
/*
==============================================================================

QC script generated by Half-Life MDL Decompiler 1.2
2003, Kratisto. Based on code from Valve's HL SDK.

v_ak47.mdl

Original internal name:
"v_ak47.mdl"

==============================================================================
*/

$modelname "v_ak47.mdl"
$cd ".\"
$cdtexture ".\"
$scale 1.0
$cliptotextures


$bbox 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
$cbox 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
$eyeposition 0.000000 0.000000 0.000000


//reference mesh(es)
$body "rhand" "rhand"

$body "lhand" "lhand"

$body "weapon" "f_ak47_template"

// 2 attachment(s)
$attachment 0 "Bone 04" 2.750000 -22.500000 2.900000
$attachment 1 "Bone52" 0.000000 -3.000000 0.000000

$texrendermode "red_dot_a.bmp" "additive"

// 4 hit box(es)
$hbox 0 "Bone04" -1.980000 -8.880000 -1.020000 1.730000 0.030000 1.090000
$hbox 0 "Bone_Righthand" -1.340000 -2.980000 -0.410000 1.430000 0.000000 0.630000
$hbox 0 "Bone01" -1.720000 -8.900000 -1.020000 1.990000 0.020000 1.090000
$hbox 0 "Bone_Lefthand" -1.520000 -3.073735 -0.410000 1.250000 0.000000 0.630000

// 6 animation sequence(s)
$sequence "idle1" "idle1" fps 30
$sequence "reload" "reload" fps 37 { event 5004 13 "weapons/ak47_clipout.wav" } { event 5004 57 "weapons/ak47_clipin.wav" }
$sequence "draw" "draw" fps 30 { event 5004 11 "weapons/ak47_boltpull.wav" }
$sequence "shoot1" "shoot1" fps 20 { event 5001 0 "22" }
$sequence "shoot2" "shoot2" fps 20 { event 5001 0 "22" }
$sequence "shoot3" "shoot3" fps 20 { event 5001 0 "22" }

// End of QC script.

   А теперь, почему мы делили на 2 разных ID наш Red Dot?
   Ответ прост: к сожалению через материал, в т.ч. альфа канал, мы не можем добиться эффекта прозрачности, но можно это сделать через скрипт QC, нужная строка выделена жирным - сдесь думаю всё ясно.
   Далее всё за планом: компилим, получаем v_ak47.mdl, копируем в папку cstrike/models. Эта модель не претендует на какие либо аварды, это всего лишь рабочий пример, но если она вам понравилась вы можете скачать её из нашего файлового архива.

   Ну вот, очередной урок подходит до логического завершения, с вами был Joker aka автор, одно что могу вам пожелать - это терпения в изучении Autodesk 3ds Max. Жду ваших предложений и пожеланий.
Спасибо за внимание, до встречи.

Описание материала: редактировать модель для cs 1.6, как сделать прозрачную модель, 3ds max 2009, создать модель для cs 1.6

Всего комментариев: 44 | Комментариев на странице: 1-40
0  
Не поможете, я всё делаю правильно, а когда я вставляю модель в игру, та часть которую я сделал, например прицел, стоит не на месте а в углу экрана, я перепробавал всё не чего не помагает.
0  
Евгений, можно!
0  
У меня ошибка пр компиляции bad command $texrendermode
0  
Ну так ищи ошибку, носом тебя уже компилятор ткнул)
0  
Я не понял как кости привязывать? dntknw
0  
В этом уроке привязка костей не рассмотрена.
0  
Да можно +) good
0  
joker а можно с помощью макс делать модели для counter strike:source???
+1  
АРТУР ДЕМЕСИНОВ, судя по всему, во-второй раз ты открыл анимационный файл.
зы: почитай урок еще раз - попробуй разобраться.
0  
ВЧЕРА ИМПОРТИРОВАЛ В 3DS MAX ПЛАГИН,ДЛЯ ИМПОРТА МОДЕЛЕЙ,ИЗ ХАЛФ ЛАЙФА,ВПЕРВЫЙ РАЗ ВСЕ УДАЧНО,ВО ВТОРОЙ,ЕСТЬ СКЕЛЕТНАЯ АНИМАЦИЯ,НО НЕТ САМОЙ МОДЕЛИ.ПОМОГИТЕ ПОЖАЛУЙСТА,Я УЖЕ ГОЛОВУ НАД ЭТИМ СЛОМАЛ.
0  
а я сделал на 3ds max 2010
0  
Joker,как мне присвоить модели прицеливание,чтобы при нажатии на mouse2 было как с awp
0  
Это моддинг(амх) который не относится к моделингу.
0  
молодец чел я давно знаю 3д макс и мне было очень легко работать ! и еще грамотноо так все расписал !!!
0  
Спасибо, старался!
0  
kenshin, переведи мод потом с RGB в INDEX COLOR тогда и появиться только 8 бит)))
0  
Ну так я это и написал просто у меня фотошоп русский , я делаю изображение/image потом режим /mode потом Rgb и там есть каналы для выбора выбираю 8 битный. Но при сохранении текстуры, фотошоп не хочет сохранять в 8 битной он просто выделен серым и на него нельзя нажать. Я не знаю что делать
0  
kenshin, Photoshop не позволит редактировать текстуру пока ты не установишь Image -> Mode в режим RGB Color
0  
Ну так , а я о чём ( я не такой уж и нуб, чтобы текстуры в паинте рисовать =) ). Я делаю изображение потом режим 8 битный канал ,
потом выбираю цвета рисую на модели уже открытой прошлой текстуры , потом хочу сохранить , а в 8 битной не сохраняетья, только 16 и 32 , а это не подходит для комплинга.
0  
kenshin, photoshop!
0  
Я пытался нарисовать, но у меня не сохранят в 8 битной , я цветное делаю.
Как вообще сделать так , чтобы цветную текстуру можно было сделать?
0  
kenshin, ищи или рисуй)
0  
А текстуры для оружия есть где-нибудь, чтобы скачать?
А то текстура гранат жутко надоела, но форма просто супер ( стандартных) , хотелось бы поменять текстуру , а форму оставить.
0  
Спс нашёл, скачал, вечерком попробую =))
0  
Видимо нет.А сылочку можно? =))
0  
kenshin, а ты плагин для импорта - установил?
0  
Joker, при импорте f_ak47_template.smd пишет "no appropriate import module found" .
И вот там на скрине написано смд имортер он где находиться?
Лично я как понел , заходишь в 3dmax нажимаешь file/import и указываешь где f_ak47_template.smd.
Может я чего то не догледел?
0  
CSmodel, мелкие вопросы можешь писать сюда, всё что по серьезней - на форум.
зы: личных консультаций не даю
0  
faN, привет)) наконец-то я нашёл того, кто внятно объяснил что к чему...)) СПАСИБО))

можно с тобой пообщаться в аське?!? ОЧЕНЬ НАДО !!! на 100% уверен что ты поможешь мне!!!)))

0  
Fo][, обязательно сделаю подробную статью о привязке и текстурированию, а также о баге который может возникнуть в процессе выполнения. Скорей всего выпущу после нового года, хотя если будет свободное время и настроение не отменно напишу раньше.
0  
Joker не могли бы вы сделать подробную статью о том как привязать и затикстурировать дополнение к оружию, а то я не как не магу этого сделать у меня 3d max при экспорте либо выдаёт ошибку "There were warnings, please check the log window" либо полностью повисает sad
0  
Я тебе посоветую видео уроки от Digital-Tutors, а также The Gnomon Workshop
0  
Подскажите плииз де можно найти на русском какой нить самоучитель 3дмакса,чтоб более менее толковый
0  
toxichor, что за модель? есть ли анимация? кости?
0  
Так,ладно. Вот у мя получилась модель смд,но как ее перевести в мдл? Это последний вопрос!!
0  
Если бы ты читал внимательно блог, то нашел вот такую тему: "...smd - составляющая mdl файла, то есть mdl это контейнер для smd файлов и текстур...", а чтобы получить smd достаточно File -> Export -> *.smd, соответсвенно mdl получаем при компиляции qc-скрипта, всё просто и не требует особых знаний, особенно когда они уже написаны.
0  
просто скажи как
0  
На каком этапе траблы?
0  
ни фига не понял. КАК ИЗ СОХРАННЕНОЙ МОДЕЛИ В .MAX ПЕРЕВЕСТИ В .MDS А ПОТОМ MDL?
0  
я не понял. Как из smd в mdl перевести
0  
faN, ато, на здоровье king
0  
то что нужно nyam наконец нашел норм инфу джокер спасибо!!!!
Имя *:
Код *: