![]() |
Очень стыдно, но есть вопрос (я уверен, что ответ прост, но НИКАК не могу допереть до исины) :wallbash:
Код:
то есть если нет события - коллизия. если событие произошло, то коллизии быть не может случиться!!! и...как код втыкать в текст :@ :SOS: |
хе
предлагаю по нажатию пробела присваивать обектам тип 0 (entitytype mazaf**a,0) а код ты практически правильно втыкнул , просто надо не [\code] а [/code]! |
спасибо. работает. Тему не закрываем. Возможно писать сюда продолжу еще я про коллизии!
|
Как колизить animmesh
|
Цитата:
|
Создаешь Пивот для своего анимированного объекта - сферу!
piv = CreateSphere() a модель перентишь к пивоту EntityParent animMesh,piv еще не помешает сделать при помощи масштабирования из сферы эллипсоид ScaleMesh piv,1,3,1 - например так Потом устанавливаешь радиус коллизии и тип EntityRadius piv,1,3 EntityType piv,col_type Все, остальное знаете. |
А ПО МОЕМУ МОЖНО И БЕЗ СФЕРЫ ОБОЙТИСЬ, ВЕДЬ У МЕНЯ ГЕРОЙ И ТАК БЕГАЕТ.
|
Так...приплыли сюда
Кнопка пробел - убирает все коллизии Enter - двигает куб в противоположную сторону 1 на клаве - ставит коллизии. Итак пример. Игрок берет приз и проходит сквозь "пробиваемые" стены. ЧЕРЕЗ непробиваемые пройти не может. То есть как сделать так, что бы при нажатии пробел ИГРОК проходил сквозь КРАСНЫЙ кубик, а сквозь ФИОЛЕТОВЫЙ пройти не смог. ПС. шутка: успеть нажать 1 на клаве не принимается. Я серьезно! вот код: Код:
|
а я в будущем планирую добавить потдержку anim обектов в jode :)
|
** *** ****** ***, ***** ***** *** ***** *** !
Код:
If KeyHit (57) Then |
Цитата:
p.s.кто знает подскажите, я сделал анимацию в максе для модели через biped, а в blitze видно biped и не идёт анимации.Тоже самое с костями. :dontknow: |
Для этого надо экспортровать правильно и в правильный формат... если ты натягивал кости модификатором Skin, то можеш экспортировать Pipeline'ом в b3d формат, если меш сборный, то в 3ds формат экспортируется анимация только с TCB контроллером.
|
а можно сделать облости коллизий (EntityRadius, EntityBox), видимыми.
|
Цитата:
|
я так делал но у меня вакое впечатление что коллизии гдето в другом месте (смещенно) появляются
|
Цитата:
Развернутый ответ класса "не совсем в тему": Суть в том, что анимМеш- это группа, иначе- "дерево" обьектов. Хендл АнимМеша, который ты получаешь при загрузке- это, собственно говоря, и есть "главный" Пивот, к которому припарентены все остальные составляющие. Вот ему-то, Пивоту, (а не видимой-полигональной части меша!) и назначаются все коллизии. Т.к. полигонов в нем нет по определению, то коллизии "сфера-полигон" работать не будут. Чтоб создать такую коллизию, следует найти нужную часть меша GetChild()-ом или FindChild()-ом и присвоить коллизийные параметры ей. Всё. По той же теме проходят вопросы "Почему АнимМешу не задается EntityAlpha, EntityShininess etc.?" и "Почему при попытке применить Animate на модель с костяной анимацией анимируются только кости, а модель стоит на месте?" Ответ: "Всё потому же: находим нужную часть модели и применяем команду на нее" P.S. Подобную тему надо создать в ЧаВо. Иначе вопросы эти будут повторяться бесконечно. Я сам ими когда-то задавался, пока не подсмотрел ответ на этот вопрос от другого новичка. :) |
Со сферой я перегнул... Тогда просто пивот создать...
Насчет назначения колизий чайлдам: колизия будет проверяться с чайлдом, а двигать мы будем главный пивот. При столкновении получится, что пивот продолжает двигаться, а чайлд как и должен уперся в стенку! И они сместятся относительно друг друга. Или нет? У меня что-то подобное было просто... |
Хм... нет... почему? :dontknow:
Всё нормально будет. Тут логику понять надо. Ну представь, есть у тебя анимированная модель. Танк, к примеру. Его Пивоту ("главному", не нужно создавать еще один) ты присвоил коллизийный тип "ТАНК", чтоб он коллизился к земле ("ЗЕМЛЯ") типом сфера-к-полигону: Collisions TANK,GROUND,2,3 Естественно, этот пивот отлично сработает коллизийной сферой. Танковой броне ты присвоил тип "АРМОР". Но ей никакие коллизийные параметры задавать не надо. В самом деле, к чему ей коллизиться? А вот танковому снаряду или там автоматной пуле ты присвоил тип "ПУЛЯ" и задал коллизию сфера-к-полигону с броней: Collisions BULLET,ARMOR,2,1. И всё рулит: пивот коллизится к земле, а земля- НЕ коллизится к Пивоту. Пули коллизятся к броне, а броня к ним- нет. А коллизий с обратной связью конечно нужно избегать. :) |
Так чё испльзовать пивот?
|
не подскажите какая разница жеду записями
Код:
If EntityCollided(tank,2)=q\zvezda Код:
If EntityCollided(TANK_T,PRIZ_T) Код:
Type zvezda |
Разница большая.
EntityCollided возвращает 0, если объекты не столкнусь, и 1 в противном случае. Т.е. это условие: Код:
If EntityCollided(TANK_T,PRIZ_T) В то время как это условие: Код:
If EntityCollided(tank,2)=q\zvezda |
Скажу даже больше, условие "If EntityCollided(TANK_T,PRIZ_T)" не будет выполняться вообще никак и вылетать с сообщением "Entity does not exists"... Потому как первым параметром ф-и должен быть хендл модели, а не константа коллизийного типа...
2Шолик: в случае столкновения ф-я возвращает не 1, а хендл коллизящейся ёнтити. Проверено эмпирически и по Хелпу. :) |
Цитата:
|
Цитата:
Код:
If EntityCollided(q\zvezda,TANK_T) ps: alcoSHoLiK спасиб доходчего. pps: Diplomat :)) ну ты каАк, чёнить, ляпниш, этокае, млин, я потом пережовываю неделю :?? но всеравно молодца, спасиб, мож запомню, как это все хоть называется млин. :) |
Цитата:
Просто я не моделю практически, и главный пивот модели может оказаться в заднице, поэтому свой мне проще сделать... |
Часовой пояс GMT +4, время: 23:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot