forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   проблема c camerapick (http://forum.boolean.name/showthread.php?t=8261)

Hellfalcon 06.05.2009 23:05

проблема c camerapick
 
Здравствуйте!Такая вот проблемка:
Есть плоскость , на ней стоит башня . Башня с чайлдами(loadanimmesh).
У плоскости и у башни установил entitypickmode,*,2
Так вот , используя camerapick() - возращает только ,что пикнула плоскость ,а башню не получается . Пробовал entitypickmode для каждого чайлда - тоже не пикаются, только плоскость.

Nuprahtor 06.05.2009 23:22

Ответ: проблема c camerapick
 
Вообще у меня ни разу не получалось нормально использовать Pick команды с загружаемыми моделями, не знаю почему, может флаг "2" работает только с полигонами, созданными в блице программно?
Проще сделать объект-куб, присоединить его к башне и по нему обрабатывать CameraPick().

ABTOMAT 07.05.2009 00:04

Ответ: проблема c camerapick
 
Цитата:

Вообще у меня ни разу не получалось нормально использовать Pick команды с загружаемыми моделями, не знаю почему, может флаг "2" работает только с полигонами, созданными в блице программно?
враньё, всё работает у меня
Цитата:

Пробовал entitypickmode для каждого чайлда - тоже не пикаются, только плоскость.
пробуй рекурсивно.
если модель экспортирована криво, то в ней могут быть служебные пивоты к который приаттачено остальное, и тогда без рекурсии пик мод выставится не везде (а если на пустышку то тогда ясен пень ничо пикаться не будет)
Вообще посмотри внимательно что у тебя в модели.

MiXaeL 07.05.2009 00:42

Ответ: проблема c camerapick
 
Для AnimMesh, как и в случае с коллизией, при пике возможен только 1ый тип, т.е. сфера.
Вообще, любые пополигонные проверки применимы только к типу Mesh. В частности для спрайтов тоже придется юзать либо EntityRadius, либо EntityBox.

RTFM.

ABTOMAT 07.05.2009 01:42

Ответ: проблема c camerapick
 
Цитата:

Для AnimMesh, как и в случае с коллизией, при пике возможен только 1ый тип, т.е. сфера.
Почему у меня всё работает? Просто надо каждому чилду ставить.
RTFM.
Цитата:

В частности для спрайтов тоже придется юзать либо EntityRadius, либо EntityBox.
Это труЪ

MiXaeL 07.05.2009 09:41

Ответ: проблема c camerapick
 
В хелпе во всяком случае желтым по синему написано, что не должно работать. Может у тебя еще и пополигонная коллизия для аниммешей работает?

HolyDel 07.05.2009 10:06

Ответ: проблема c camerapick
 
ну, родными способами работать не будет, но дописав десяток строчек, вполне можно заставить пикаться аниммеш.

impersonalis 07.05.2009 11:40

Ответ: проблема c camerapick
 
Тип 2 не требует установки примитива коллизии, потому работает в любом случае (а для спрайтов так и [вообще говоря] не имеет смысла иной метод).
Многие (типа) косяки с аниммешами и их хендлами-пивотами решаются флагом obscurer в соответствующих функциях. Про какие 10ки строк идёт речь?
Развели болтологию =\

HolyDel 07.05.2009 12:32

Ответ: проблема c camerapick
 
Цитата:

Многие (типа) косяки с аниммешами и их хендлами-пивотами решаются флагом obscurer в соответствующих функциях.
ну нифига себе! а я всю жизнь вручную решал.

Ичигорь 07.05.2009 13:40

Ответ: проблема c camerapick
 
Цитата:

ну нифига себе! а я всю жизнь вручную решал.
Это прям как:
doctor: У меня вчера шок был... узнал что Спрайт прозрачный, всю жизнь думал что он, сцуко, зелёный.
doctor: Можно сказать и пил его из за того, что он зелёный.
doctor: Да он и на вкус зелёный, не понимаю как он может быть прозрачным.

tormoz 07.05.2009 20:34

Ответ: проблема c camerapick
 
Код:

Function AnimEntityType( model, type, obs )

For i=1 To CountChildren(model)
child = GetChild(model,i)

If child<>0
EntityType child,type, obs

If CountChildren(child)>0
 AnimEntityType( child, type, obs )
EndIf
EndIf
Next
End Function


ABTOMAT 07.05.2009 22:05

Ответ: проблема c camerapick
 
Собсно что я и имел ввиду.

Hellfalcon 09.05.2009 01:02

Ответ: проблема c camerapick
 
Спасибо за ответы , но я сам разобрался ) .
Для animmesh можно ставить пик по полигонам , только надо каждому чайлду ставит entitypickmode ,и какому чайлду поставишь на тот и будет пикаться , если не ставить какому-нибудь чайлду пик то он просто пикаться не будет.Так что если в модели есть крупные чайлды то можно на них поставить пикмоде.
Но это очень тормозно получается, если пикать по полигонам 10 объектов (каждый ~ 1000 полигонов) ((.

ABTOMAT 09.05.2009 01:53

Ответ: проблема c camerapick
 
А ты думал в сказку попал?))
Я дак вообще давно забил на блицовый пик, юзаю теперь физиксовый пик, очень удобно и главное что физ модель как раз достаточно проста чтобы её пикать без лагов.

Hellfalcon 09.05.2009 13:32

Ответ: проблема c camerapick
 
А где можно взять физикс ?


Часовой пояс GMT +4, время: 23:38.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot