При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Картостроение > Туториалы > Туториалы по Source
Ник
Пароль
Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.04.2010, 09:37  #1
Cabbie
Cabbie
Лейтенант
Регистрация: 11.04.2007
Возраст: 35
Сообщения: 715
Замечания: 2


По умолчанию [HL2]: Сlassic zombie

В этой статье, я постараюсь изложить все этапы создания своего персонажа на основе зомби. Думаю если вы наприжете мозги и поймете, что по этому туториалу, вы сможете делать монстров, любой формы, размера, со своей физикой, и анимицией.

Для этого нам понадобиться, модель вашего монстра, или не монстра. Вообщем, если вы еще талантливый (хотя бы более менее), то напишите на основе зомби, и чтонибудь стоешее. Я пользуюсь 7 максом, + СП4 сорсе сдк, думаю все, что вам необоходимо.

И так, значит у нас имееться модель, выташенная из игры, или вы две недели, или даже больше до усеру сидели в максе как я, вообщим:

map10010040009.jpg

Вообщим эту тетку огонь, мы и будем вставлять. Запускаем ваш макс, загружаем в нее вашу модель. Создаем скелет, можете создать свой, любой формы и размера, я буду пользоваться скелетом Аликс, она больше походит под эту девушку. Подгружаем в макс, к модельке ваш скелет. Выбираем модель, и применяем к ней модификатор skin, он находиться во вкладке modify:

meshc.jpg

То, что у вас должно получиться. Теперь настраиваем Weights, это необходимо, чтобы привязать скелет, к модели. вообщим творческое такое занятие, но с непривычки можете и психовать, что неполучаеться. Так значит, что делаем дальше? Жмем edit envelopes, не увидеть эту кнопку просто невозможно, затем выделяйте любую кость, и спускайтесь в низ свитка меню, вы быбирайте paint weight, и нажимайте еще кнопочку рядом с многоточием, перед вам всплыло меню, где вы можете настроить размер кисточки, и силу нажима. Теперь можете смело раскрашивать свою модель:

mesh2.jpg

Выбираете рядом расположеную кость, и красите ее, когда закончите, а занятие это может растянуться на долго, если вы задроты, которые гоняться за реалестичностью. Когда все будет более менее готово, попробуйте подвигать ваш скелет, у меня вышло так:

81640172.jpg

Хреновенька неправдали, снова выбираете paint weight, вы уже в нем профи, о мой друг. Так, что дальше, выбираете, нажим какой-нить поменьше 0.3, и убираете, неровности, вообщим думаю вы уже понимаете, что делать:

76617414.jpg

Результат, как видете уже лутше. Так поправте где можете, и переходим к компиляции модели. Пока без анимации. Параметры компилятора:

$cd "C:\Users\Паша\Desktop\Новая папка (9)" - Путь к ваше папке.
$modelname "Zombie/Classic.mdl"
$model "studio" "Zombie_reference.smd"
$poseparameter move_yaw -180.00 180.00 360.00
$cdmaterials "models\"
$attachment "headcrab" "ValveBiped.HC_Body_Bone" -4.49 -1.32 -0.02 rotate -0.00 20.25 29.25
$attachment "eyes" "ValveBiped.HC_Body_Bone" 0.00 0.00 0.00 rotate -0.00 0.00 -50.00
$attachment "head" "ValveBiped.HC_Body_Bone" 0.00 0.00 0.00 rotate -0.00 0.00 -50.00
$attachment "chest" "ValveBiped.Bip01_Spine4" -3.00 6.00 0.00 rotate 0.00 60.00 90.00
$attachment "maw" "ValveBiped.Bip01_Spine2" -0.00 8.00 0.00 rotate 0.00 90.00 90.00
$attachment "Blood_Left" "ValveBiped.Bip01_L_Finger2" -0.00 -0.00 0.00 rotate -0.00 -0.00 0.00
$attachment "Blood_Right" "ValveBiped.Bip01_R_Finger2" -0.00 -0.00 0.00 rotate 0.00 -0.00 0.00
$surfaceprop "zombieflesh"
$eyeposition -0.000 0.000 64.000
$illumposition 4,282 2,304 67,973
$sequence Idle01 "Idle01" loop ACT_IDLE 1 fps 30.00
$sequence walk "a_WalkS" loop ACT_WALK 1 fps 24.00 {
{ event AE_ZOMBIE_STEP_LEFT 5 }
{ event AE_ZOMBIE_STEP_RIGHT 15 }
{ event AE_ZOMBIE_SCUFF_LEFT 20 }
{ event AE_ZOMBIE_STEP_LEFT 28 }
{ event AE_ZOMBIE_STEP_RIGHT 38 }
{ event AE_ZOMBIE_SCUFF_LEFT 40 }
}
$sequence FireWalk "FireWalk" loop ACT_WALK_ON_FIRE 1 fps 30.00
$sequence FireIdle "FireIdle" loop ACT_IDLE_ON_FIRE 1 fps 30.00
$sequence attackA "attackA" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_RIGHT 25 }
}

