![]() |
проблема c camerapick
Здравствуйте!Такая вот проблемка:
Есть плоскость , на ней стоит башня . Башня с чайлдами(loadanimmesh). У плоскости и у башни установил entitypickmode,*,2 Так вот , используя camerapick() - возращает только ,что пикнула плоскость ,а башню не получается . Пробовал entitypickmode для каждого чайлда - тоже не пикаются, только плоскость. |
Ответ: проблема c camerapick
Вообще у меня ни разу не получалось нормально использовать Pick команды с загружаемыми моделями, не знаю почему, может флаг "2" работает только с полигонами, созданными в блице программно?
Проще сделать объект-куб, присоединить его к башне и по нему обрабатывать CameraPick(). |
Ответ: проблема c camerapick
Цитата:
Цитата:
если модель экспортирована криво, то в ней могут быть служебные пивоты к который приаттачено остальное, и тогда без рекурсии пик мод выставится не везде (а если на пустышку то тогда ясен пень ничо пикаться не будет) Вообще посмотри внимательно что у тебя в модели. |
Ответ: проблема c camerapick
Для AnimMesh, как и в случае с коллизией, при пике возможен только 1ый тип, т.е. сфера.
Вообще, любые пополигонные проверки применимы только к типу Mesh. В частности для спрайтов тоже придется юзать либо EntityRadius, либо EntityBox. RTFM. |
Ответ: проблема c camerapick
Цитата:
RTFM. Цитата:
|
Ответ: проблема c camerapick
В хелпе во всяком случае желтым по синему написано, что не должно работать. Может у тебя еще и пополигонная коллизия для аниммешей работает?
|
Ответ: проблема c camerapick
ну, родными способами работать не будет, но дописав десяток строчек, вполне можно заставить пикаться аниммеш.
|
Ответ: проблема c camerapick
Тип 2 не требует установки примитива коллизии, потому работает в любом случае (а для спрайтов так и [вообще говоря] не имеет смысла иной метод).
Многие (типа) косяки с аниммешами и их хендлами-пивотами решаются флагом obscurer в соответствующих функциях. Про какие 10ки строк идёт речь? Развели болтологию =\ |
Ответ: проблема c camerapick
Цитата:
|
Ответ: проблема c camerapick
Цитата:
doctor: У меня вчера шок был... узнал что Спрайт прозрачный, всю жизнь думал что он, сцуко, зелёный. doctor: Можно сказать и пил его из за того, что он зелёный. doctor: Да он и на вкус зелёный, не понимаю как он может быть прозрачным. |
Ответ: проблема c camerapick
Код:
Function AnimEntityType( model, type, obs ) |
Ответ: проблема c camerapick
Собсно что я и имел ввиду.
|
Ответ: проблема c camerapick
Спасибо за ответы , но я сам разобрался ) .
Для animmesh можно ставить пик по полигонам , только надо каждому чайлду ставит entitypickmode ,и какому чайлду поставишь на тот и будет пикаться , если не ставить какому-нибудь чайлду пик то он просто пикаться не будет.Так что если в модели есть крупные чайлды то можно на них поставить пикмоде. Но это очень тормозно получается, если пикать по полигонам 10 объектов (каждый ~ 1000 полигонов) ((. |
Ответ: проблема c camerapick
А ты думал в сказку попал?))
Я дак вообще давно забил на блицовый пик, юзаю теперь физиксовый пик, очень удобно и главное что физ модель как раз достаточно проста чтобы её пикать без лагов. |
Ответ: проблема c camerapick
А где можно взять физикс ?
|
Ответ: проблема c camerapick
|
Ответ: проблема c camerapick
|
Ответ: проблема c camerapick
Бывает еще не пикается из-за вывернутых нормалей, при кривом экспорте.
--- Отступление по CameraPick, всегда вспоминаеься т.к. сам встревал )) - оно может тормозить даже на очень мощных компах и даже если пикать всего 1 раз за 10 циклов, почему хз, но по возможности лучше заменять на LinePick. |
Ответ: проблема c camerapick
Пишу тут, что бы не создавать новой темы.
я делаю 3D меню каждая строка меню это детеныш когда наводиш на строку мышем она мерцает (это я сделал) подскажите а как сделать чтобы при клике на строке происходило действие? CameraPick Возвращает номер выбранного объекта, а он, номер меняется :( Код:
Pick=CameraPick( MenyCamera,MouseX(),MouseY() ) :SOS: |
Ответ: проблема c camerapick
Из теории вопроса: CameraPick возвращает хендл того объекта который пикнули. Соответственно если он совпадает с хендлом какого-л. детёныша (как ты выражаешься) то следует производить действие. Хендлы детей можно получить FindChild (если известно имя объекта в максе) или GetChild (удобно когда надо перебрать каждый). Учи матчасть. (т.е. GoTo Blitz Help)
А так код верно строишь! :super: Код:
Pick=CameraPick( MenyCamera,MouseX(),MouseY() ) |
Ответ: проблема c camerapick
Еще разок вставлю свои 5 к :)
Pick=CameraPick( MenyCamera,MouseX(),MouseY() ) вот как раз из-за такой строки, выполняемой каждый цикл, одна простенькая игра нереально тормозила на некоторых компах, а на некоторых шла нормально. С тех пор мне кажется, что уместно использовать только if MouseHit(1) Pick=CameraPick( MenyCamera,MouseX(),MouseY() ) ну это имхо... --- В твоем случае вместо Select Pick можно юзать Select EntityName$(Pick) предварительно дав всем кнопкам имена (в максе наверно меню делаешь) |
Ответ: проблема c camerapick
Господа спасибо,
в перебор вставлял DebugLog EntityName$(GetChild(Meny,i)) а в Seleсt не додумался встывить :-D , видать устал вчера. Damp в моем случаи пикать после клика не подойдет, у меня при наведении мышем мерцание красивое (:@ чесно признаюсь гдето в примерах стырил) . Насчет тормозов, это менюшка, сделана как функция. пры выходе в меню игра встает на паузу. ABTOMAT Спасибо, приятно слышать у меня сразу ещё вопрос не относящейся к делу. DebugLog выводит что захочеш в Debugger а какая команда выводит окно сообщений? (с кнопкой, как при ошибке) нашел RuntimeError :) |
Ответ: проблема c camerapick
Цитата:
также можно использовать winapi (возможностей больше) |
Ответ: проблема c camerapick
Цитата:
|
Ответ: проблема c camerapick
Цитата:
|
Ответ: проблема c camerapick
Цитата:
|
Ответ: проблема c camerapick
Развиваю тему :
Сделал пиканье по LoadAnimMesh, всё пикается, всё хорошо. Добавил вторую камеру с маленьким вьюпортом 100x100 в уголке - перестало пикаться. Обычные меши пикаются, а составные - нет. Почему ? |
Ответ: проблема c camerapick
Может не ту камеру указываешь в CameraPick(...)
|
Ответ: проблема c camerapick
Я вторую камеру вообще нигде не указываю, она только создается, позиционируется, и задается вьюпорт, и всё.
secCam и mainCam перепутать трудновато. |
Ответ: проблема c camerapick
ты её хоть камерапроджектиш на 0?
или она у тебя на каждой итерации отрисовки юзаетцо? 2 рендера - жесть. и главное терь логика завязана на рендере =\ |
Ответ: проблема c camerapick
Цитата:
Неужели вот это вот всё будет быстрее обрабатываться чем просто повесить вторую камеру ? Цитата:
|
Ответ: проблема c camerapick
не обращай внимания. меня подставили.
|
Ответ: проблема c camerapick
Так а с камерой-то что делать...
|
Часовой пояс GMT +4, время: 17:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot