Garry's Mod

Garry's Mod

Not enough ratings
Как создать машину в Gmod, HL2, CS:GO, TF2, CSS?
By SyperMegaProSilverElitBest228
Если что не понятно, задавайте вопросы. Постараюсь ответить
   
Award
Favorite
Favorited
Unfavorite
Как создать машину в CSGO, GMOD, HL2, TF2, CSS?
Машина будет являтся частью карты и в других картах заспавнить ее не получится.
Для того, чтобы заспавнить машину на других картах их придется декомпилировать и вшивать туда машину.


Декомпилируйте любую из моих карт и берете машину от туда.

Самая оптимизированная и проработанная на данный момент эта:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3460047703

Если создаете машину для CSGO то в этом видео есть ссылка на префаб, открываете его через hammer, меняете все модели и текстуры на свои https://www.youtube.com/watch?v=TvLq0GJagsY

Еще видео для тех кто хочет создать свою машину полностью в ручную с нуля
https://www.youtube.com/watch?v=SScycyEHD80&t=26s


Автором технологии является: XXL_cz
Главные не решенные проблемы:
Нельзя нормально сохранится без багов

В hl2 вылетает в главное меню и больше не запускается. Чтобы частично это исправить придется отключить сохранения.
save_disable 1 отключает сохранения но не загрузки. Можно использовать через Logic_auto

В gmod после сохранения колеса поварачивать не будут, также все невидимые обьекты становятся видимыми, и с каждым новым сохранением сдвигается ось вращения колеса)

Машина может существовать только в рамках одной карты

Нет нормального звука коробки переключения передач
Виды машин и камер обзора
Виды машин: На ускорителях, на моторах, vehicle(седло / стандартный багги)


Виды камер CSGO: от первого лица статичная, от третьего лица свободная плавная без возврата

Виды камер GMOD: от первого лица статичная, статичная, танк, седло (carseat только для GMOD), танк-седло (если обьеденить седло и танк в GMODе и всех HL2 камера будет не предсказуемо двигаться, чтобы это исправить нужно отключить все камеры, но тогда это уже будет просто седло)

Виды камер HL2: статичная, танк, седло, танк-седло
Виды камер HL2dm: статичная, танк, седло, танк-седло


седло не позволяет смотреть назад, и в хаммере доступны только prisoner_pod, которое слишком большое для обычной машины, и carseat только для GMOD, везде кроме GMOD вид только от первого лица (если без читов)


из танка камера трясется на кочках, нельзя нормально выйти и вид от 3 лица забагован (камера проходит через стены), сам танк на много сложнее устроен, но зато эфект приближения и нитро класные

p.s. Теперь из танка можно относительно нормально выйти и камера более плавная
как на этой карте: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3266046496





для того чтобы из последней версии камеры танка сделать обратно статичную камеру достаточно в prop_dynamic "gun_base" parent поставить не driver_parent, а car_base
Нюансы:
1.К кузову, возле колес привязана func_door_rotating (далее буду называть ее как "дверь"), к двери еще дверь, к последней еще дверь, и к ней еще дверь и т.д в зависимости от того как плавно вы хотите сделать поворот колес и на какой выворот

2.Если все двери будут привязаны к кузову непосредственно или дверей не будет вообще то колеса будут заваливатся

3.Двери должны быть строго в определенном месте определенного размера во избежании багов, если хотите передвигать переднее колесо то только вместе со всеми дверьми возле него.

4.Двери рекомендуется удалять после спавна чтобы об них не терлись колеса (on map spawn car_kill_init)

5.База (Кузов) автомобиля может состоять из 1 пропа или нескольких брашей (браши могут быть скреплены to entity). Если делать кузов из нескольких связаных брашей то колеса будут задевать,
решением будет ТОЛЬКО галочка Derbis-Dont colide... в кузове. Большую роль играет масса и центр тяжести, потребуется много попыток чтобы найти баланс

6.Чтобы детали отваливались их придется делать из пропов. Браши только ломаются но не отпадыпают. Чтобы браш отпадывал его нужно привязать к пропу. Галочки во флагах большого значения не имеют(GMOD)

6.1 CS:GO браши могут и отпадывать

7.Сущность phys_hinge привязывает указанные в ней детали друг к другу. Если в этой сущности будет указана одна деталь, то деталь будет привязана к конкретному пространству

8.После привязки детали к базе(кузову) при помощи phys_hinge происходит баг, создается невидимая копия детали, которая мешается под ногами. Чтобы предотвратить копирование нужно:
зайти в logic_relay с названием auto_coll (название можно изменить) и в outputs добавть: OnTrigger "название предмета" AddOutput collisiongroup 11 . Для брашей colliiongroup 11, для prisoner_pod collisiongroup 11 не работает в gmod), для базы collisiongroup 9

8.1 Если в HL2 при помощи Parent привязать браш к кузову, то будет создаватся невидимая осязаемая копия браша на спавне, сломав которую сломается и оригинальный браш находящийся на кузове.
Функция OnTrigger "браш" AddOutput collisiongroup 11 НЕ поможет в HL2, но частично поможет в GMOD (копии также упадут вниз при спавне, но колизию иметь не будут, также не реагируют на взывы)

