03-30-2011, 08:12 PM | #101 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Все будит - и ствол и жизнь, дайте времени вагон)))
|
||
04-11-2011, 11:30 AM | #102 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Отсюда я беру идеи по оборудованию корвета:
Военное-дело -- Корабли-будущего Военное-дело -- Эсминцы |
||
04-11-2011, 01:58 PM | #103 | ||
Джаспер
Faction: Кушане - киит Сомтау Join Date: Dec 2010
Location: Хиигара
Posts: 1,557
|
Re: Внутри корабля
Интересный материал. Правда в роликах почти не упоминался внутренний дизайн кораблей, за исключением нескольких сравнительно коротких кадров.
P.S. Музыка в роликах взята из C&C3. |
||
04-11-2011, 02:50 PM | #104 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Да сори нужно уточнить, идея того что внутри корвета могут быть шаттлы это аналог того, что на современном судне есть вертолеты. Плюс круговой радар на американском дестроере.
Никогда не задумывался над музыкой Вот новый обзор. Это конечно еще не ИИ, но и не чистая анимация. Два манипулятора определяют место положения очередного блока, смещается к нему и запускает ответствующие анимации. В полном корабле отключения блоков компьютера будит влиять на работоспособность систем управляемых теми или иными блоками. ссылка для стачивания 12.rar пароль: KUPRUM 2 Управление то же, Как и прежде понадобится вивер - вот ссылка: Viewer.rar, пароль: viewer Управление: Передвижение так же и осталось при помощи стрелочек. LShift - фиксация курсора зажатая ЛКМ - вращение камеры щелчке ЛКМ иногда и ПКМ - кнопки действия F12 - рестарт сцены Пробел - ускорение в 3 раза R - скринсшот ESC - выход из программы Под конец загрузки прога долго стоит, но потом все равно погружается - пока не знаю с чем это связано, постараюсь убрать в дальнейшем. Last edited by KUPRUM : 04-11-2011 at 08:06 PM. |
||
04-12-2011, 04:20 PM | #105 | ||
Джаспер
Faction: Кушане - киит Сомтау Join Date: Dec 2010
Location: Хиигара
Posts: 1,557
|
Re: Внутри корабля
Неплохо. Надо будет тебе космосимулятор делать.
Да не просто симулятор, а с элементами шутера при абордаже! P.S. |
||
04-12-2011, 04:27 PM | #106 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
А кто сказал, что я не делаю
|
||
04-14-2011, 08:06 PM | #107 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Ребят кто знает математику - помогите.
Необходима формула коррекции угла направленности вектора. Нашел следующий пример: Dy1,dx1, dy2,dx2 – координаты объектов на плоскости. Вроде как определяем координаты гипотенузы. dx=(dx1-dx2) dy=(dy1-dy2) Рассчитываем поправку Y=atan(dy/dx) Вот дальше я совсем не понимаю что это x2<x1 and y2>y1 Quad=0 x2<x1 and y2<y1 Quad=0 x2>x1 and y2<y1 Quad=pi x2>x1 and y2>y1 Quad=pi Проблемам в том, что это только для оси Z, а как его адаптировать для других осей без понятия уже. Или подскажите где взять такую теорему. |
||
04-14-2011, 09:09 PM | #108 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Ничего не понял.
Какая коррекция нужна? Какого конкретно угла? p.s. В чём заключается задача? Может подскажу решение. |
||
04-14-2011, 09:15 PM | #109 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Есть два объекта - объект один это цель, объект два это ну пусть ракета, как определить куда должна лететь ракета что бы попасть в цель. Приведенная выписка формул мне встречается уже дважды, в учебнике по action script, и в примерах по esp creator. Проблемам в том, что эти формулы работают только для оси z.
|
||
04-14-2011, 09:20 PM | #110 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Я так понимаю, нужно плавно повернуть 3-мерный вектор к цели?
|
||
04-14-2011, 09:22 PM | #111 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Да хотя бы просто выяснить сколько и куда поворачивать, а дальше как нибудь сам))))
|
||
04-14-2011, 09:48 PM | #112 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Я бы посоветовал, для наилучшего результата:
|
||
04-14-2011, 10:03 PM | #113 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Спасибо, я опробую в этом разобраться, а представленные выше формулы тебе не знакомы? Там очень простой алгоритм с их применением выходит.
Как читается вот такое выражение p1[2] = p->z; ? ну то есть что значит знак ">" в нем? Это из "Произвести сферическую линейную интерполяцию (slerp)". Last edited by KUPRUM : 04-14-2011 at 10:20 PM. |
||
04-14-2011, 10:27 PM | #114 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Нет. Я не понял для чего нужны эти вычисления.
Такое ощущение, что это обрывки всего алгоритма. Может быть достаточно, в этом случае, простой интерполяции векторов. Но с кватернионами поворот происходит по кратчайшей дуге, с учетом вращения вокруг оси. Добавлено через 12 минут Считай написано: "p1[2] = p.z". "->" - это оператор для косвенного доступа к переменным и методам объекта в C++. То есть: Если "p" - объект, то получить "z" можно так: "p.z". А если указатель на него, то так: "p->z". Last edited by Agronom : 04-14-2011 at 10:42 PM. Reason: добавлено сообщение |
||
04-14-2011, 10:40 PM | #115 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Это чисто формулы, пример полного алгоритма такой (это Common Lisp)
Code:
(setq Xbase (nth 0(getobjectlocation Follower 1))) ; Позиция объекта который будит двигается за курсором (setq Ybase (nth 1(getobjectlocation Follower 1))) (setobjectlocation "CamTracker" Xbase Ybase 0) ; это фиксация камеры получение положения курсора в пиксилях Code:
(setq x (nth 0 (getcursorpos))) (setq y (nth 1 (getcursorpos))) Ниже различные варианты проигрывания анимации, в зависимости от условий Code:
(if (/= (pickobjectatpoint x y ) MeshName)(progn (animationonoff FollowerControls Run 1 2) (triggeranimation Leader "Set as Cursor01") ; use cheese wedge as cursor (objectshowhide Leader 0) ) (progn (animationonoff FollowerControls Stand 1 2) (triggeranimation Leader "Set as Cursor01" 1) ; stop cheese wedge as cursor (objectshowhide Leader 1) ) ) Получаем координаты куда кликнул пользователь Code:
(setq worldPoint (pickpointonplane x y '( 0 0 1 0))) Code:
(setq Xpos1 (nth 0 worldPoint)) ; cursor position (setq Ypos1 (nth 1 worldPoint)) ;we know z is 0 Code:
(setobjectlocation Leader Xpos1 Ypos1 0) ; set cursor position object Code:
Xbase Ybase координаты следящего объекта (setq Xvector1 (- Xpos1 Xbase)) ; get vector displacement using the planar position with base point (0,0) (setq Yvector1 (- Ypos1 Ybase)) ; Code:
(setq mag1 (sqrt (+ (pow Xvector1 2)(pow Yvector1 2)))) ; get magnatude/length of vector Code:
(if (< mag1 12) ;if teapot is getting close to the cursor, slow it down (using the distance + 2), else keep it fast (setanimationvarbydesc Follower "Object Key Move01" "X Dist Per Sec" (+ mag1 2)) (setanimationvarbydesc Follower "Object Key Move01" "X Dist Per Sec" 12) ) Code:
(setq dir (atan (/ Yvector1 Xvector1))) ; get direction in radians ; figure out which quadrant it's in to correct direction in radians Code:
(if (and (< Xbase Xpos1)(> Ybase Ypos1))(progn ;(princ "quad 1\n") (setq Quad 0) ) ) ; quad1 (if (and (< Xbase Xpos1)(< Ybase Ypos1))(progn ;(princ "quad 4\n") (setq Quad 0) ) ); quad 4 (if (and (> Xbase Xpos1)(< Ybase Ypos1))(progn ;(princ "quad 3\n") (setq Quad pi) ) ) ; quad 3 (if (and (> Xbase Xpos1)(> Ybase Ypos1))(progn ;(princ "quad 2\n") (setq Quad pi) ) ); quad 2 Code:
(setq CorrectedRadian (+ quad dir)) ; try to slow rotation when too close это замедление ротации, но почему то оно отключено Code:
;(if (and (< mag1 3)(> mag1 1.5))(setq CorrectedRadian (min (abs(+ OldRadian 1)) (abs CorrectedRadian)))) Code:
(setobjectrotation Leader 0 0 CorrectedRadian) (setobjectrotation Follower 0 0 CorrectedRadian) Code:
(setq OldRadian CorrectedRadian) Code:
(exit T) \\__________________________________________________________________________ То есть z это внешняя переменная? Я знаком с C# а вот до C++ никак руки не доходят. Спасибо за помощь? попробую разобраться на выходных с этими алгоритмами)))) |
||
04-14-2011, 10:58 PM | #116 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Это компонента кватерниона "p".
Code:
struct Quaternion { float x, y, z, w; }; Code:
Quaternion a; // объект класса Quaternion Quaternion *p = &a; // указатель на объект "a" (его адрес в памяти) // a.z == p->z |
||
04-14-2011, 11:02 PM | #117 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
М да придется поломать мозги, кажется понял. Меня всегда напрягало что в си нет глобальных переменных. Quaternion это выходит список или это целая функция?
А это как понимать? Quaternion * p отсюда это умножение? Code:
void Slerp(Quaternion * res, Quaternion * q, Quaternion * p, float t) Last edited by KUPRUM : 04-14-2011 at 11:13 PM. |
||
04-14-2011, 11:16 PM | #118 | ||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
|
||
04-14-2011, 11:20 PM | #119 | ||
KUPRUM
Faction: Хиигаряне Join Date: Nov 2008
Posts: 1,092
|
Re: Внутри корабля
Не, там тоже нет. Глобальные переменные есть в делфи, а в лисп они все глобальные.
Способы ссылки на переменные в C# аналогичен C++ Плохо что класс - значит оно мне тем более не канает. Не разрабатывать же его отдельно на лисп |
||
04-14-2011, 11:23 PM | #120 | |||
Agronom
Join Date: Sep 2008
Posts: 29
|
Re: Внутри корабля
Quote:
res - указатель (переменная, где хранится адрес кватерниона). В C# будет что-то типа: public static void Slerp(out Quaternion res, Quaternion q, Quaternion p, float t); |
|||
Currently Active Users Viewing This Thread: 2 (0 members and 2 guests) | |
|
|