$sequence attackB "attackB" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_RIGHT 25 }
}

$sequence attackC "attackC" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_LEFT 25 }
}

$sequence attackD "attackD" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_LEFT 25 }
}

$sequence attackE "attackE" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_BOTH 25 }
}

$sequence attackF "attackF" ACT_MELEE_ATTACK1 2 fps 30.00 {
{ event AE_ZOMBIE_ATTACK_SCREAM 5 }
{ event AE_ZOMBIE_ATTACK_BOTH 25 }
}

$sequence swatleftmid "swatleftmid" ACT_ZOM_SWATLEFTMID 1 fps 30.00 {
{ event AE_ZOMBIE_STARTSWAT 1 }
{ event AE_ZOMBIE_SWATITEM 9 }
}

$sequence swatrightmid "swatrightmid" ACT_ZOM_SWATRIGHTMID 1 fps 30.00 {
{ event AE_ZOMBIE_STARTSWAT 1 }
{ event AE_ZOMBIE_SWATITEM 9 }
}

$sequence swatleftlow "swatleftlow" ACT_ZOM_SWATLEFTLOW 1 fps 30.00 {
{ event AE_ZOMBIE_STARTSWAT 1 }
{ event AE_ZOMBIE_SWATITEM 15 }
}

$sequence swatrightlow "swatrightlow" ACT_ZOM_SWATRIGHTLOW 1 fps 30.00 {
{ event AE_ZOMBIE_STARTSWAT 1 }
{ event AE_ZOMBIE_SWATITEM 18 }
}

$sequence releasecrab "releasecrab" ACT_ZOM_RELEASECRAB 1 fps 30.00
$sequence physflinch1 "physflinch1" ACT_FLINCH_PHYSICS 1 fps 30.00
$sequence physflinch2 "physflinch2" ACT_FLINCH_PHYSICS 1 fps 30.00
$sequence physflinch3 "physflinch3" ACT_FLINCH_PHYSICS 1 fps 30.00
$sequence smashfall64 "smashfall64" fps 30.00 {
{ event AE_NPC_BODYDROP_HEAVY 10 }
{ event AE_NPC_BODYDROP_HEAVY 27 }
{ event AE_NPC_BODYDROP_HEAVY 37 }
{ event AE_ZOMBIE_GET_UP 75 }
}

$sequence slump_a "slump_a" loop fps 30.00
$sequence slumprise_a "slumprise_a" fps 30.00 {
{ event AE_NPC_LEFTFOOT 15 }
{ event AE_NPC_RIGHTFOOT 50 }
{ event AE_ZOMBIE_GET_UP 80 }
}

$sequence slumprise_a_attack "slumprise_a_attack" fps 30.00 {
{ event AE_NPC_LEFTFOOT 15 }
{ event AE_NPC_RIGHTFOOT 50 }
{ event AE_ZOMBIE_GET_UP 80 }
{ event AE_ZOMBIE_ATTACK_SCREAM 16 }
{ event AE_ZOMBIE_ATTACK_RIGHT 36 }
}

$sequence slumprise_a2 "slumprise_a2" fps 30.00 {
{ event AE_NPC_RIGHTFOOT 16 }
{ event AE_NPC_RIGHTFOOT 22 }
{ event AE_ZOMBIE_GET_UP 24 }
}

$sequence slump_b "slump_b" loop fps 30.00
$sequence slumprise_b "slumprise_b" fps 30.00 {
{ event AE_NPC_LEFTFOOT 13 }
{ event AE_NPC_RIGHTFOOT 27 }
{ event AE_ZOMBIE_GET_UP 57 }
}

$sequence Breakthrough "Breakthrough" fps 30.00
$sequence canal5await "canal5await" fps 30.00
$sequence canal5aattack "canal5aattack" fps 30.00
$sequence Tantrum "Tantrum" loop ACT_ZOMBIE_TANTRUM 1 fps 30.00
$sequence WallPound "WallPound" loop ACT_ZOMBIE_WALLPOUND 1 fps 30.00 {
{ event AE_ZOMBIE_POUND 14 }
{ event AE_ZOMBIE_POUND 35 }
}

$sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
$ikchain rhand ValveBiped.Bip01_R_Hand knee 0.640 0.769 0.000
$ikchain lhand ValveBiped.Bip01_L_Hand knee 0.607 0.795 0.000
$ikchain rfoot ValveBiped.Bip01_R_Foot knee 0.545 -0.838 0.000
$ikchain lfoot ValveBiped.Bip01_L_Foot knee 0.518 -0.855 -0.000
$collisionjoints "phymodel.smd" {

$mass 60.0
$inertia 5.00
$damping 0.01
$rotdamping 1.50
$rootbone "valvebiped.bip01_pelvis"
$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"

$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
$jointconstrain "valvebiped.bip01_spine2" y limit -26.00 26.00 0.20
$jointconstrain "valvebiped.bip01_spine2" z limit -39.00 68.00 0.20

$jointconstrain "valvebiped.bip01_r_upperarm" x limit -64.00 64.00 0.20
$jointconstrain "valvebiped.bip01_r_upperarm" y limit -26.00 122.00 0.20
$jointconstrain "valvebiped.bip01_r_upperarm" z limit -122.00 50.00 0.20

$jointconstrain "valvebiped.bip01_l_upperarm" x limit -64.00 64.00 0.20
$jointconstrain "valvebiped.bip01_l_upperarm" y limit -122.00 28.00 0.20
$jointconstrain "valvebiped.bip01_l_upperarm" z limit -100.00 59.00 0.20

$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.20
$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_l_forearm" z limit -140.00 0.00 0.20

$jointconstrain "valvebiped.bip01_l_hand" x limit -68.00 68.00 0.20
$jointconstrain "valvebiped.bip01_l_hand" y limit -37.00 41.00 0.20
$jointconstrain "valvebiped.bip01_l_hand" z limit -44.00 70.00 0.20

$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_r_forearm" z limit -149.00 1.00 0.20

$jointconstrain "valvebiped.bip01_r_hand" x limit -75.00 93.00 0.20
$jointconstrain "valvebiped.bip01_r_hand" y limit -37.00 32.00 0.20
$jointconstrain "valvebiped.bip01_r_hand" z limit -48.00 66.00 0.20

$jointconstrain "valvebiped.bip01_r_thigh" x limit -50.00 48.00 0.20
$jointconstrain "valvebiped.bip01_r_thigh" y limit -19.00 70.00 0.20
$jointconstrain "valvebiped.bip01_r_thigh" z limit -79.00 73.00 0.20

$jointconstrain "valvebiped.bip01_r_calf" x limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_r_calf" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_r_calf" z limit 0.00 133.00 0.20

$jointconstrain "valvebiped.bip01_head1" x limit -61.00 61.00 0.20
$jointconstrain "valvebiped.bip01_head1" y limit -44.00 44.00 0.20
$jointconstrain "valvebiped.bip01_head1" z limit -32.00 50.00 0.20

$jointconstrain "valvebiped.bip01_l_thigh" x limit -39.00 39.00 0.20
$jointconstrain "valvebiped.bip01_l_thigh" y limit -59.00 23.00 0.20
$jointconstrain "valvebiped.bip01_l_thigh" z limit -84.00 66.00 0.20

$jointconstrain "valvebiped.bip01_l_calf" x limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_l_calf" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_l_calf" z limit 0.00 131.00 0.20

$jointconstrain "valvebiped.bip01_l_foot" x limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_l_foot" y limit -28.00 28.00 0.20
$jointconstrain "valvebiped.bip01_l_foot" z limit -46.00 46.00 0.20

$jointconstrain "valvebiped.bip01_r_foot" x limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_r_foot" y limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_r_foot" z limit -35.00 57.00 0.20
}

Так, помните, что настройки рагдолла, относиться к физической модели аликс! Поэтому перенесите, пфизмодел.смд, и раггдолл.смд от аликс. Если у вас свой, то об этом поже.

map10010040011.jpg

Вас ждет примерно такой результат. Так. В этой статье, я распишу еще 2 пункта. Создание idle, и walk, анимации, чтобы зомби ходил. Чтобы руки у нее не скручивало в бараний рог. Про регдол, и физику расскажу во второй части.

И так, ворачиваемься в 3d max, у нас есть персонаж с настроеным скелетом, и я начинаю с того, что выбираю idle позу.

3434w.jpg

Типа такого, так теперь внизу видем линию, с номерами кадров, установите для idle 57 кадров. Сделать это можно в Time Configuration. Выбираете кость, на 0 кадров, нажимаете, Auto Key, и придаете движение, ваше персонажу. Выбираете 0 кадр, перемешайте ползунок и создавайте, ключевые кадры, например 0 - 15 - 30 - 57 и на 57 зацыкливаете их с первым. И получаем анимацию.

Вот так выглядит моя новая анимация idle, она недоделана, вообщим допишу зафтра. Зафтра научу делать ходьбу:

map10010040014.jpg

К сожалению тему проверили поздно. Так, что придеться окончания подождать до зафтра.

Последний раз редактировалось Cabbie, 11.04.2010 в 15:41.
Cabbie вне форума Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:50.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2025 by CS-Mapping.com.ua Community