8.2 Идеальное решение: Если у каждого прикрепленного через parent браша указать в настройках Not solid to world Passes through World, то невидимые копии даже не упадут на спавне и про них можно забыть (HL2)


9. У сиденья scripts/vehicles/jeep_test.txt отвечает за звук двигателя (gmod)

9.1 Сиденье можно крепить на прямую через Parent либо через phys_hinge .P.S. Если крепить через Parent, то невидимая осязаемая копия модели "Prisoner_pod" будет мешатся под ногами даже если отключить колизию, "CarSeat" Работает нормально(GMOD).

9.2 От малейшего перемещения сиденья может изменится положение камеры (камера будет задевать предметы)

9.3 (HL2) БАГ С ПОВОРАЧИВАНИЕМ ГОЛОВЫ если включена галочка FreezPlayer в game_ui то при заходе в сиденье вертеть головой нельзя


10. В CS:GO забагованый огонь (остается на одном месте и висит в воздухе)

11. Чтобы изменить массу кузова лучше вcего использовать logic_auto OnMapSpawn SetMass

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

13. Чтобы колеса крутились по инеркции нужно у phys_hinge уменьшить frictions

14. БАГ С КОЛЕСАМИ: если осьи колес сдвинулись при повороте значит отсутствует галочка motion disabled у кузова

15. БАГ С ВЫЛЕТОМ ИЗ СЕДЛА: если вы получаете урон во время падения или высокой скорости отключите галочку Clients во всех trigger_hurt

16. БАГ С НАЖАТИЕМ Е В МАШИНЕ: если нажать Е находясь в машине (которая танк), то вы одновременно передвигаетесь на спавне и управляете машиной. Решение: Отключить галочки +Use Deactivates в game_ui

17. БАГ С ПРИЦЕЛИВАНИЕМ В МАШИНЕ: Во время прицеливания игрок может передвигатся на спавне. Причина: PressedAttack2 деактивирует одну из game_ui что позволяет игроку двигаться.
Решение: Создать game_ui с галочкой Freeze Player которая будет активироватся спустя милисекунду после прицеливания

18. БАГ С ПРИЦЕЛИВАНИЕМ В МАШИНЕ2: Оружие находится в одном положении до тех пор пока игрок не выстрелит или ускорится. Причина: остутсвует OnPressed Activate в inputs у одного из game_ui

19. БАГ Машина находится без движения на месте на спавне, колеса дрожат. Решение: масса базы на 0, задать массу через OnMapSpawn CarBase SetMass 1400

для того чтобы машина дрифтила нужно чтобы задние колеса гребли быстрее передних, но ехать просто прямо таким способом будет крайне сложно, поэтому нужно "нитро" чтобы переключатся между режимами езды

для того чтобы колесо не задевало базу(кузов) автомобиля нужен colision_pair в котором прописываются имя колеса и имя базы (не работает если кузов состоит из брашей)

Колеса проваливаются под землю иногда (костыль: создать двухслойную дорогу с разницей высоты в пару юнитов)
Портирование карт в другие игры Source

Нюансы портирования карт между css, csgo, hl2, hl2dm, gmod

1. РЕКОМЕНДУЕТСЯ делать карту сначала в HL2 и уже потом портировать на все остальные игры, если сделать наоборот то Hammer hl2 может не открыть исходник вовсе (проверено с gmod и csgo даже на пустых картах)
2. В HL2DM npc сами по себе не двигаются но их можно включить (не работают Комбайны. Работают только зомби, хедкрабы, вартигонты, манхаки, львы, вертолет, мяч. Для их нормальной работы потребуется: ai_relationship, npc_template_maker и сам NPC)
3. Всплывающий Текст на экране в HL2 и в CSGO используется разными сущностями
4. Нужны общие текстуры, модели
5. В HL2 и HL2DM седло самопроизвольно создает невидимую копию себя, которая мешается под ногами (CollisionGroup не спасет ситуацию, NoSolid тоже)(Можно пофиксить используя Parent и Phys_Hinge одновременно). При портировании в GMOD все нормализуется
6. HL2 использование CollisionGroup 11 для седла приведет багу с неуязвимостью и невидимым оружиям
7. HL2 использование Prisoner_pod_inner не позволит выходить из машины клавишей E
8. HL2 является островком стабильности в отличае от постоянно обновляемого GMOD, любое мелкое обновление может в корне поменять вашу карту и наделать кучу багов, например машина проваливается сквозь землю хотя до обновления Gmod все было норм.
РЕШЕНИЕМ было удалить все colision_pair

9. При портировании в css ломается вся логика и приходится переделывать также всё. Вместо кнопок используются двери

10. В оригинальном HL2 покрышку нельзя поджечь, но кней можно прикрепить огонь



P.s...




БАГ с камерой в hl2, которая не поворачивается до тех пор, пока не прицелишься. Причина: стоят галочки FreezePlayer во всех game_ui, автоматически фиксится при портировании в Gmod

БАГ с пулями танка в hl2, которые не выстреливают (controleable не поможет), фиксится при портировании в Gmod

