Форумы Homeworld3.RU

Форумы Homeworld3.RU (http://www.homeworld3.ru/forum/index.php)
-   Игры мечты (http://www.homeworld3.ru/forum/forumdisplay.php?f=44)
-   -   Внутри корабля (http://www.homeworld3.ru/forum/showthread.php?t=2080)

Phantom 03-14-2011 10:01 PM

Re: Внутри корабля
 
Я думаю турелька будет лучше - твои дроны все-таки не на этом специализируются - если начнут захватывать, они же не побегут сражацца, бросив все свои должности... а делать отдельных дронов-пехов ваще не круто - легче турельку поставить :D

Джаспер 03-14-2011 10:30 PM

Re: Внутри корабля
 
2 Attachment(s)
Ещё рисунки моего видения внутренностей корабля:
1 - Кают-компания
2 - Коридор жилого отсека.

KUPRUM 03-14-2011 11:06 PM

Re: Внутри корабля
 
Не слишком высокие переборки у дверей?

Phantom 03-14-2011 11:17 PM

Re: Внутри корабля
 
По образу и подобию подлодок землянских.

Джаспер, это как-то похоже на курорт с номерами в отеле - а где торчащие трубы, обгоревшая обшивка, искрящаяся проводка? :)

HIX 03-15-2011 04:27 PM

Re: Внутри корабля
 
Чтобы особо не гадать, вот хиигарский км:
http://www.homeworld3.ru/pict/hw2/st...tic_comp06.jpg

Думаю, им не особо было бы в кайф сидеть в скафандрах за столиком, хотя не знаю...
Я думаю, с такой развитостью криогенных технологий, организовать сон для них будет не проблема.

Вот ещё материал для размышления :
http://images4.wikia.nocookie.net/__...s/5/53/Hw5.jpg - кабина пЕлота
http://shipyards.relicnews.com/conce...lay.htm?03.jpg - собсна думаю сами знаете что это за место
http://homeworldarchives.com/hw2comp/Misc/RC_pilot.jpg - воягровский пелот
http://shipyards.relicnews.com/conce...htm?cryo14.jpg - кряокамеры

KUPRUM 03-15-2011 06:02 PM

Re: Внутри корабля
 
Мда, судя по картинкам устройства ввода-вывода данных во вселенной хв на уровне на 90 гг. Спасибо за картинки, HIX, и тебе, Джаспер.

Джаспер 03-15-2011 08:08 PM

Re: Внутри корабля
 
Ответный респект, KUPRUM. Скоро сделаю ещё рисунков и выложу одним архивом.

KUPRUM 03-17-2011 04:12 PM

Re: Внутри корабля
 
С картой я погорячился - слишком тяжелая модель получается - но карту я создал, если есть желание ознакомится что получилось, качайте.

Немного изменил схему того как работает программа. Теперь исполняемый файл лежит отдельно от файлов проекта, это дает возможность экономить время загрузки - скачав исполняемый файл вы сможете в дальнейшем его больше не скачивать, а просто закидывать в папку с ним файл проекта.

Исполняемый качайте тут: Viewer.rar

пароль: viewer

Файл карты качайте тут: user map.rar

пароль: map

Закидываете файл проекта в папку с исполняемым файлом, запускаете исполняемый файл и выбирайте нужный вам проект в списке проектов :)


Phantom 03-18-2011 10:00 PM

Re: Внутри корабля
 
А где ссыль на новый кораблик?

KUPRUM 03-18-2011 10:27 PM

Re: Внутри корабля
 
Phantom, занимаюсь оптимизацией производительности))) У меня при редактировании в некоторых местах фпс падает до 30.
Народ, если кто хочет, присоединяйтесь к проекту, исходниками поделюсь.

Добавлено через 38 часов 47 минут
Вот так выглядит исходник в редакторе (конечно немного причесанный):

Джаспер 03-25-2011 06:27 PM

Re: Внутри корабля
 
