Главная | Форум | Мой профиль | Выход | RSS
Меню сайта
Мини-чат
200
Наш опрос
Расширение спектра деятельности. Тоесть принимать и по возможности помогать не только Ultimate 3D
Всего ответов: 298
Кабинет

Логин:
Пароль:
Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Наши друзья
  • Официальный cайт U3D
  • Лучший сайт по GM
  • Сайт по геймдеву
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Мы рады приветствовать Вас на русскоязычном официальном сайте игрового движка Game Maker+Ultimate3D. Этот сайт создан для всех тех, кто хотел бы своими силами создать хотя бы одну компьютерную 3D игру, но не знает, как это сделать и с чего начать.Вы всегда хотели заняться разработкой компьютерных игр, но не знали как?Тогда вы попали по адресу. Game Maker с Ultimate3D это микс, который позволит делать захватывающие компьютерные игры с неограниченными возможностями. Так же есть форум на котором можно задовать свои вопросы по Ultimate 3D!

    Создавание эффектов частицы
    Эффекты частицы. Какая большая вещь. У Вас могут быть тысячи небольших рекламных щитов, которые вычислены в интерактивном режиме основанные на информации, которую Вы даете о желательном поведении частицы. Частица производит систему, был полностью перепроектирован для Окончательного трехмерный 2.0 и был улучшен немного в Окончательном трехмерный 2.1. Это действительно гибко. Во-первых, есть много параметров настройки, которые Вы можете изменить, чтобы определить свойства частиц, таких как начало координат, скорость, ускорение, размер и цвет. Во-вторых, Вы можете добавить эмиттеры силы тяжести та работа реалистично. Вы могли фактически использовать систему эффектов частицы с эмиттерами силы тяжести, чтобы сделать имитатор солнечной системы:D. Наконец, Вы можете установить модификаторы, которые изменяют поведение частиц всякий раз, когда они находятся в области, Вы устанавливаете для них. Они могли использоваться, например, чтобы создать участок памяти, который отражает частицы, когда они нажимают одну из стен, изменяя их цвет. Дополнительно, у каждой отдельной частицы в Окончательном трехмерный может быть неограниченный размер. И использование эффектов частицы весьма легко, так что не пропускайте следующую обучающую программу;).



    Создавание системы частиц и устанавливая основные свойства
    Создавание системы частиц является вероятно самой простой вещью, которую можно было вообразить. Вы не должны установить переменные; все, что Вы должны сделать, помещено CreateParticleSystem () в случай создания объекта. Но очевидно, что это не может быть всеми. Вы должны сказать Окончательный трехмерный, на что Вы хотите, чтобы система частиц была похожа так или иначе. Поэтому Вы должны вызвать несколько других функций после звонка в CreateParticleSystem (). Есть также две переменные, которые могут быть установлены в любое время. Первый - текстура, которая определяет индекс используемой текстуры. Второй является дополнительным и назван aspect_ratio. Вы можете использовать это, если Вы не хотите квадратные частицы. Высота частиц всегда равняется их размеру, ширина - размер, умноженный aspect_ratio. Другие опции установлены через функции. Первые две функции определяют число частиц, которые будут созданы каждый шаг, и целая жизнь частиц. У следующих функций всегда будут некоторые из тех же самых параметров, один с минимальным значением и один с максимальным значением. Окончательный трехмерный выберет случайное значение в диапазоне от минимального значения до максимального значения всякий раз, когда это нуждается в этом значении. Этим путем все становится немного случайным, и каждая частица получает индивидуальное поведение. Таким образом вот две функции:

    Эта функция устанавливает число частиц, которые создаст система частиц.

    SetParticleCount ( MinimumParticleCount, MaximumParticleCount, MaximumTotalParticleCount ) 

    MinimumParticleCount, MaximumParticleCount -Число частиц, которые должны быть созданы за шаг.

    MaximumTotalParticleCount -Максимальное число частиц, которые могут существовать в то же самое время. Если абсолютное число частиц будет рядом с этим значением, то Окончательный трехмерный прекратит создавать частицы, пока достаточно многие частицы не превысили свою целую жизнь. Обычно хорошее значение для этого (MaximumLifetime+MinimumLifetime)/2 * (MaximumParticleCount+MinimumParticleCount)/2.



    Эта функция устанавливает целую жизнь частиц системы частиц, которой вызвана функция. Целая жизнь - время, которое проходит от их создания, пока они не разрушены (в шагах).

    SetParticleLifetime ( MinimumParticleLifetime, MaximumParticleLifetime ) 

    MinimumParticleLifetime, MaximumParticleLifetime -Целая жизнь частиц, которые должны быть установлены.



    Теперь это становится немного более сложным. Вы должны определить, где частицы созданы. Если Вы хотите Вам, может просто не учесть этот шаг. Тогда все частицы будут созданы в той же самой позиции. Но that'd быть отчасти скучным. Чтобы определить начало координат, Вы должны дать преобразование и реальное значение. Предположите, что у Вас есть модель сферы с радиусом одного. Если Вы применяете преобразование, Вы вступаете в следующую функцию к этой модели сферы, модель покажет Вам, частицы областей могут быть созданы в. Второе реальное значение будет использоваться как масштабирующий для второй сферы, которая использует то же самое преобразование. Это - другая граница, которая ограничивает частицы области, может быть создан в. Следующая графика иллюстрирует это.



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

    Эта функция устанавливает начало координат частицы. Позиция начала координат не установлена этой функцией, так как это часто должно изменяться очень часто. По этой причине Вы должны установить переменные x, y, и z для каждой системы частиц.

    SetParticleOrigin ( SecondSphereRadius, RotationX, RotationY, RotationZ, ScalingX, ScalingY, ScalingZ ) 

    SecondSphereRadius -Радиус второй сферы, которая является второй границей для начала координат частиц. Если Вы поместите 0 для этого параметра, то начало координат частицы будет точной сферой.

    RotationX, RotationY, RotationZ -Вращение, которое должно использоваться как преобразование для этих двух сфер. Обычно Вы не нуждаетесь в этом параметре, начиная с вращения начала координат только имеет смысл, если Вы не вводите то же самое значение для всех трех параметров масштабирования.

    ScalingX, ScalingY, ScalingZ -Масштабирование, которое должно быть применено к этим двум сферам.



    Следующие две функции устанавливают скорость частицы, и ускорение частицы (ускорение - изменение скорости за шаг). Это довольно легко. Единственная вещь, которую Вы должны иметь в виду об этих функциях, - то, что долгота должна быть в диапазоне от-90 до 90, потому что иначе метод Окончательное трехмерное использование, чтобы достигнуть регулярного распространения частиц не будет работать правильно.

    Эта функция устанавливает начальную скорость частиц, которые созданы системой частиц.

    SetParticleVelocity ( MinLongitude, MinLatitude, MinVelocity, MaxLongitude, MaxLatitude, MaxVelocity ) 

    MinLongitude, MinLatitude, MaxLongitude, MaxLatitude -Руководство движения, данного в степенях. Значения для долготы должны быть в диапазоне-90 к 90.

    MinVelocity, MaxVelocity -Скорость движения за шаг.



    Эта функция устанавливает начальное ускорение частиц, которые созданы системой частиц.

    SetParticleAcceleration ( MinLongitude, MinLatitude, MinAcceleration, MaxLongitude, MaxLatitude, MaxAcceleration ) 

    MinLongitude, MinLatitude, MaxLongitude, MaxLatitude -Руководство изменения движения, данного в степенях. Значения для долготы должны быть в диапазоне-90 к 90.

    MinAcceleration, MaxAcceleration -Количество движения изменяется за шаг.



    Затем Вы можете установить кое-что, что это назвало начальным средним отвращением. Случается весьма часто, что все частицы, как предполагается, переезжают от начала координат системы частиц. Одним примером для этого была бы система частиц для взрывов. Это - то, для чего Вы нуждаетесь в начальном среднем отвращении. Когда новая частица создана, начальный средний коэффициент отвращения умножен различием позиции частицы и позиции системы частиц. Тогда результат добавлен к начальной скорости частицы (InitialVelocity + = (ParticlePosition-ParticleSystemPosition) *RepulsionFactor). Коэффициент отвращения установлен индивидуально для каждой оси. Вот функция:

    Это устанавливает начальный средний коэффициент отвращения:
    SetInitialCenterRepulsion( RepulsionFactorX, RepulsionFactorY, RepulsionFactorZ ) 

    RepulsionFactorX, RepulsionFactorY, RepulsionFactorZ -Коэффициент отвращения вдоль каждой оси. Чтобы получить описание того, что коэффициент отвращения, взглянули на текст выше.



    Затем Вы можете установить цвет и размер частиц. Для каждого из них Вы можете установить диапазон возможных начальных значений и диапазон возможных конечных значений. Конечные значения будут использоваться частицей в конце ее целой жизни. Вот функции, которые доступны, чтобы установить эти значения:

    Эта функция устанавливает диапазон возможных начальных номеров цвета для частиц.

    SetInitialParticleColor ( MinimumR, MinimumG, MinimumB, MinimumA, MaximumR, MaximumG, MaximumB, MaximumA ) 

    MinimumR, MinimumG, MinimumB, MinimumA -Минимальные номера цвета для начального цвета частицы. Эти значения должны быть в диапазоне от 0 до 255. MinimumA дает минимальное количество opacity (0 ни для какого opacity (полностью прозрачный), 255 для полностью непрозрачного).

    MaximumR, MaximumG, MaximumB, MaximumA -Максимальные номера цвета для начального цвета частицы. Эти значения должны лечь в диапазоне от 0 до 255 также.



    Эта функция устанавливает диапазон возможных конечных номеров цвета для частиц.

    SetFinalParticleColor (MinimumR, MinimumG, MinimumB, MinimumA, MaximumR, MaximumG, MaximumB, MaximumA ) 

    MinimumR, MinimumG, MinimumB, MinimumA, MaximumR, MaximumG, MaximumB, MaximumA -У этих параметров есть то же самое значение что касается SetInitialParticleColor (...), но на сей раз они обращаются к конечному цвету частицы.



    Эта функция устанавливает диапазон возможных начальных и конечных размеров частицы. Значения размера даны в мировом пространстве, таким образом они интерпретируются таким же образом как параметры, Вы можете установить для рекламных щитов.

    SetParticleSize ( MinInitialSize, MaxInitialSize, MinFinalSize, MaxFinalSize ) 

    MinInitialSize, MaxInitialSize -Диапазон возможной начальной буквы измеряет для частиц.

    MinFinalSize, MaxFinalSize -Диапазон возможных размеров частицы может иметь в конце их целой жизни.



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

    Эта функция определяет intial вращение частицы и их скорость вращения.

    SetParticleRotation ( MinInitialRotation, MaxInitialRotation, MinRotationSpeed, MaxRotationSpeed ) 

    MinInitialRotation, MaxInitialRotation -Диапазон возможных начальных вращений для частиц в степенях. Вращение нулевых средств, что вершина текстуры наверху частицы. Большие вращения заставляют частицы вращаться в пространстве экрана в по часовой стрелке направлении.

    MinRotationSpeed, MaxRotationSpeed -Диапазон возможных скоростей вращения для частиц в степенях. Скорость вращения будет добавлена к вращению частицы однажды за шаг.



    Теперь, когда Вы знаете, как установить свойства Вашей системы частиц, пришло время заставлять это стать живым. Чтобы сделать это, Вы должны поместить вызов функции в случай шага объекта, который Вы создали для своей системы частиц, но на сей раз это не Шаг (). Причина для этого состоит в том, что функция шага систем частиц берет один параметр и не должна быть вызвана в каждом отдельном шаге, потому что требуется довольно мало вычислительного времени в зависимости от числа частиц, эмиттеров силы тяжести и модификаторов. Не имеет никакого смысла выполнять шаг для сложной системы частиц, если это в настоящее время не видимо. Вот функция:

    Эта функция выполняет шаг данной длины для системы частиц, которой вызвана функция.

    ParticleSystemStep ( StepLength ) 

    StepLength -Длина шага Вы хотите выступить. Можно было также назвать это коэффициентом времени. Если Вы поместите один для этого, то один шаг будет выполнен для каждого звонка в эту функцию. Если Вы поместите 0.5, то все будет работать на половине скорости, и если Вы поместите 2, то все будет работать дважды как быстро. Отметьте, что коэффициент достижения может привести к неточным вычислениям, особенно используя эмиттеры силы тяжести и модификаторы.



    Наконец Вы должны поместить требование Destroy() в разрушить случай объекта системы частиц, иначе система частиц все еще будет видима после разрушения объекта, с которым это было связано.

    Если Вы хотите получить очень солнечные эффекты частицы с объемным эффектом, Вы можете хотеть использовать совокупное плавное сопряжение для системы эффектов частицы. Совокупное плавное сопряжение означает, что каждая частица добавляет к цвету на экране вместо того, чтобы покрыть его. Без добавки, смешивающей пять частиц, в ряд замеченных по передней стороне, смотрите точно то же самое как единственная частица, начиная с частицы в обложках другие четыре частицы. С добавкой, смешивающей цвета частиц, добавлены вместе, приводя к очень яркому пятну (более яркий чем единственная частица). Предоставление возможности совокупного плавного сопряжения легко.

    Эта функция позволяет или отключает совокупное плавное сопряжение для объекта, которым это называют.

    SwitchAdditiveBlending ( UseAdditiveBlending ) 

    UseAdditiveBlending -Если этот параметр будет истинным совокупным плавным сопряжением, то будет использоваться для этого объекта, если это будет ложь, то это не будет использоваться.

    Эта функция не только работает для систем частиц, но также и для модели, ландшафта и примитивных объектов. Хотя Вы должны использовать это для этих типов объекта, только если они частично прозрачны. Иначе результаты, возможно, не желательны из-за z-буферизации.
     

    Эмиттеры силы тяжести

    Эмиттеры силы тяжести являются действительно крутыми. Они могут заставить частицы перейти пути, которые являются весьма частыми, но никогда то же самое. Эмиттеры силы тяжести могут также испустить "отрицательную" силу тяжести, таким образом они отодвигают частицы, который полезен для многих различных видов эффектов. Эмиттеры силы тяжести используют реальную физику так, даже если Вы ничего не будете знать о теории Ньютона силы тяжести, то это приведет к некоторому чувству естественного поведения. Отметьте, что эмиттеры силы тяжести не предназначены, чтобы использоваться, чтобы сделать силу тяжести, которая всегда прибывает из того же самого руководства. Это может быть достигнуто более легко, устанавливая постоянное ускорение.

    Используя силу тяжести эмиттеры действительно легко. Вы только должны установить их позицию в мировом пространстве и интенсивности силы тяжести, которую они должны испустить. Остальное сделано автоматически. Эмиттеры силы тяжести должны использоваться тщательно, так как они должны быть применены к каждой отдельной частице, которая занимает немного вычислительного времени. Окончательные трехмерные наборы предел 32 эмиттеров силы тяжести за систему частиц. Вот функция, которую Вы должны использовать, чтобы создать эмиттеры силы тяжести:

    Эта функция добавляет новый эмиттер силы тяжести к системе частиц, которой функция вызвана и возвращает свой идентификатор, который может использоваться, чтобы изменить это впоследствии.

    AddGravityEmitter ( PositionX, PositionY, PositionZ, GravityEmitterMass ) 

    PositionX, PositionY, PositionZ -Позиция эмиттера силы тяжести, данного в мировом пространстве.

    GravityEmitterMass -Масса эмиттера силы тяжести. Хорошее значение для этого параметра зависит от расстояний в Вашей системе частиц, таким образом Вы должны найти один, играя вокруг с этим.



    Эта функция может использоваться, чтобы изменить или удалить эмиттер силы тяжести, который Вы создали прежде.

    SetGravityEmitter ( GravityEmitterID, PositionX, PositionY, PositionZ, GravityEmitterMass ) 

    GravityEmitterID -Идентификатор эмиттера силы тяжести Вы хотите изменить. Это - значение, которое AddGravityEmitter (...) возвратил, создавая эмиттер силы тяжести.

    PositionX, PositionY, PositionZ -Новая позиция эмиттера силы тяжести, данного в мировом пространстве.

    GravityEmitterMass -Новая масса эмиттера силы тяжести. Если Вы введете 0 для этого параметра, то эмиттер силы тяжести будет удален.



    Модификаторы частицы
    Часто частицы должны измениться, когда они входят в некоторую специфическую область. Например, если Вы делаете систему частиц, чтобы добавить некоторые брызги к водопаду, частицы имеют к потоку вверх после того, как они нажимают поверхность воды. Вещи как это могут быть сделаны, легко используя модификаторы частицы. Модификаторы частицы изменяют частицы всякий раз, когда частицы находятся в области, Вы определили для них. Они могут изменить любую собственность частиц (целая жизнь, скорость, ускорение, цвет и размер). Это делает системы частиц действительно гибкими и живыми.

    Установка свойств модификаторов частицы весьма подобна установке свойств системы частиц. Все сделано через вызовы функции, и много свойств подобны тем, Вы можете установить для систем частиц. Но перед установкой свойств для модификаторов частицы Вы должны создать их. Чтобы сделать это, Вы должны назвать AddModifier (). Эта функция возвратит идентификатор модификатора, который должен быть сохранен к переменной, чтобы быть в состоянии установить любые свойства для модификатора. Вот функции, Вы должны установить свойства модификатора:

    Эта функция устанавливает область, это затронуто модификатором частицы. Это работает таким же образом как установка начала координат частицы (см. SetParticleOrigin (...)). Всякий раз, когда частица находится в этой области, это изменено:

    SetModifierEffectedArea ( ModifierID, SecondSphereRadius, PositionX, PositionY, PositionZ, RotationX, RotationY, RotationZ, ScalingX, ScalingY, ScalingZ ) 

    ModifierID -Идентификатор модификатора Вы хотите измениться.

    SecondSphereRadius -Радиус второй сферы, которая является второй границей для зоны поражения.

    PositionX/Y/Z, RotationX/Y/Z, ScalingX/Y/Z -Преобразование двух сфер, которые являются границами зоны поражения.



    Эта функция устанавливает модификатор, который изменит целую жизнь частицы, когда это будет в области того модификатора. Так, если бы Вы устанавливаете это в один, никогда не умирала бы частица, в то время как это находится в зоне поражения, потому что ее целая жизнь увеличена (и уменьшился) одним в каждом отдельном шаге.

    SetModifierLifetimeChange ( ModifierID, LifetimeChange ) 

    ModifierID -Идентификатор модификатора Вы хотите измениться.

    LifetimeChange -Изменение целой жизни за шаг.



    Следующие две функции устанавливают, как модификатор изменяет скорость и ускорение частиц, которые находятся в его зоне поражения. И возьмите коэффициент и слагаемое. Всякий раз, когда частица находится в зоне поражения, ее скорость или ускорение получают измененное использование следующей формулы: Value=Value*Factor+Summand. В этой формуле "Значение" обращается к скорости или ускорению. Так, устанавливая скоростной коэффициент, который немного ниже чем 1, Вы могли осуществить трение. Устанавливая отрицательный скоростной коэффициент Вы можете отразить частицы. Вот функции для того, чтобы установить эти свойства:

    Эта функция устанавливает скоростной модификатор частиц в зоне поражения:

    SetModifierVelocityChange ( ModifierID, VelocityFactorX, VelocityFactorY, VelocityFactorZ, VelocitySummandX, VelocitySummandY, VelocitySummandZ ) 

    ModifierID -Идентификатор модификатора Вы хотите измениться.

    VelocityFactorX, VelocityFactorY, VelocityFactorZ -Коэффициент, что скорость частицы должна быть умножена в каждом шаге, в то время как это находится в зоне поражения модификатора. Это может быть установлено индивидуально для каждой отдельной оси.

    VelocitySummandX, VelocitySummandY, VelocitySummandZ -Слагаемое, что скорость частицы должна быть добавлена к в каждом шаге, в то время как это находится в зоне поражения модификатора. Это может быть установлено индивидуально для каждой отдельной оси.



    Эта функция устанавливает модификатор ускорения частиц в зоне поражения:

    SetModifierAccelerationChange ( ModifierID, AccelerationFactorX, AccelerationFactorY, AccelerationFactorZ, AccelerationSummandX, AccelerationSummandY, AccelerationSummandZ ) 

    ModifierID -Идентификатор модификатора Вы хотите измениться.

    AccelerationFactorX, AccelerationFactorY, AccelerationFactorZ -Коэффициент, который должен быть умножен ускорением каждой частицы в каждом шаге, в то время как это находится в зоне поражения модификатора. Это может быть установлено индивидуально для каждой отдельной оси.

    AccelerationSummandX, AccelerationSummandY, AccelerationSummandZ -Слагаемое, которое должно быть добавлено к ускорению каждой частицы в каждом шаге, в то время как это находится в зоне поражения модификатора. Это может быть установлено индивидуально для каждой отдельной оси.



    Затем Вы можете установить новый конечный цвет и новый конечный размер для частиц, которые вводят область модификатора частицы. Так как Вы изменяете только новые конечные значения, нет никакого быстрого изменения. Вместо этого будет гладкая интерполяция. Вот функции:

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

    SetModifierNewFinalColor ( ModifierID, MinimumR, MinimumG, MinimumB, MinimumA, MaximumR, MaximumG, MaximumB, MaximumA ) 

    ModifierID -Идентификатор модификатора Вы хотите измениться.

    MinimumR/G/B/A, MaximumR/G/B/A -Диапазон возможных цветов, которые могут быть установлены как новый конечный цвет для частиц, которые вводят область модификатора. Значения для этих параметров должны лечь в диапазоне от 0 до 255.



    Эта функция изменяет конечный размер для частиц, которые вводят область модификатора.

    SetModifierNewFinalSize ( ModifierID, MinimumNewFinalSize, MaximumNewFinalSize ) 

    ModifierID-Идентификатор модификатора Вы хотите измениться.

    MinimumNewFinalSize, MaximumNewFinalSize -Диапазон возможных новых конечных размеров, данных в мировом пространстве.




    Школа Ultimate3D 2009-2010 год