как несколько движков (звуковой, графический рендерный, физический) соединить в один движок?
ручками, больше вариантов не вижу.
Смысла отвечать более подробно не вижу, так как нет хорошего уровня навыков в программировании. Если будут конкретные вопросы, то задавайте их в соответствующих ветках форума или в чат конференции.
II. Порядок поведения на форуме. # Общение на форуме строится на принципах общепринятой морали и сетевого этикета. # Строго запрещено использование нецензурных слов, брани, оскорбительных выражений, в независимости от того, в каком виде и кому они были адресованы. В том числе при подмене букв символами. # Категорически запрещается любая реклама, в том числе реклама интернет-проектов (за исключением случаев предварительного согласования с администрацией).
# Ваша подпись на форуме не может быть длиннее 2-ух строк. К ней предъявляются те же требования, что и к сообщениям на форуме.
Советую сократить Вам подпись!!!!
Quote
это графика. Рассуждаем логически. Если ролик в 3d=>идем в раздел 3д анимации. С 2д- свой раздел
Сейчас просто хочется написать что нибудь от души. Я смотрю в зеркало, а вижу там не себя и тот человек, который смотрит на человека напротив - это тоже не я. Вот в этом и вся правда. Но интересно - что же способствует тому, чтобы я считал этого человека собой? Почему я начинаю играть по его глупым правилам?
а то ли ты видишь на самом деле?, так ли видят тебя другие, есть ли они, есть ли мысли, есть ли вообще что, как выйти из этого?
PS: каждый день, каждый раз разные мысли сочетания, неопределенный поиск, Как я тебя понимаю. Эти вопросы сводят с ума. Ответ постоянно ускользает. (хотя эти строки возможно не реальны, есть ли они вообще как строки, что они на самом деле передают, правда что мой зеленый каким я его вижу на самом деле не красный который видит кто то другой но называет его зеленым)
---- 7. Texture Settings ----------- Убираем галочку у Use Lightmap ----------- Убираем галочку у Splitmap ----------- Жмем OK и дожидаемся пока карта сгенерируется.
---- 8. Можете отредактировать рельеф на свой вкус и цвет
---- 9. Export ----------- Создадим папку в 3D Rad (c:\3d Rad\import\) необходима для RadImp'a ----------- Теперь экспортируем в нашу папку Export->Export OBJ and MTL ----------- Указываем имя и жмем Save ----------- В появившемся окне устанавливаем Adjust Max error(m) равным 1.4 ~ 36k треугольников. ----------- Жмем ОК ----------- Закрываем L3DT
Работаем с Fragmotion
---- 1. Запускаем Fragmotion
---- 2. Импортируем наш сохраненный файл ----------- Menu : File->Import ----------- Переходим к нашей папке C:\3d Rad\import\ ----------- Загружаем сохраненный нами obj файл
---- 3. Flip Normals ----------- Ctrl+A выделяем все вершины ----------- Menu : Face->Reverse Vertex Order
---- 4. Export ----------- Menu : File->Export ----------- Выбираем тип файла Direct X files (.x) ----------- Жмем Save ----------- Ставим галочку у Add Root Frame ----------- Жмем ok ----------- Выходим из программы
Работаем с RadImp
---- 1. Распаковываем архив в папку с 3D Rad чтобы 3DRad.exe и radimp.exe были в одной папке
---- 2. Запускаем RadImp ----------- Ставим галочку у Shadowmesh ----------- Ставим галочку у Copy Mesh ----------- Ставим галочку у Copy Textures ----------- Выделяем наш *.x файл (если горят 2 фрейма то верхний) ----------- Menu : 3d Rad->Import RigidBody Static ----------- Menu : 3d Rad->Import SkinMesh
---- 3. Закрываем RadImp
---- 4. Запускаем 3D Rad ----------- Добавляем в новый проект наш RigidBody ----------- Добавляем в новый проект наш SkinMesh ----------- Запускаем проект ----------- Останавливаем проект ----------- Закрываем 3D Rad
---- 5. Запускаем RadImp ----------- Выделяем наш *.x файл (если горят 2 фрейма то верхний) ----------- Menu : 3d Rad-> Create New/Update terrain-object from existing RB ----------- Закрываем RadImp
---- 6. Запускаем 3D Rad ----------- Добавляем в новый проект Terrain ----------- Жмем изменить у добавленного Terrain'a ----------- Выбираем наш созданный Terrain ----------- Все!!!
В данную тему добавляем Ваши наработки, с подробным описанием и функционалом. Добавляемая Вами наработка должна быть оформлена согласно приведенным ниже правилам.
Основные правила публикации в данной теме:
===[ Название ]----------------------------------------------------------------------
Название файла должно начинаться с GC_demo_xxxxxxxxxxx_vXX.3dr
GC_demo_ - обязательная часть, чтобы не путать с базовыми демками
xxxxxxxxxxx - произвольная уникальная часть
vXX - версия Вашей наработки, где XX это номер версии
.3dr - стандартное расширение редактора 3D Rad
===[ Описание ]----------------------------------------------------------------------
Необходимо описать, что в ней и как реализовано, какой метод применен, на что стоит обратить особое внимание. А главное, описать примитивы которые имитируют тот или иной объект если таковые имеются.
Одновременно указывать не более 5 ориентиров, выделяйте самое главное, не надо копировать весь список.
---- Базовый пример ---- Пример по импортированию сторонних элементов ---- Пример работы с анимацией ---- Работа с камерой ---- Визуальные эффекты ---- Работа с GUI, HUD, 2D ---- Физика ---- Интересный прием или техника ---- Оружие ---- Наработка FPS игры ---- Наработка RACING игры ---- Работа с полетами в атмосфере ---- Работа с водными объектами ---- Наработка RTS игры ---- Наработка SPACE Игры ---- Работа с сетью, MULTIPLAYER ---- SOUND ---- Работа с Контролами (Мышь, Клавиатура) ---- Оптимизация, Улучшение. ---- Работа со Скриптами ---- AI(ARTIFICIAL INTELLIGENCE) Искусственный Интеллект
Если вы добавите материал, который не соответствует правилам сайта, то данный материал попросту не пройдёт модерацию (подтверждение от администратора) и не будет доступным для других пользователей. Даже не пытайтесь загружать копипаст, кряки и прочие незаконные материалы! Некорректные материалы будут удаляться, а штрафники – получать замечания, баниться на сроки по нашему уставу.
Если ваш файл больших размеров, то храненим файлы на сервисе Files.gcup.ru Если сервис не доступен по данному адресу, то пользуемся gcup.ifolder.ru
В этом случае вы получите возможность закачать файл до 100 Мб. через интерфейс или FTP на неограниченное время хранения (при условии регистрации). Beta-версии или Демки также рекомендуем заливать на Files.gcup.ru и прикреплять ссылку для удалённого скачивания..
Зеркало: Зеркало файла должно быть на одном из бесплатных файловых хостингов, или же по прямой ссылке с любого другого источника. Оно не в коем случае не должно ни куда перенаправлять или пересылать через редиректы, в случаях нарушения данного правила, следует незамедлительный и безоговорочный бан.
===[ Пример ]-------------------------------------------------------------------------
Демка: GC_demo_rag-dolls_v01.3dr
Смешанный Ragdoll. Данная техника совмещает предварительно сделанную анимацию с системой ограничений. Таким образом, смерть персонажа отображается заранее продуманной, но физический движок проверяет допустимость каждого движения. Смешанный Ragdoll оказывается гораздо затратнее в плане вычислительных ресурсов, чем обычная «тряпичная кукла», но превосходит её на порядок повышенной реалистичностью отображения.
Только, пожалуйста, без всяких установочных файлов - инсталляторов.
Игра (или сжатый архив с игрой) не должна превышать 13 Mb.
Вопрос довольно таки сильный и серьезный возникает:
Для 3Д игры места конечно маловато, но правила есть правила. Так вот вопрос в заключается в том, как быть с тем что можно генерировать текстуры и музыку, потому что если допустим даже я найду время принять участие, то в принципе предполагаю, что у меня возникнет такая необходимость. Как администрация смотрит на то что игра будет идти без инсталятора, но генерацию ресурсов придется производить непосредственно перед первым запуском, а к описанию игры будет указан файл который отвечает за генерацию?
Просто не вижу другого способа, как можно было бы создать более приемлемое решение если пользоваться инсталяторами нельзя, а генерацию тех же ресурсов необходимо писать на чистом ассемблере.
Ну или на крайний случай, при первом запуске придется подождать несколько минут пока все ресурсы с генерируются хотя бы в первый раз?
Спрайтом, поставить! и Сначала должен идти фон а потом элементы меню по иерархии.
Quote
Простите что я к вам обращаюсь ещё раз просто мне надо закончить игру к понедельнику .а у меня остались только две нерешённые проблемы помогите мне пожалуйста их решить. 1) как отслеживать Lap и в демках не разобрался . в демках там трассы это круги а у меня просто прямая мне надо так чтоб после прохождения последнего waypoinта он у меня вылетал на другую сцену вэй поинтов весго 2. (сколько я не пытался сам сделать у меня ничего не выходит самая удачная попытка у меня была такая сразу после запуска он выходит))))) 2)как сделать таблицу рекордов. мне нужно чтоб после последнего уровня она вылетала и в ней учитывалось время прохождения уровня.
Ну что же, если не получается в WayPoint ами, тогда рассуждаем логически. Так как трасса прямая, то финальной точкой у нас будет некая местность, финишная черта. Так вот почему бы нам не проверять расстояние до этого объекта. Ставим в отдалении 5 метров от финишной черты невидимый объект, и при помощи таймера и скрипта проверяем расстояние, как только оно меньше 5 метров, то активируем ExitFade:
Ну набросок скрипта примерно такой: Vector3 cameraLocation; // положение нашей камеры(ну или машины) Vector3 meshLocation; // положение скрытого объекта, точки финиша. float distance; // в этой переменной храним расстояние iObjectLocation(OBJ_0,cameraLocation); // узнаем текущее положение и сохраняем в переменной iObjectLocation(OBJ_3,meshLocation); // узнаем текущее положение и сохраняем в переменной distance = iVectorLength(meshLocation - cameraLocation); // вычисляем длину вектора, то есть получаем расстояние
И так если расстояние менее 5 метров то активируем ExitFade;
вопрос такой:на офиц сайте сказано что rigidbody с которыми предполагаются коллизии должны быть по размерам не меньше 0.2 метров - не больше 20м. Если у меня предполагается длинная локация (например корабль должен лететь по длинной трубе) то она будет состоять из множества сегментов. Если я пролетая через определенные области буду отключать те сегменты ,которые уже пролетел и включать те, которые еще будут, то существенно ли это ускорит работу и оптимизация ли это вообще???
1 Какова длинна трубы 2 Много ли изворотов/поворотов в ней 4 Какова длинна Ваших участков. 5 Много ли полигональна эта труба?
Подскажите пожалуйста как сделать точку перехода на другой уровень чтоб машина проезжая через неё оказывалась на другом уровне. Заранее спасибо за ответы!
Отслеживаем при помощи WayPoint и RaceTracer колличество Lap , пример есть в таких демках как SUVRace и CarSimulator. Потом если Lap = тому количеству, которое нам необходимо то ExidFade на нужную сцену.
Во время компиляции вторая сцена должна идти после первой сцены.
Использование Force при работе с RigidBodyАвтор: Akyltist
Сила — векторная физическая величина, являющаяся мерой интенсивности взаимодействия тел. Приложенная к массивному телу сила является причиной изменения его скорости или возникновения в нем деформаций.
В связи с тем, что физические объекты, такие как RigidBody, согласно спецификации по AngelScript не могут быть перемещены посредством обычных функций, вида:
iObjectOrientationSet(OBJ_X,Quaternion)
iObjectLocationSet(OBJ_X,Vector3)
iObjectVelocitySet(OBJ_X,Vector3)
Благодаря знаменательному примечанию: NOTE: this function will only work with objects that support dynamic location setting, like SkinMesh, Particles, etc. Objects supporting physics do not usually work with this function. For example, you should not use this function to progressively alter the location of a RigidBody or a Car, to make it move. You should use the Force object instead.
И так, давайте же в конце концов раз и навсегда разберемся как же нам перемещать объекты подобного типа во время игрового процесса, как нам угодно. (Ну или Вы попробуете разобраться)
Пункт 1: Создаем новый Проект
1. Добавляем SunLight +++++++++++++++++++++++++++++++ ----- Ставим галочку в графе активен ----- Положение X = 50 ----- Положение Y = 50 ----- Положение Z = 50
2. Добавляем CamChase +++++++++++++++++++++++++++++ ----- Галочку в Активен ----- Галочку в Рендеринг при Старте ----- Галочку в Подсчете статистики ----- Галочку в Игнорировать положение Актера ----- Галочку в Не наклонять ----- Скорость Вращения 0.3 ----- Скорость перехода 0.05 ----- Поле зрения 75 градусов ----- Видимая Дистанция 10000 метров ----- Ширина 1 ----- Высота 1 3. Добавляем RigidBody++++++++++++++++++++++++++++++ ----- Позиция Х = 0 ----- Позиция Y = 0 ----- Позиция Z = 0 ----- Ориентация X = 0 ----- Ориентация Y = 0 ----- Ориентация Z = 0
4. Добавляем EventTimer+++++++++++++++++++++++++++++ ----- Галочку у Активен ----- Галочку у Запускать при старте ----- Галочку у Ресет таймера в случае паузы
5. Добавляем Script++++++++++++++++++++++++++++++++ ----- Галочку у Активен ----- Галочку у Запускать при старте
6. Добавляем Force+++++++++++++++++++++++++++++++++ ----- Галочку у Активен ----- Галочку у Запускать при старте
Пункт 2: Устанавливаем связи у объектов
Пункт 3: Разбираем Force
Для того чтобы управлять физическими объектами, допустим теми же RigidBody, к ним необходимо приложить некую силу. Давайте сначала свяжем наш Force с RigidBody в связях, чтобы они смогли взаимодействовать.
Как и в любом другом приложении работающим с геометрией или 3D Графикой, в 3DRAD есть оси: X - Red Y - Green Z - Blue Теперь посмотрите в доль какой оси у Вас направлена Force(представлена в виде стрелочки). У меня она направлена в доль оси Z что меня вполне устраивает. Так вот, любую силу которую мы будем передавать нашему Force, мы будем согласно Ньютоновской физике, передавать и нашему RigidBody.
Как передать, спросите Вы, да очень просто:
Вот и все, теперь согласно нами установленному закону, каждую секунду в соответствии с Таймером, наш объект будет перемещаться на 20 метров дальше по оси Z. Если вам необходимо перенаправить еще и по другой оси, то добавьте ее и направьте в ту сторону которую Вам необходимо, и свяжите также с RigicBody телом.
Akyltist, огромное спасибо, тут мой косяк.... У меня зрение слабовато, а качество видео не очень, не заметил(
Нестрашно!
Вопрос от AR
Quote
Ну хорошо. Считал. А дальше? Как перекинуть корабль(группу, как я уже писал) на нужное место(которое считал)?
По поводу твоей проблемы. RigidBody переносятся без поблем, цепляю демку в которой можно мышкой перетаскивать RigidBody куда тебе нравится в режиме запущенной игры. Твори в общем на основе примера.
Скриптом перенести сразу все группу пока не вижу способов. Скрипты не хотят работать с объектом типа Group. Но подумать над этим еще стоит, так как было бы не плохо иметь такой скриптик в арсенале.
Вы хотите сказать что такая цветовая гамма и размещение ссылок на переходе - это профессиональная работа? Простите, но либо Вы никогда не занимались этим профессионально и упустили, что под различными браузерами это смотрится по разному или Вы просто не умеете грамотно оформлять. И будьте аккуратны, Вы можете предлагать свои услуги но не опускайтесь до споров и оскорблений.
По поводу http://odessa.w2c.ru могу только сказать, что при наведение на ссылки стоит менять стиль курсора, иначе это как то не эстетично.
Снова я, и снова с вопрос про меню.... Настраиваю ScriptScrol (который идёт после, avtor) и у меня выдаёт ошибки в скрипте, когда я нажимаю: "применить скрипт". Очень прошу вас уважаемый, Akyltist проверить данный скрипт:
Не проблема, смотрим вместе! 1. Просто не внимательность if (iTnitializing()) -------- if (iInitializing())
2. нужна запятая, так как идет перечисление параметров функции iObjectLocation(OBJ_0.TextLocationInit); ----- iObjectLocation(OBJ_0,TextLocationInit);
3. Несовместимость типов: TextLocationInit.y - TextLocationInit; - сравниваем координату с векторной величиной Vector3 TextLocationInit состоит из [X,Y,Z] , то есть невозможно отнять от трех координат сразу всего одну. Тут скорее должно быть что то флага запоминания положения текста: TextLocation = TextLocationInit; 4. нужна запятая, так как идет перечисление параметров функции iObjectLocationSet(OBJ_0.TextLocation); ------ iObjectLocationSet(OBJ_0,TextLocation); 5. невозможность арифметической операции TextLocation += ScrollingSpeed; ---- невозможно к Vector3 типу прибавлять числа, необходимо делать это непосредственно для каждой координаты по отдельности. TextLocation.x += ScrollingSpeed; TextLocation.y += ScrollingSpeed; TextLocation.z += ScrollingSpeed; Ну и прибавлять соответственно для той координаты, по которой мы делаем скроллинг, если для вертикали то TextLocation.y += ScrollingSpeed;
подскажите в чем проблема? добавил SkinMesh, добавил источник света, в настройках поставил ShadowMap и некоторые текстуры стали полупрозрачны. как на 1 скрине. после того как убираю настройки на default становится нормально. на 2 скрине все настройки, только ShadowMap не стоит
Shadow map - карта (текстура), которую генерирует рендер во время предварительного прохода сцены (pre-rendering'а). Shadow map не реагирует на цветовой оттенок прозрачного или полупрозрачного объекта. С другой стороны, с помощью shadow map можно получить мягкие размытые тени, чего не сделаешь, используя ray-traced тени. Shadow map - карта, которую проектирует направленный источник света. Этот метод обеспечивает более мягкие переходы между тенями и освещенными участками сцены и более быстрый рендеринг, чем ray-traced. Откуда следует, что необходимо использовать эту опцию для создания тени от объекта, который в нашем примере стал полупрозрачным. Как необходимость нормальной картинки, я бы посоветовал не отрубать тень как таковую "No Shadow". Ну и соответственно для Shadow map структур использовать облегченные версии моделей.
В общем копайте далее, ну или конкретизируйте вопрос, так как непонятно что в итоге Вы хотели получить, и те ли Вы методы используете для решения Ваших задач.
По этому поводу развития есть три варианта работы.
1. Работаем через Динамическую библиотеку. То есть цепляем самописную либу для работы с удаленным сервером клиенту. Есть пару достоинств и недостатков: + Можно обеспечить шифрование передаваемых данных + Гибкость системы команд, нет ни каких извращений с типами данных и тому подобного гемора + Удобство разработки - Надо разбираться в сокетах и владеть каким либо ЯП позволяющим создавать библиотеки по соглашению __stdcall - Проблемы синхронизации с сервером
2. Вариант, от клиента на сервер идут данные средствами 3D Rad с помощью его net функций. Далее сервер их уже сохраняет у себя при помощи файловых функций. То есть мы не выходим за пределы 3D Rad в данном случае. + Все базируется на функциях Радуги - Нет гибкости системы передаваемых данных - Передача данных идет открытым способом
3. Юзаем OSA Kit, все расчеты будут и так на стороне сервера, остается их только сохранять, как недостаток, клиенту придется тянуть установочный дистрибутив ОСЫ, а он весит что то около сотни метров, что для современных игр хоть и не напряжно, но для некоторых напряжно с трафиком. Однако не думаю что нормальная игра, будет весить меньше. - Нет защиты, данные передаются в открытую