Недавно делал игру и всвязи с этим возникло много проблем вот одна из них(так и не смог решить, но игру сделал): я когда делаю вращение объекта после клика на него у меня квест вылетает!!!
Я делаю так:
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*число))
-----------------------------------------------------
Вылетает ли у вас!!! И как мне сделать вращение если этот способ не правильный!!!
вот так
Вылетает :( Очевидно DetectMouseCollision не приспособлен для работы с motion...
проблема такая Если потсоединить всё это просто к Start3Dscene то при клике на объекте значения изменяются без вылетов а как только присоединяешь к rotation vector объекта сразу вылетает!!!
В том что оно не работает нет ничево удивительного.
Попытайся так.
http://img301.imageshack.us/my.php?image=hehepu4.jpg
Где бокс 1 это оченьсильноловполимеш:))) который нужен будет тебе для колизий и детектов, а бокс 2 это именно та модель которую ты будеш рисовать.
Думаю идея понятна.
Цитата: Const_47 от 11 января 2009, 16:27:33
бокс 1 это оченьсильноловполимеш:))) который нужен будет тебе для колизий и детектов, а бокс 2 это именно та модель которую ты будеш рисовать.
Я кстати тоже так думал, ну как тупо получается...неужели до сих пор нет фикса от такой гадости?
Ну тупо не тупо это как сказать. Вот люди налепят хайполимешей
к физике-колизии а потом удивляются почему все тормозит:)))
Очень много игрух использует такой подход, когда различают
"графическое" и "физическое" тело обекта.
Ловполи тело может понадобится и для просчета теней в риалтайм
ну и вооюще для многих вещей...
какая связь моего вопроса и твоего ответа!!! Я спрашиваю как зделать так чтобы на щелчёк мышки по объекту он поварачивался а ты мне говориш про хай и лоу поли!!! этот BOX только 6 полигонов имеет а квест вылетает!!!
и я прикрасно знаю что такой метод используют во многих играх!!! даже использовал в своей: Я зделал остров для рендеринга красивый из кучи объектов!!! а для колизии без текстур и из боксов(кроме земли)
Я тебе в идеале говорю как должно быть. Такой подход как у тебя он логически не верен, поскольку ты пытаешся просчитать колизию мышы для обэкта тогда, когда такая не может быть просчитана, потому как для нее нет даных(матрици), которая
будет просчитана только тогда(конкретно это часть rotate вектора), когда будет просчитана колизия:))). Другими словами , ты циклиш просчет:))).
Вот я и предлагаю тебе ввести меш - заместитель, так сказать "физ" тело, а то сколько поли в нем будет твое личное дело.
Вступление
Давным давно, жил да был и пропал.. :D
Его славное имя осталось в памяти.. ;D
Прошло время и он опять вернулся.. :o
По существу
Const_47, от "кашистов" ждать анализа информации, понимания и тем более благодарностей не стоит ;D
cashis, ты сам почти ответил на свой вопрос:
ЦитироватьЕсли потсоединить всё это просто к Start3Dscene то при клике на объекте значения изменяются без вылетов
то что ты не знаешь как назначить значение в Value - это не глюк ;)
Есть такой канал Set Value, из первого "чилдрена" он берет значение и назначает последующим.
.
А как сделать именно так, чтобы в этой же ситуации при наводке на объект присваивало 1, а при нахождении курсора в каком либо другом месте было 0?
ну соответственно чтоб можно было с этой величиной потом работать :)
Detect Mouse Collision
Сумничал? :D Почитай выше ;)
Цитата: →|Den|← от 25 января 2009, 21:11:23
А как сделать именно так, чтобы в этой же ситуации при наводке на объект присваивало 1, а при нахождении курсора в каком либо другом месте было 0?
ну соответственно чтоб можно было с этой величиной потом работать :)
чёт вопрос какойто непонятный! в DETECT MOUSE COLLISION наводиш на объект получаешь 1 убираешь 0!!! главное потом эту величину правильно применять а то будет вылетать как в моём случае!!!
Объясняю. Если подключить Detect Mouse Collision к объекту, то через set value 1 или 0 не выцепить!
Цитироватьглавное потом эту величину правильно применять а то будет вылетать как в моём случае!!!
Главное даже не в вылете. Дело в том, что эту величину нигде больше использовать не получается >:(
Сделал простой пример.
Если использовать где то потом эту величину от Detect Mouse Collision, то она не принимает только 1 при наводке, а скачет...
пы.сы. Через value operator как
KBECT0MAH показал меня не устраивает...
У меня колтжен вообще не ловит, странно что у тебя вообще что-то ловит, просто для колижена нужно использоват примитивы а не меш с удаленными поликами. Хоть иногда полезно хелп читать на те ченелы которые используеш. Это первое, а второе это то что Detect Mouse Collision нужно юзать хоть с какой-то камерой для его корректной работы.
камера не причём. я сделал просто пример. у меня в проекте (с камерой и со всякой кучей ещё чего :) ) наблюдается такая же штука. Ну вобщем задача вот какая: мне нужно выцепить величину от Detect Mouse Collision
Цитата: →|Den|← от 26 января 2009, 20:46:10
Если использовать где то потом эту величину от Detect Mouse Collision, то она не принимает только 1 при наводке, а скачет...
Ты сделал такой вывод лишь по одному, не удачному примеру?
Объясню почему у тебя
в данном примере "скачет":
1. у тебя коллизия происходит когда наводиш на полигон;
2. когда нажимаешь ЛКМ, у тебя получается 1 и происходит вращение объекта;
3. когда твой объект повернулся, полигон тоже повернулся и оказался
вне зоны коллизии мыши;
4. когда
нет коллизии, твоё значение опять
становится 0 и объект возвращается в исходное положение.
Поставь в свой пример вместо "дырчатого" объекта примитив или замкнутый объект и посмотри "скачет" ли..
З.Ы.
Если курсор окажется в зоне пересечения полигона в обоих положениях, то и твой пример работает ;)
.
Ачуме-е-еть!! :D
Никто конечно так и не понял, что я хотел ;D НО! вот в чём прикол!) Разбирался в своей сцене, и проблема у меня была такая, что я не мог обратиться к величине Detect Mouse Collision, Т.Е.: я эту величину вставлял в формулу, которая срабатывала по нажатию лкм через тригер. Ситуация: курсор находится на объекте - 1, не находится - 0. Да. Всё хоршо. :) НО!. В момент обращения к формуле, где у меня задействована величина Detect Mouse Collision, она в момент обращения, даже при нахождении курсора на объекте, обращалась в ноль, а потом обратно в единицу. Но в единицу уже тогда, когда обращение к формуле уже не происходило.
И ачуметь...упростил свою сцену до невозможного, удалил всё ненужное и УЖЕ при обращении к формуле у меня 1!!))) :o ;D
Что то удалил походу... что то, что мешало брать величину DMC..
что за магия??
фуф) думаю поймёте наконец чё хотел)))
пы.сы.Разберусь, чё удалил, чё мешало, отрапартую :)
Пы.пы.сы.Спасибо всем кто пытался помочь) не мог нормально изложить свою проблему... ::)
Ну прикооол..... *бьюсь об стену* у меня перед обработкой детекта стоял bloom)))) а он заслонял своей плёнкой перед камерой вообще любую колизию... ахаахаа ;D ;D ;D
Ну дык я тебе про это и говорил - правильно юзай камеру, у блума своя флет камера а маус колижен работает только когда объект и проверка находять под одной и тойже камерой.
Спасибо тебе) недопоняли друг друга.. ;)
хм.. не пойму я. detect mouse collision работал отлично пока не добавил 3d navigation camera. почему перестало работать?
кинь сценку, посмотрю
во. и ещё вопрос, чтоб не плодить тем, как примитиву plane назначить text в виде текстуры? Тоесть набирать его в канале, а он отображался на этом плэйне.
Поменяй chanelCaller и Render местами. ;)
http://img142.imageshack.us/my.php?image=rttuo2.gif
спасибо Const_47, →|Den|←.