Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: cashis от 09 Января 2009, 23:13:07



Название: Глюк
Отправлено: cashis от 09 Января 2009, 23:13:07
Недавно делал игру и всвязи с этим возникло много проблем вот одна из них(так и не смог решить, но игру сделал): я когда делаю вращение объекта после клика на него у меня квест вылетает!!!
Я делаю так:
1.DetectMouseCollision на объект и UserInput(LBM) объеденяю их Expression Value(A&B)
2.Expression Value присоединяю к Value operator(toggle/flipflop(triged)
3.И этот Value Operator к Z в Rotation Vector на объекте!
(можно предварительно присоединить Value operator присоединить к Expression Value(A*число))
-----------------------------------------------------
Вылетает ли у вас!!! И как мне сделать вращение если этот способ не правильный!!!


Название: Re: Глюк
Отправлено: cashis от 11 Января 2009, 13:31:15
вот так


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 11 Января 2009, 14:36:22
Вылетает :( Очевидно DetectMouseCollision не приспособлен для работы с motion...


Название: Re: Глюк
Отправлено: cashis от 11 Января 2009, 14:58:14
проблема такая Если потсоединить всё это просто к Start3Dscene то при клике на объекте значения изменяются без вылетов а как только присоединяешь к rotation vector объекта сразу вылетает!!!


Название: Re: Глюк
Отправлено: Const_47 от 11 Января 2009, 16:27:33
В том что оно не работает нет ничево удивительного.

Попытайся так.
http://img301.imageshack.us/my.php?image=hehepu4.jpg


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

Думаю идея понятна.



Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 11 Января 2009, 16:44:00
бокс 1 это оченьсильноловполимеш:))) который нужен будет тебе для колизий и детектов, а бокс 2 это именно та модель которую ты будеш рисовать.
Я кстати тоже так думал, ну как тупо получается...неужели до сих пор нет фикса от такой гадости?


Название: Re: Глюк
Отправлено: Const_47 от 11 Января 2009, 16:51:06
Ну тупо не тупо это как сказать. Вот люди налепят хайполимешей
к физике-колизии а потом удивляются почему все тормозит:)))

Очень много игрух использует такой подход, когда различают
"графическое" и "физическое" тело обекта.

Ловполи тело может понадобится и для просчета теней в риалтайм
ну и вооюще для многих вещей...


 


Название: Re: Глюк
Отправлено: cashis от 11 Января 2009, 17:23:45
какая связь моего вопроса и твоего ответа!!! Я спрашиваю как зделать так чтобы на щелчёк мышки по объекту он поварачивался а ты мне говориш про хай и лоу поли!!! этот BOX только 6 полигонов имеет а квест вылетает!!!
и я прикрасно знаю что такой метод используют во многих играх!!! даже использовал в своей: Я зделал остров для рендеринга красивый из кучи объектов!!! а для колизии без текстур и из боксов(кроме земли)


Название: Re: Глюк
Отправлено: Const_47 от 11 Января 2009, 17:40:33
Я тебе в идеале говорю как должно быть. Такой подход как у тебя он логически не верен, поскольку ты пытаешся просчитать колизию мышы  для обэкта тогда, когда такая не может быть просчитана, потому как для нее нет даных(матрици), которая
будет просчитана только тогда(конкретно это часть rotate вектора), когда будет просчитана колизия:))). Другими словами , ты циклиш просчет:))).

Вот я и предлагаю тебе ввести меш - заместитель, так сказать "физ" тело, а то сколько поли в нем будет твое личное дело. 
 


Название: Re: Глюк
Отправлено: KBECT0MAH от 11 Января 2009, 20:03:41
Вступление
Давным давно, жил да был и пропал..  :D
Его славное имя осталось в памяти..  ;D
Прошло время и он опять вернулся..   :o

По существу
Const_47, от "кашистов" ждать анализа информации, понимания и тем более благодарностей не стоит   ;D

cashis, ты сам почти ответил на свой вопрос:
Цитировать
Если потсоединить всё это просто к Start3Dscene то при клике на объекте значения изменяются без вылетов
то что ты не знаешь как назначить значение в Value - это не глюк  ;)

Есть такой канал Set Value, из первого "чилдрена" он берет значение и назначает последующим.
.


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 25 Января 2009, 21:11:23
А как сделать именно так, чтобы в этой же ситуации при наводке на объект присваивало 1, а при нахождении курсора в каком либо другом месте было 0?
ну соответственно чтоб можно было с этой величиной потом работать :)


Название: Re: Глюк
Отправлено: Erath от 26 Января 2009, 13:23:21
Detect Mouse Collision


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 26 Января 2009, 13:25:10
Сумничал? :D Почитай выше ;)


Название: Re: Глюк
Отправлено: cashis от 26 Января 2009, 14:00:46
А как сделать именно так, чтобы в этой же ситуации при наводке на объект присваивало 1, а при нахождении курсора в каком либо другом месте было 0?
ну соответственно чтоб можно было с этой величиной потом работать :)
чёт вопрос какойто непонятный! в DETECT MOUSE COLLISION наводиш на объект получаешь 1 убираешь 0!!! главное потом эту величину правильно применять а то будет вылетать как в моём случае!!!


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 26 Января 2009, 20:46:10
Объясняю. Если подключить Detect Mouse Collision к объекту, то через set value 1 или 0 не выцепить!
Цитировать
главное потом эту величину правильно применять а то будет вылетать как в моём случае!!!
Главное даже не в вылете. Дело в том, что эту величину нигде больше использовать не получается >:(
Сделал простой пример.
Если использовать где то потом эту величину от Detect Mouse Collision, то она не принимает только 1 при наводке, а скачет...
пы.сы. Через value operator как KBECT0MAH показал меня не устраивает...


Название: Re: Глюк
Отправлено: Viik от 26 Января 2009, 23:34:11
У меня колтжен вообще не ловит, странно что у тебя вообще что-то ловит, просто для колижена нужно использоват примитивы а не меш с удаленными поликами. Хоть иногда полезно хелп читать на те ченелы которые используеш. Это первое, а второе это то что Detect Mouse Collision нужно юзать хоть с какой-то камерой для его корректной работы.


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 26 Января 2009, 23:42:14
камера не причём. я сделал просто пример. у меня в проекте (с камерой и со всякой кучей ещё чего :) ) наблюдается такая же штука. Ну вобщем задача вот какая: мне нужно выцепить величину от Detect Mouse Collision


Название: Re: Глюк
Отправлено: KBECT0MAH от 27 Января 2009, 08:43:03
Если использовать где то потом эту величину от Detect Mouse Collision, то она не принимает только 1 при наводке, а скачет...

Ты сделал такой вывод лишь по одному, не удачному примеру?

Объясню почему у тебя в данном примере "скачет":
1. у тебя коллизия происходит когда наводиш на полигон;
2. когда нажимаешь ЛКМ, у тебя получается 1 и происходит вращение объекта;
3. когда твой объект повернулся, полигон тоже повернулся и оказался вне зоны коллизии мыши;
4. когда нет коллизии, твоё значение опять становится 0 и объект возвращается в исходное положение.

Поставь в свой пример вместо "дырчатого" объекта примитив или замкнутый объект и посмотри "скачет" ли..

З.Ы.
Если курсор окажется в зоне пересечения полигона в обоих положениях, то и твой пример работает ;)
.


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 27 Января 2009, 12:14:43
Ачуме-е-еть!! :D
Никто конечно так и не понял, что я хотел ;D НО! вот в чём прикол!) Разбирался в своей сцене, и проблема у меня была такая, что я не мог обратиться к величине Detect Mouse Collision, Т.Е.: я эту величину вставлял в формулу, которая срабатывала по нажатию лкм через тригер. Ситуация: курсор находится на объекте - 1, не находится - 0. Да. Всё хоршо. :) НО!. В момент обращения к формуле, где у меня задействована величина Detect Mouse Collision, она в момент обращения, даже при нахождении курсора на объекте, обращалась в ноль, а потом обратно в единицу. Но в единицу уже тогда, когда обращение к формуле уже не происходило.
И ачуметь...упростил свою сцену до невозможного, удалил всё ненужное и УЖЕ при обращении к формуле у меня 1!!))) :o ;D
Что то удалил походу... что то, что мешало брать величину DMC..
что за магия??
фуф) думаю поймёте наконец чё хотел)))
пы.сы.Разберусь, чё удалил, чё мешало, отрапартую :)
Пы.пы.сы.Спасибо всем кто пытался помочь) не мог нормально изложить свою проблему... ::)


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 27 Января 2009, 22:42:08
Ну прикооол..... *бьюсь об стену* у меня перед обработкой детекта стоял bloom)))) а он заслонял своей плёнкой перед камерой вообще любую колизию... ахаахаа ;D ;D ;D


Название: Re: Глюк
Отправлено: Viik от 27 Января 2009, 23:42:27
Ну дык я тебе про это и говорил - правильно юзай камеру, у блума своя флет камера а маус колижен работает только когда объект и проверка находять под одной и тойже камерой.


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 27 Января 2009, 23:44:40
Спасибо тебе) недопоняли друг друга.. ;)


Название: Re: Глюк
Отправлено: VFX от 28 Января 2009, 15:29:53
хм.. не пойму я. detect mouse collision работал отлично пока не добавил 3d navigation camera. почему перестало работать?


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 28 Января 2009, 18:26:51
кинь сценку, посмотрю


Название: Re: Глюк
Отправлено: VFX от 29 Января 2009, 15:51:25
во. и ещё вопрос, чтоб не плодить тем, как примитиву plane назначить text в виде текстуры? Тоесть набирать его в канале, а он отображался на этом плэйне.


Название: Re: Глюк
Отправлено: →|๖ۣۜDen|← от 29 Января 2009, 20:41:40
Поменяй chanelCaller и Render местами. ;)


Название: Re: Глюк
Отправлено: Const_47 от 29 Января 2009, 21:00:47
http://img142.imageshack.us/my.php?image=rttuo2.gif


Название: Re: Глюк
Отправлено: VFX от 29 Января 2009, 23:03:22
спасибо Const_47, →|Den|←.