KUPRUM, скажи плз в каком редактроре ты ето ч`юдо делаешь и дай ссылку нормальную, где его можно скачать.

KUPRUM 03-25-2011 07:09 PM

Re: Внутри корабля
 
Quote:

Originally Posted by KUPRUM (Post 42766)
Там написано Esperient Creator, движок не хрень, просто жутко сырой даже спустя 2 или 3 года. ))) Вот официальный сайт. Да, он понимает дофига моделей, так что если умеешь работать в 3D max, то можешь просто импортировать модели в Esp Creator и компилировать их в *.exe.

Модельки я брал отсюда, прога понимает их без конвертирования. При импортировании есть одна тонкость - при первом открытии текстуры на корабле будут как надо, при втором они пропадут. Чтобы этого избежать, после импортирования сохраняем сцену, потом надо все текстуры перекинуть в папку Images. В версии 3.8 данная папка находится в моих документах, в ранних версиях - в директории с прогой. Второй вариант решения данной проблемы это добавить путь в Settings -> Search Path Configuration в закладке Images - жмем кнопку Add и указываем откуда брать текстуры.

Для компиляции существует другая опция - Publish -> Publish User File.

Ссылку дать не могу, ибо сам проверяю наличие свежих обновлений через поиск в яндексе, но вот где то ссылки были - dc.ucoz.ru

К тому же куча примеров, которыми можно воспользоваться. Могу помочь в освоении.

KUPRUM 03-30-2011 11:53 AM

Re: Внутри корабля
 
Новая рабочая версия внутренностей корабля. Ссылка для стачивания, пароль KUPRUM1.

Управление:
Передвижение так же и осталось при помощи стрелочек.
LShift - фиксация курсора
зажатая ЛКМ - вращение камеры
щелчке ЛКМ иногда и ПКМ - кнопки действия
F12 - рестарт сцены
Пробел - ускорение в 3 раза
R - скринсшот
ESC - выход из программы

Для запуска сцены вам нужен ESPviewer. Если вы его не скачали, скачайте тут, пароль: viewer.
После поместите файл проекта (proba pera.esp) в папку с ESPviewer. Запускайте вивер и выбирайте нужный пакет, если вы раньше скачивали map, то в вивере будут отображены оба проекта.

Переработал систему загрузки объектов, что подняло производительность.
Теперь я вплотную займусь реализацией различных идей, таких как:
Ангар с двумя ЛА.
Носовое противоалкогольное орудие.
Голограммы на окнах.
А также просто наполнением отсеков судна.

Для справки о сцене:
Общее время работы над сценой - больше 100 часов
На сцене отображается 2,246 объектов
Полигоны - 126,925
Вершины - 205,560
Объем ОЗУ, занимаемый объектами - 2,012,416
Видео ОЗУ, занимаемое объектами - 7,515,810
На винте 6,317,261
В сцене используется 49 текстур занимающие 165,044,256 ОЗУ при отрисовке сцены
8 звуковых эффектов занимающих в ОЗУ - 1,507,125
В итоге редактор зафиксировал пик занятости ОЗУ 180,208,255

Джаспер 03-30-2011 01:22 PM

Re: Внутри корабля
 
Круто! Я смотрю ты использовал текстуры наггарока. :) В принципе можно шутер по hw делать! :rofl::rofl::rofl:

Только немного по-моему странно, что на космическом корабле, где есть риск разгерметизации так много открытого пространства. Но по любому КРУТО!!!

KUPRUM 03-30-2011 01:31 PM

Re: Внутри корабля
 
Джаспер спасибо за похвалу. Повторяю - я думаю что жилые помещения экипаж покидает только по нужде (ну в смысле в случае аварии).

Кстати, не тормозит? Какая у тебя система?

Джаспер 03-30-2011 06:04 PM

Re: Внутри корабля
 
Винда 7. Не тормозит, но пару раз висла.

Если падаешь с моста где нет перил - виснет. И ещё когда к дверям подходишь вплотную, звук пропадает и тоже может подвиснуть. А, и ещё в большой комнате одна стена белая всегда.

Вроде больше ничего не было.

KUPRUM 03-30-2011 06:16 PM

Re: Внутри корабля
 
Спасибо посмотрю)))

Phantom 03-30-2011 07:14 PM

Re: Внутри корабля
 
Конечно лагов еще миллион, но выглядит грандиозно. На роботов забей, сделай простеньких (просто огромные анимированные манипуляторы) да турельки с анимацией.
Если упасть с подъема на верхний уровень сенсорного зала, то можно побродить вслепую в зале, где одна стена всегда белая :D

ахаха, нашел кучу пасхалок, так весело блин

KUPRUM 03-30-2011 07:34 PM

Re: Внутри корабля
 
Хочу часть ходов оставить без перил, ну а падение с них будит смертельно)))

Phantom 03-30-2011 07:56 PM

Re: Внутри корабля
 
Приделай линейку жизней, ствол и будет тебе дум второй :D

KUPRUM 03-30-2011 08:12 PM

Re: Внутри корабля
 
Все будит - и ствол и жизнь, дайте времени вагон)))

KUPRUM 04-11-2011 11:30 AM

Re: Внутри корабля
 
Отсюда я беру идеи по оборудованию корвета:

Военное-дело -- Корабли-будущего

Военное-дело -- Эсминцы

Джаспер 04-11-2011 01:58 PM

Re: Внутри корабля
 
Интересный материал. Правда в роликах почти не упоминался внутренний дизайн кораблей, за исключением нескольких сравнительно коротких кадров.

P.S. Музыка в роликах взята из C&C3. :)

KUPRUM 04-11-2011 02:50 PM

Re: Внутри корабля
 
Да сори нужно уточнить, идея того что внутри корвета могут быть шаттлы это аналог того, что на современном судне есть вертолеты. Плюс круговой радар на американском дестроере.

Никогда не задумывался над музыкой :)

Вот новый обзор. Это конечно еще не ИИ, но и не чистая анимация. Два манипулятора определяют место положения очередного блока, смещается к нему и запускает ответствующие анимации. В полном корабле отключения блоков компьютера будит влиять на работоспособность систем управляемых теми или иными блоками.
ссылка для стачивания 12.rar
пароль: KUPRUM 2

Управление то же,
Как и прежде понадобится вивер - вот ссылка: Viewer.rar, пароль: viewer

Управление:
Передвижение так же и осталось при помощи стрелочек.
LShift - фиксация курсора
зажатая ЛКМ - вращение камеры
щелчке ЛКМ иногда и ПКМ - кнопки действия
F12 - рестарт сцены
Пробел - ускорение в 3 раза
R - скринсшот
ESC - выход из программы

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

Джаспер 04-12-2011 04:20 PM

Re: Внутри корабля
 
Неплохо. Надо будет тебе космосимулятор делать. :)

Да не просто симулятор, а с элементами шутера при абордаже! :shotgun: :sniper: :guns: :cruiser:

P.S. :lol:

KUPRUM 04-12-2011 04:27 PM

Re: Внутри корабля
 
А кто сказал, что я не делаю :laugh:

KUPRUM 04-14-2011 08:06 PM

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, а как его адаптировать для других осей без понятия уже. Или подскажите где взять такую теорему.

Agronom 04-14-2011 09:09 PM

Re: Внутри корабля
 
Ничего не понял.
Какая коррекция нужна? Какого конкретно угла?

p.s. В чём заключается задача? Может подскажу решение.

KUPRUM 04-14-2011 09:15 PM

Re: Внутри корабля
 
Есть два объекта - объект один это цель, объект два это ну пусть ракета, как определить куда должна лететь ракета что бы попасть в цель. Приведенная выписка формул мне встречается уже дважды, в учебнике по action script, и в примерах по esp creator. Проблемам в том, что эти формулы работают только для оси z.

Agronom 04-14-2011 09:20 PM

Re: Внутри корабля
 
Я так понимаю, нужно плавно повернуть 3-мерный вектор к цели?

KUPRUM 04-14-2011 09:22 PM

Re: Внутри корабля
 
Да хотя бы просто выяснить сколько и куда поворачивать, а дальше как нибудь сам))))

Agronom 04-14-2011 09:48 PM

Re: Внутри корабля
 
Я бы посоветовал, для наилучшего результата:
  1. Преобразовать векторы в кватернионы: http://www.rossprogrammproduct.com/t...%20FAQ.htm#Q56
  2. Произвести сферическую линейную интерполяцию (slerp): http://wat.gamedev.ru/articles/quate...nterpolyatsiya
  3. Получить обратно вектор: http://www.rossprogrammproduct.com/t...%20FAQ.htm#Q57
    Или матрицу вращения: http://www.rossprogrammproduct.com/t...%20FAQ.htm#Q54
ИМХО ещё лучше хранить ориентацию сразу в кватернионах, т.к. у них не бывает "Gimbal lock": http://www.rossprogrammproduct.com/t...%20FAQ.htm#Q34

KUPRUM 04-14-2011 10:03 PM

Re: Внутри корабля
 
Спасибо, я опробую в этом разобраться, а представленные выше формулы тебе не знакомы? Там очень простой алгоритм с их применением выходит.

Как читается вот такое выражение p1[2] = p->z; ? ну то есть что значит знак ">" в нем? Это из "Произвести сферическую линейную интерполяцию (slerp)".

Agronom 04-14-2011 10:27 PM

Re: Внутри корабля
 
Quote:

Originally Posted by KUPRUM (Post 44440)
а представление выше формулы тебе не знакомы?

Нет. Я не понял для чего нужны эти вычисления.
Такое ощущение, что это обрывки всего алгоритма.

Может быть достаточно, в этом случае, простой интерполяции векторов.
Но с кватернионами поворот происходит по кратчайшей дуге, с учетом вращения вокруг оси.

Добавлено через 12 минут
Quote:

Originally Posted by KUPRUM (Post 44440)
Как читается вот такое выражение p1[2] = p->z; ?

Считай написано: "p1[2] = p.z".

"->" - это оператор для косвенного доступа к переменным и методам объекта в C++.
То есть:
Если "p" - объект, то получить "z" можно так: "p.z".
А если указатель на него, то так: "p->z".

KUPRUM 04-14-2011 10:40 PM

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
вот определении координат вектора где Xpos1 Ypos1 координаты щелчка
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++ никак руки не доходят.

Спасибо за помощь? попробую разобраться на выходных с этими алгоритмами))))

Agronom 04-14-2011 10:58 PM

Re: Внутри корабля
 
Quote:

Originally Posted by KUPRUM (Post 44443)
То есть z это внешняя переменная?

Это компонента кватерниона "p".
Code:

struct Quaternion
{
    float x, y, z, w;
};

Просто доступ косвенный:
Code:

Quaternion a; // объект класса Quaternion
Quaternion *p = &a; // указатель на объект "a" (его адрес в памяти)
// a.z == p->z


KUPRUM 04-14-2011 11:02 PM

Re: Внутри корабля
 
М да придется поломать мозги, кажется понял. Меня всегда напрягало что в си нет глобальных переменных. Quaternion это выходит список или это целая функция?

А это как понимать? Quaternion * p отсюда это умножение?

Code:

void Slerp(Quaternion * res, Quaternion * q, Quaternion * p, float t)

Agronom 04-14-2011 11:16 PM

Re: Внутри корабля
 
Quote:

Originally Posted by KUPRUM (Post 44445)
в си нет глобальных переменных.

Как это - нет? :apchhi: Может в C#? :D
Quaternion - это структура (в C++ - класс, где всё по умолчанию public).

KUPRUM 04-14-2011 11:20 PM

Re: Внутри корабля
 
Не, там тоже нет. Глобальные переменные есть в делфи, а в лисп они все глобальные.

Способы ссылки на переменные в C# аналогичен C++

Плохо что класс - значит оно мне тем более не канает. Не разрабатывать же его отдельно на лисп :confused:

Agronom 04-14-2011 11:23 PM

Re: Внутри корабля
 
Quote:

Originally Posted by KUPRUM (Post 44445)
А это как понимать? Quaternion * p отсюда это умножение?

Code:

void Slerp(Quaternion * res, Quaternion * q, Quaternion * p, float t)

Нет.
res - указатель (переменная, где хранится адрес кватерниона).

В C# будет что-то типа:
public static void Slerp(out Quaternion res, Quaternion q, Quaternion p, float t);


All times are GMT +3. The time now is 04:50 AM.