Если хочешь сделать универсальную карту для всех HL2 забудь про стрельбу из машины

В HL2 если отключить пули у БТР, то они перестанут ехать

В GMOD sv_cheats через кнопку и OnMapSpawn не работает

Если отключить все галочки jump deactivate (для того чтобы выходить из машины только на Е без пробела) и нажать пробел в машине, игрок не сможет передвигаться (решение: добавить Move Type 1 и убрать галочки FreezePlayer и HideWeapon)

В HL2 нет функции TeleportToCurrentPose
В HL2 нет функции SetParent для point_teleport
В HL2 кнопка должна быть целиком текстуная, без всяких там PlayerClip и т.д. во избежании багов

Карта НЕ КОМПИЛИРУЕТСЯ. Причина: большие Лайтмапы на Дисплесментах. Решение: Лайтмапы на Дисплесментах ставить на 512

light_envirement или любой другой источник освещения должны быть в любом случае

Карта вылетает если в сущности прописан Parent а самого парента нет (HL2)

Тригеры имеют свойство просто переставать работать спустя несколько использований,
если тригер не срабатывает после нескольких касаний, попробуйте Delay Before Reset поставить на -1

если при копировании машины на другую карту не работает пушка, то вероятно вы забыли копировать info_target (цель)
Звуки
Чтобы звук двигателя прекратился после выхода из авто нужно в act_player_out в outpust car_engine_snd тайминг выставить на 0.10 (отключатся повышенные обороты)

Чтобы звук двигателя прекратился после выхода из авто нужно убрать галочку is not looped у эмбиента (отключатся холостые обороты)

Бесячие звуки во время движения в моем случае помогло удалить все звуки в phys_hinge

Звук двигателя нельзя убить, уничтожить, уменьшить, сделать тише, от него ни как не избавится кроме как непосредственно через выход из авто путем нажатия пробела или Е (через тригер можно если в нем участвует game_ui)HL2

чтобы звук двигателя точно мог отключатся при выходе из машины нужно удалить Output Volume у одного из лоджиков


car_ang_msr синхронизирует звук двигателя с указанным в ней колесом
Нитро ускорители
Если попытаться использовать phys_thruster (ускоритель) в качестве нитро, то можно обнаружить, что направление ускорения наравлено только в одну сторону относительно мира вне зависимости от положения машины.

Если включена галочка Apply Torque, то ускорение будет направлено вокруг своей оси.

Вывод: phys_thruster будет полезен только во время взрыва машины, чтобы машина подпрыгнула вверх, либо в случае если машина работает только на ускорителях.

Использовать phys_thruster в качестве нитро вместе с поворачиваемыми колесами не получится (HL2)


В CS:GO ускорители работают нормально, не так, как в HL2. Поэтому в CS:GO можно создать машину на ускорителях
Team Fortress 2
Не работает танк (возможно). Поэтому можно использовать вариант камеры как в CSGO

Нельзя нажимать кнопки
Зато можно сесть в машину через триггер, в триггере указать нажатие кнопки

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

Сама карта:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3397951564
Counter-Strike: Source
Все тоже, что и TF2 только кнопка работает на прямую, а через триггер не работает.
CS2 (Не работает)
Нюансы в CS2:

На прямую портировать нельзя из первого сурса, только переделывать полностью


Полностью отсутствуют: game_ui и Command (для servercomands)

ВАЖНО задать ось не только у Phys_hinge (крепление колеса и кузова) но и у phys_torque (Мотор)



по стандарту: на спавне все работает норм, но когда встаеш на триггер поворота, колеса отваливаются (или очень редко поворачивают)

если добавить Kill_init не влияет почти не на что
если убрать Do not connect until turnedOff не влияет почти не на что
если убрать Motor frequency и Motor damping ratio не влияет почти не на что
если убрать TurnOFF везде: колеса поворачивают нормально всегда, но машина улетает в стратосферу



Left 4 Dead 2 (Не работает)
Вылетает из-за logic_auto. Без logic_auto работать не будет
Fistful of frags (Не работает)
По умолчанию Hammer у Fistful of frags не содержит в себе текстуры и модели самой Fistful of frags, только текстуры оригинальной HL2. Поэтому при создании даже пустой карты запускается Half-Life 2 и вылетает.

Чтобы это частично исправить можно из папки sdk/fof переместить все файлы в sdk/hl2. Так хотя бы запускается сам Fistful of frags, но через несколько минут все равно вылетает.

Кто в курсе как создать карту для Fistful of frags отзовитесь
Консольные команды
чтобы забиндить огонь на колесико прописывать bind "MWHEELDOWN" "+attack";bind "MWHEELUP" "+attack"


чтобы забиндить огонь на все кнопки мыши кроме прицела прописывать bind "UPARROW" "+attack";bind "DOWNARROW" "+attack2";bind "MOUSE2" "+attack2";bind "MOUSE1" "+attack"



host_timescale 0.5 замедлить время

host_timescale 1 восстановить время
1 Comments
БАКУГАН 30 Jan @ 11:22am 
уютненько