SCNParticleSystem
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
SCNAnimatable
-
NSCopying
-
NSObject
-
NSSecureCoding
-
SCNAnimatable
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
SCNParticleSystem
объект автоматически создает, анимирует и представляет систему частиц — маленьких спрайтов изображения — согласно высокоуровневому моделированию, общее поведение которого Вы указываете. Используйте системы частиц для создания эффектов, таких как дым, дождь, конфетти и фейерверк.
Как работают системы частиц
В отличие от узлов SceneKit и конфигураций, отдельные частицы не являются объектами в графике сцены. Поскольку система частиц может включить десятки или сотни частиц, SceneKit использует более эффективное внутреннее представление, хранящее и обрабатывающее данные для всех частиц системы оптом.
Вместо того, чтобы получить доступ к каждой частице, чтобы управлять ее поведением или заставить ее взаимодействовать с другим содержанием сцены, Вы обычно используете свойства системы частиц для управления совокупным поведением частиц. Эти свойства покрывают несколько ключевых аспектов поведения системы, как получено в итоге ниже.
Появление. SceneKit представляет изображение текстуры для каждой частицы. Определите появление системы частиц путем указания изображения, его цвета оттенка, и рендеринга параметров, таких как режим наложения. Можно даже указать последовательность изображения с анимацией, создав эффекты как рои насекомых или многоступенчатых взрывов.
Продолжительность жизни. SceneKit создает каждую частицу в расположении в сцене (также названный эмиттером), варьируется его позиция и появление по указанной продолжительности жизни, затем удаляет его из сцены. (Создание частицы также вызывают рождением или порождением, и удаление частицы также вызывают смертью.) Общее количество частиц на экране в любое время является продуктом системы
birthRate
иparticleLifeSpan
свойства. Большее число частиц имеет большую стоимость для рендеринга использование питания и производительность.Эмиттерное поведение. Используйте
emitterShape
свойство, чтобы указать, мечут ли частицы икру от единственной точки в пространстве или в области, определеннойSCNGeometry
объект. ИспользуйтеemissionDuration
свойство и связанные свойства для варьирования рождения частицы в течение долгого времени, так, чтобы система чередовалась между периодами мечущих икру частиц и периоды времени простоя.Изменение. Системы частиц моделируют реалистические эффекты случайным образом переменными свойствами частицы и при рождении и во время жизни частицы. Можно также добавить случайное изменение к продолжительности жизни частиц. Несколько свойств системы частиц имеют связанное свойство изменения, управляющее этой рандомизацией. Например,
particleSizeVariation
свойство определяет ширину интервала для рандомизацииparticleSize
свойство.Перемещение. Перемещение частиц согласно простому моделированию физики — у каждого есть начальное направление, скорость, угловая скорость и ускорение, который использование SceneKit анимировать частицу, пока это не умирает. Можно создать много реалистических эффектов с помощью одних только этих атрибутов. Можно также добавить более сложные способы поведения, позволив частицам взаимодействовать с геометрией сцены (
colliderNodes
), сценаphysicsWorld
моделирование, илиSCNPhysicsField
объекты.
Кроме того, можно также использовать следующие функции для добавления динамических способов поведения к системе частиц, изменяя ее появление в течение долгого времени или заставив его взаимодействовать с ее средой.
Анимации и контроллеры свойства. Как много объектов SceneKit,
SCNParticleSystem
класс соответствуетSCNAnimatable
протокол, таким образом, можно неявно или явно анимировать изменения в его свойствах. (Для общего фона на анимации посмотрите Анимацию Содержание SceneKit.) При анимации изменений в свойствах системы частиц эти изменения влияют на все частицы в системе одновременно.Для применения анимаций независимо для отдельных частиц используйте
SCNParticlePropertyController
объект, связывающий aCAAnimation
объект со свойством системы частиц. С контроллером свойства можно использовать функции Базовой платформы Анимации для создания изменяющихся во времени эффектов, применяющихся к каждой частице в системе. Обычно Базовый Объект Animation варьируется свойство относительно времени, но с контроллером свойства можно также создать анимации, варьирующиеся свойство на основе других входных значений, таких как расстояние частицы от его начального расположения.Например, рассмотрите a
CAKeyframeAnimation
объект, анимирующий серию цветов от белого до желтого к красному, и система частиц, моделирующая пламя. Если Вы присоединяете эту анимацию к системе частицparticleColor
свойство, получающийся эффект пламени имеет единственный цвет в любой данный момент, но тот цвет изменяется в течение долгого времени. Если Вы вместо этого присоединяете контроллер свойства дляSCNParticlePropertyColor
свойство, пламя варьируется в цвете от его основы до его подсказки — каждая частица начинается белый, затем исчезает к желтому и красному цвету, когда это повышается.Порожденные системы частиц. Когда Вы присваиваете другого
SCNParticleSystem
экземпляр к одному из свойств, перечисленных в Порождении Дополнительных Систем частиц, SceneKit добавляет больше систем частиц к сцене на основе поведения исходной системы частиц. Например, если у Вас есть система частиц, моделирующая падающий дождь, можно использоватьsystemSpawnedOnCollision
свойство для добавления всплесков, где каждая капля дождя ударяет поверхность.Обработчики событий и модификаторы частицы. Поскольку они указывают поведение декларативно, анимации, контроллеры свойства, и порожденные системы обеспечивают простую конфигурацию и высокую производительность для большинства динамических способов поведения. Для создания способов поведения, не возможных с этими функциями, можно зарегистрировать обработчик событий или блоки модификатора частицы, работающие непосредственно с объемными данными частицы использование SceneKit для анимации системы частиц.
Используйте
handleEvent:forProperties:withBlock:
метод для изменения данных частицы в ответ на событие — рождение частицы, смерть или коллизия. Например, можно использовать эту опцию сделать частицы, изменяющие цвет после столкновения с другим объектом в сцене.Используйте методы, перечисленные в Изменении Частиц В течение долгого времени для управления блоками, что SceneKit требует каждый представленный кадр. Ваш блок может изменить свойства частицы оптом, позволив Вам изменить поведение частицы точно, но в высоком риске к рендерингу производительности.
Используйте редактора системы частиц XCode для экспериментирования с системами частиц
В большинстве случаев Вы не должны конфигурировать систему частиц непосредственно в Вашем приложении или игре. Вместо этого Вы используете XCode для конфигурирования свойств системы частиц. Поскольку Вы изменяете поведение системы частиц, XCode сразу обеспечивает обновленный визуальный эффект. Когда завершенный, XCode архивирует сконфигурированную систему в файл, который можно тогда включать с ресурсами пакета проекта. Затем во время выполнения Ваша игра использует этот архив для инстанцирования новой системы частиц.
Используя XCode для создания систем частиц имеет несколько важных преимуществ:
Можно легко изучить возможности класса системы частиц.
Можно экспериментировать быстро с новыми эффектами частицы и сразу видеть результаты.
Вы разделяете задачу разработки эффекта частицы от задачи программирования использования его. Ваши художники могут работать над новыми эффектами частицы, независимыми от Вашего игрового кода.
Можно присоединить систему частиц к узлу в редакторе сцены XCode для предварительного просмотра системы частиц в сцене.
Для загрузки системы частиц из файла, Вы создали с XCode, используйте particleSystemNamed:inDirectory:
метод.
-
Создает новую систему частиц.
Объявление
Objective C
+ (instancetype)particleSystem
Возвращаемое значение
Новая система частиц возражает со значениями по умолчанию для всех ее свойств.
Обсуждение
Система частиц со значениями по умолчанию для всех ее свойств ничего не представляет, когда добавлено к сцене.
Чтобы более легко создать новый визуальный эффект используйте XCode. Выберите SceneKit Particle System в окне New File, затем выберите один из предварительно сконфигурированных шаблонов системы частиц для огня, облаков и других общих визуальных эффектов. Можно тогда изменить шаблонную систему частиц для создания эффекта, надлежащего проекту. Для загрузки файла системы частиц, создаваемого в XCode, посмотрите
particleSystemNamed:inDirectory:
метод.Оператор импорта
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Загружает систему частиц из файла в ресурсах пакета приложения.
Объявление
Параметры
name
Имя файла системы частиц в каталоге ресурсов пакета приложения, с или без
.scnp
расширение.directory
Путь подкаталога в каталоге ресурсов пакета приложения.
Возвращаемое значение
Новая система частиц инстанцируют от содержания файла.
Обсуждение
Файл частицы SceneKit, создаваемый XCode, содержит заархивированный
SCNParticleSystem
экземпляр, таким образом, можно также использоватьNSKeyedArchiver
иNSKeyedUnarchiver
классы записи и читают файлы частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
emissionDuration
СвойствоПродолжительность, в секундах, за которые система порождает новые частицы. Animatable.
Объявление
Swift
var emissionDuration: CGFloat
Objective C
@property(nonatomic) CGFloat emissionDuration
Обсуждение
birthRate
свойство определяет число частиц, порожденных во время этой продолжительности. Можно рандомизировать продолжительность сemissionDurationVariation
свойство.Продолжительность
0.0
указывает что все частицы (значениеbirthRate
свойство), мечут икру мгновенно. Используйте эту продолжительность для создания рандомизированных статических эффектов в сцене. Например, путем объединения этой опции сbirthLocation
иimageSequenceInitialFrameVariation
свойства, можно покрыть плоскость множеством спрайтов, создав видимость травянистого поля.Значение по умолчанию
1.0
секунды.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
emissionDurationVariation
СвойствоДиапазон, в секундах, рандомизированных значений продолжительности эмиссии. Animatable.
Объявление
Swift
var emissionDurationVariation: CGFloat
Objective C
@property(nonatomic) CGFloat emissionDurationVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
emissionDuration
свойство. В течение каждого периода эмиссии SceneKit случайным образом корректирует продолжительность до половиныemissionDurationVariation
значение. Например, еслиemissionDuration
значение1.0
секунды иemissionDurationVariation
значение0.5
секунды, система испускает частицы в течение0.75
к1.25
за секунды до остановки.Значение по умолчанию
0.0
секунды, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
idleDuration
СвойствоПродолжительность, в секундах, периодов, когда система не испускает частиц. Animatable.
Обсуждение
Если система
loops
значение свойстваYES
true
, можно заставить систему испускать частицы периодически или спорадически. Например, в системе цикличного выполнения, гдеemissionDuration
значение1.0
секунды иidleDuration
значение1.0
секунды, система чередует между равной вторые периоды порождения и не порождением частиц. Можно рандомизировать продолжительность сidleDurationVariation
свойство. Неактивная продолжительность не имеет никакого эффекта еслиloops
значение свойстваNO
false
.Значение по умолчанию
0.0
секунды, не указывая времени простоя между эмиссией. (Т.е. еслиloops
значение свойстваYES
true
, система испускает частицы постоянно.)Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
idleDurationVariation
СвойствоДиапазон, в секундах, рандомизированных неактивных значений продолжительности. Animatable.
Объявление
Swift
var idleDurationVariation: CGFloat
Objective C
@property(nonatomic) CGFloat idleDurationVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
idleDuration
свойство. В течение каждого периода неактивности SceneKit случайным образом корректирует продолжительность до половиныidleDurationVariation
значение. Например, еслиidleDuration
значение1.0
секунды иidleDurationVariation
значение0.5
секунды, система бездействует сроком на0.75
к1.25
секунды между эмиссией.Значение по умолчанию
0.0
секунды, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
loops
СвойствоБулево значение, определяющее, повторяет ли система свою эмиссию и периоды неактивности.
Объявление
Swift
var loops: Bool
Objective C
@property(nonatomic) BOOL loops
Обсуждение
Если это значение
YES
true
(значение по умолчанию), можно заставить систему испускать частицы периодически или спорадически. Например, в системе цикличного выполнения, гдеemissionDuration
значение1.0
секунды иidleDuration
значение1.0
секунды, система чередует альтернативы между равной вторые периоды порождения и не порождением частиц. ИспользуйтеemissionDurationVariation
иidleDurationVariation
свойства для рандомизации продолжительности каждой эмиссии и период неактивности, делая поведение эмиссии более спорадическим.Указать
NO
false
для систем частиц, создающих эффекты с одним выстрелом, такие как взрыв, появляющийся, когда побежден игровой символ.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
warmupDuration
СвойствоПродолжительность, в секундах, в течение которых частицы порождены перед системой, сначала представляется. Animatable.
Объявление
Swift
var warmupDuration: CGFloat
Objective C
@property(nonatomic) CGFloat warmupDuration
Обсуждение
Значение по умолчанию
0.0
секунды, указывая, что система начинает испускать частицы на первом кадре SceneKit, представляют его в. Измените это значение на «ускоренную перемотку» система частиц так, чтобы это, казалось, работало за некоторым количеством времени, когда это сначала представляется.Например, рассмотрите систему частиц, моделирующую падающий снег. С поведением по умолчанию сцена первоначально свободна от снежинок, только начинающих падать, поскольку появляется сцена. Если Вы устанавливаете a
warmupDuration
продолжительность нескольких секунд, сцена будет уже заполнена падающим снегом, когда это сначала появится.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
birthRate
СвойствоЧисло частиц метало икру в течение каждого периода эмиссии. Animatable.
Обсуждение
Система испускает это число частиц на постоянном уровне через продолжительность периода, указанного
emissionDuration
свойство. Значение нуля препятствует тому, чтобы система испустила частицы, если Вы не рандомизируете уровень рождаемости сbirthRateVariation
свойство.Значение по умолчанию
1
.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
birthRateVariation
СвойствоДиапазон рандомизированных значений уровня рождаемости частицы. Animatable.
Объявление
Swift
var birthRateVariation: CGFloat
Objective C
@property(nonatomic) CGFloat birthRateVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
birthRate
свойство. В течение каждого периода эмиссии SceneKit случайным образом корректирует уровень рождаемости до половиныbirthRateVariation
значение. Например, еслиbirthRate
значение100
частицы иbirthRateVariation
значение50
частицы, система случайным образом испускает между 75 и 125 частицами во времяemissionDuration
период.Значение по умолчанию
0.0
секунды, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
emitterShape
СвойствоФорма области пространства, где система порождает новые частицы.
Объявление
Swift
var emitterShape: SCNGeometry!
Objective C
@property(nonatomic, retain) SCNGeometry *emitterShape
Обсуждение
Для рандомизации расположений, где новые частицы мечут икру присвойте геометрию этому свойству. Эта геометрия определяет форму пространства, где новые частицы могут метать икру, и
birthLocation
иbirthDirection
свойства определяют расположения в и направления относительно формы. Например, присвоение геометрии сферы заставляет частицы порождать наугад расположения вдоль поверхности сферы (или в объеме сферы, согласноbirthLocation
свойство).Значение по умолчанию
nil
, указание, что все новые частицы испускают от единственной точки. Для систем частиц, присоединенных к узлу, эта точка является источником системы координат узла. Для систем частиц, присоединенных непосредственно к сцене с помощьюaddParticleSystem:withTransform:
метод, используйте тот методtransform
параметр для указания источника выброса газообразных отходов.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
birthLocation
СвойствоВозможные расположения для недавно порожденных частиц, относительно эмиттерной формы.
Объявление
Swift
var birthLocation: SCNParticleBirthLocation
Objective C
@property(nonatomic) SCNParticleBirthLocation birthLocation
Обсуждение
Это свойство определяет расположения для порождения новых частиц относительно геометрии, указанной в
emitterShape
свойство. Это свойство не имеет никакого эффекта еслиemitterShape
значение свойстваnil
.Например, если эмиттерная форма
SCNBox
геометрия и расположение рожденияSCNParticleBirthLocationVertex
, новые частицы могут случайным образом метать икру в любом из восьми углов поля.Значение по умолчанию
SCNParticleBirthLocationSurface
, указание, что новые частицы порождают наугад расположения вдоль поверхностиemitterShape
геометрия. Для возможных значений посмотритеSCNParticleBirthLocation
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
birthDirection
СвойствоВозможные начальные направления для недавно порожденных частиц, относительно эмиттерной формы.
Объявление
Swift
var birthDirection: SCNParticleBirthDirection
Objective C
@property(nonatomic) SCNParticleBirthDirection birthDirection
Обсуждение
Это свойство определяет начальные направления для новых частиц относительно геометрии, указанной в
emitterShape
свойство. Это свойство не имеет никакого эффекта еслиemitterShape
значение свойстваnil
.Например, если эмиттерная форма
SCNSphere
геометрия и расположение рожденияSCNParticleBirthDirectionSurfaceNormal
, новые частицы исходят далеко от центра сферы. Можно рандомизировать направление недавно порожденных частиц сspreadingAngle
свойство.Значение по умолчанию
SCNParticleBirthDirectionConstant
, указание, что все частицы используют ту же основуemittingDirection
значение. Для возможных значений посмотритеSCNParticleBirthDirection
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
emittingDirection
СвойствоНачальное направление для недавно порожденных частиц. Animatable.
Объявление
Swift
var emittingDirection: SCNVector3
Objective C
@property(nonatomic) SCNVector3 emittingDirection
Обсуждение
Если
emitterShape
значение свойстваnil
илиbirthDirection
значение свойстваSCNParticleBirthDirectionConstant
, недавно порожденные частицы испускают в направлении, указанном этим свойством. Можно рандомизировать направление недавно порожденных частиц сspreadingAngle
свойство.Значение по умолчанию является вектором
{0.0, 0.0, 1.0}
, указание, что частицы испускают в направлении положительной оси z.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
spreadingAngle
СвойствоДиапазон, в градусах, рандомизированных начальных направлений частицы. Animatable.
Объявление
Swift
var spreadingAngle: CGFloat
Objective C
@property(nonatomic) CGFloat spreadingAngle
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует направление, указанное
emittingDirection
илиbirthDirection
свойство. Например, в значении по умолчанию0.0
градусы, все частицы испускают в том же направлении. Увеличение распространяющегося угла к30.0
градусы позволяют частицам испускать в любом направлении в пространстве, сформированном как конус, центральный угол которого составляет 30 °.Это свойство не имеет никакого эффекта если
birthDirection
значение свойстваSCNParticleBirthDirectionRandom
.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleAngle
СвойствоУгол вращения, в градусах, недавно порожденных частиц. Animatable.
Обсуждение
Угол частицы (или ориентация) независим от ее направления движения. Например, эффект дыма может использовать маленькое изображение облака для каждой частицы, остающейся в том же углу, как дым повышается, но эффект снега может использовать изображение, зеркально отражающее и вращающееся, когда падает каждая снежинка.
orientationMode
свойство определяет, ли и как частицам позволяют вращаться, иparticleAngle
иparticleAngularVelocity
свойства определяют углы вращения и уровни. Можно рандомизировать вращения недавно порожденных частиц сparticleAngleVariation
свойство.Значение по умолчанию
0.0
градусы, не указывая вращения.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleAngleVariation
СвойствоДиапазон, в степенях рандомизированных начальных углов частицы. Animatable.
Объявление
Swift
var particleAngleVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleAngleVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleAngle
свойство. SceneKit случайным образом корректирует начальный угол каждой частицы до половиныparticleAngleVariation
значение. Например, еслиparticleAngle
значение90.0
градусы иparticleAngleVariation
значение30.0
градусы, недавно порожденные частицы случайным образом повернуты к углу между 75 ° и 105 °.Значение по умолчанию
0.0
градусы, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleVelocity
СвойствоНачальная скорость, в модулях в секунду, для недавно порожденных частиц. Animatable.
Объявление
Swift
var particleVelocity: CGFloat
Objective C
@property(nonatomic) CGFloat particleVelocity
Обсуждение
Частицы начинают перемещаться на этой скорости в направление, определенное
birthDirection
илиemittingDirection
свойство. Их направления и скорости могут измениться после того согласноacceleration
свойство или эффекты физики (см.affectedByGravity
,affectedByPhysicsFields
, иcolliderNodes
свойства). Можно рандомизировать скорость недавно порожденных частиц сparticleAngularVelocityVariation
свойство.Скорость частицы измеряется в модулях (пространства локальной координаты, содержащего систему частиц) в секунду.
Значение по умолчанию
0.0
модули в секунду, указывая, который недавно испустил частицы, являются стационарными, пока иначе не влияется.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleVelocityVariation
СвойствоДиапазон, в модулях в секунду, рандомизированных начальных скоростей частицы. Animatable.
Объявление
Swift
var particleVelocityVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleVelocityVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleVelocity
свойство. SceneKit случайным образом корректирует начальную скорость каждой частицы до половиныparticleVelocityVariation
значение. Например, еслиparticleVelocity
значение10.0
модули в секунду иparticleVelocityVariation
значение5.0
модули в секунду, недавно порожденные частицы имеют случайные скорости между7.5
и12.5
модули в секунду.Значение по умолчанию
0.0
модули в секунду, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleAngularVelocity
СвойствоНачальный уровень вращения, в градусах в секунду, недавно порожденных частиц. Animatable.
Объявление
Swift
var particleAngularVelocity: CGFloat
Objective C
@property(nonatomic) CGFloat particleAngularVelocity
Обсуждение
Угол частицы (или ориентация) независим от ее направления движения. Например, эффект дыма может использовать маленькое изображение облака для каждой частицы, остающейся в том же углу, как дым повышается, но эффект снега может использовать изображение, зеркально отражающее и вращающееся, когда падает каждая снежинка.
orientationMode
свойство определяет, ли и как частицам позволяют вращаться, иparticleAngle
иparticleAngularVelocity
свойства определяют углы вращения и уровни. Можно рандомизировать вращения недавно порожденных частиц сparticleAngleVariation
свойство.Значение по умолчанию
0.0
градусы в секунду, не указывая вращения.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleAngularVelocityVariation
СвойствоДиапазон, в градусах в секунду, рандомизированных начальных угловых скоростей для частиц. Animatable.
Объявление
Swift
var particleAngularVelocityVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleAngularVelocityVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleAngularVelocity
свойство. SceneKit случайным образом корректирует начальную угловую скорость каждой частицы до половиныparticleAngularVelocityVariation
значение. Например, еслиparticleAngularVelocity
значение10.0
градусы в секунду иparticleAngularVelocityVariation
значение5.0
градусы в секунду, недавно порожденные частицы вращают наугад скорости между7.5
и12.5
градусы в секунду.Значение по умолчанию
0.0
градусы в секунду, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleLifeSpan
СвойствоПродолжительность, в секундах, в течение которых каждая частица представляется прежде чем быть удаленным из сцены. Animatable.
Объявление
Swift
var particleLifeSpan: CGFloat
Objective C
@property(nonatomic) CGFloat particleLifeSpan
Обсуждение
После того, как каждая частица порождена, это появляется в сцене сроком на эту продолжительность прежде чем быть удаленным из сцены. Можно рандомизировать продолжительности жизни недавно порожденных частиц с
particleLifeSpanVariation
свойство.Значение по умолчанию
1.0
секунды.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleLifeSpanVariation
СвойствоДиапазон, в секундах, рандомизированных продолжительностей жизни частицы. Animatable.
Объявление
Swift
var particleLifeSpanVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleLifeSpanVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleLifeSpan
свойство. SceneKit случайным образом корректирует продолжительность жизни каждой частицы до половиныparticleLifeSpanVariation
значение. Например, еслиparticleLifeSpan
значение1.0
секунды иparticleLifeSpanVariation
значение0.5
секунды, каждая частица появляется на случайное время между0.75
и1.25
за секунды до быть удаленным из сцены.Значение по умолчанию
0.0
секунды, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleSize
СвойствоПредставленный размер, в модулях пространства мировой координаты сцены, изображения частицы. Animatable.
Обсуждение
SceneKit использует это значение и для ширины и для высоты
particleImage
текстура во время отображения. (Если Вы используетеstretchFactor
свойство для протяжения частиц в их направлении движения,particleSize
значение определяет ширину и высоту перед протяжением.) Можно рандомизировать размеры недавно порожденных частиц сparticleSizeVariation
свойство.Значение по умолчанию
1.0
, указание, что изображения частицы появляются одна единица в высоту и одна единица в ширину в пространстве мировой координаты сцены.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleSizeVariation
СвойствоДиапазон рандомизированных размеров частиц. Animatable.
Объявление
Swift
var particleSizeVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleSizeVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleSize
свойство. SceneKit случайным образом корректирует размер каждой частицы до половиныparticleSizeVariation
значение. Например, еслиparticleSize
значение1.0
иparticleSizeVariation
значение0.5
, недавно порожденные частицы случайным образом измерены между0.75
и1.25
единицы в ширину и высоко.Значение по умолчанию
0.0
, указание никакой рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleColor
СвойствоЦвет недавно порожденных частиц. Animatable.
Объявление
Swift
var particleColor: UIColor!
Objective C
@property(nonatomic, retain) UIColor *particleColor
Обсуждение
Этот цвет окрашивает или заштриховывает текстуру, предоставленную
particleImage
свойство. Можно использовать это свойство для реализации диапазона многих возможных визуальных эффектов с помощью тех же иллюстраций. Например, маленькая, расплывчатая, белая круговая текстура может быть окрашена желтая или оранжевая для моделирования огня, заштрихованного серый или черный для моделирования дыма, или оставленный в покое для моделирования падающего снега.Цвет по умолчанию является белым, заставляя изображение частицы появиться без оттенка или штриховки.
Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleColorVariation
СвойствоДиапазоны рандомизированных компонентов цвета частицы. Animatable.
Объявление
Swift
var particleColorVariation: SCNVector4
Objective C
@property(nonatomic) SCNVector4 particleColorVariation
Обсуждение
Этот вектор рандомизирует цвет, указанный
particleColor
свойство. Компоненты вектора указывают диапазоны изменения в оттенке, насыщенности, яркости и альфе, в том порядке.Например, рассмотрите эффекты различных
particleColorVariation
векторы в системе, чейparticleColor
свойство указывает полностью непрозрачный красный как основной цвет:Вектор
{0.25, 0.0, 0.0, 0.0}
позволяет недавно порожденным частицам брать любой оттенок в четверти цветового диска, центрируемого на красном (т.е. в пределах от фиолетового через пурпурный, красный, оранжевый цвет, и желтый к зеленому). Частицы сохраняют полную насыщенность, яркость и альфу.Вектор
{0.0, 0.0, 0.0, 1.0}
позволяет недавно порожденным частицам варьироваться по альфе между полным и половиной непрозрачности. (Диапазон изменения центрируется на основном значении, но фиксируется к максимуму1.0
.) Частицы сохраняют тот же оттенок, насыщенность и яркость как основной цвет.Вектор
{0.0, 1.0, 1.0, 0.0}
позволяет недавно порожденным частицам варьироваться по насыщенности и яркости, приводящей к случайным оттенкам красного цвета. Частицы сохраняют тот же оттенок и альфу как основной цвет.
Значение по умолчанию
SCNVector4Zero
, указание никакой рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleImage
СвойствоИзображение текстуры использование SceneKit для рендеринга каждой частицы.
Объявление
Swift
var particleImage: AnyObject!
Objective C
@property(nonatomic, retain) id particleImage
Обсуждение
Изображения текстуры помогают определить визуальный эффект, представленный системой частиц.
particleColor
свойство colorizes изображение перед рендерингом. Можно указать изображение с помощьюNSImage
(в OS X) илиUIImage
(в iOS) экземпляр, илиNSString
илиNSURL
экземпляр, содержащий путь или URL к файлу образа.Если значение
nil
(значение по умолчанию), SceneKit представляет каждую частицу как небольшой белый квадрат (цветнойparticleColor
свойство).Для указания последовательности кадров для анимации каждой частицы расположите кадры как сетку в единственном изображении, как показано на рисунке 1, затем используйте свойства, перечисленные в Анимации Изображений Частицы, чтобы идентифицировать кадры в сетке и установить скорость и стиль анимации.
Можно также создать частицы, кажущиеся отражающими путем присвоения массива изображений к этому свойству. SceneKit обрабатывает шесть изображений в массиве как карта куба и представляет каждую частицу как отражающую сферу существенного цвета. Система частиц
fresnelExponent
свойство управляет отражающей способностью каждой сферы. Для получения дополнительной информации на текстурах карты куба, посмотрите Ссылку класса SCNMaterialProperty.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
fresnelExponent
СвойствоЭкспонента отражающей способности SceneKit использует при рендеринге изображения частицы как карты куба. Animatable.
Объявление
Swift
var fresnelExponent: CGFloat
Objective C
@property(nonatomic) CGFloat fresnelExponent
Обсуждение
Это свойство только вступает в силу когда
particleImage
свойство является массивом шести изображений, определяющих карту куба. В этом случае SceneKit представляет каждую частицу как отражающую сферу.Экспонента френели модулирует отражающую способность поверхности от углов другого представления. В значении по умолчанию
1.0
, отражения имеют ту же интенсивность через всю поверхность частицы. В более высоких значениях края частицы являются более отражающими, чем центр.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
stretchFactor
СвойствоМножитель для протяжения частицы отображает вдоль их направления движения. Animatable.
Обсуждение
Используйте это свойство для создания визуальных эффектов, показывающих полосы движения, такие как фейерверк. Если
orientationMode
значение свойстваSCNParticleOrientationModeFree
, фактор фрагмента не по умолчанию расширяет изображения частицы в направлении оси y пространства локальной координаты каждой частицы.Значение по умолчанию
0.0
, указание, что изображения частицы поддерживают свое исходное форматное соотношение.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceRowCount
СвойствоЧисло строк для обработки частицы отображает как сетка кадров анимации.
Объявление
Swift
var imageSequenceRowCount: Int
Objective C
@property(nonatomic) NSUInteger imageSequenceRowCount
Обсуждение
Для указания последовательности кадров для анимации каждой частицы расположите кадры как сетку в единственном изображении, как показано на рисунке 1. Тогда используйте это свойство и
imageSequenceColumnCount
свойство для указания расположения кадров в изображении, иimageSequenceInitialFrame
иimageSequenceFrameRate
свойства для определения синхронизации анимации.Значение по умолчанию
1
. ЕслиimageSequenceColumnCount
значение также1
(значение по умолчанию), это не указывает анимации для изображений частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceColumnCount
СвойствоЧисло столбцов для обработки частицы отображает как сетка кадров анимации.
Объявление
Swift
var imageSequenceColumnCount: Int
Objective C
@property(nonatomic) NSUInteger imageSequenceColumnCount
Обсуждение
Для указания последовательности кадров для анимации каждой частицы расположите кадры как сетку в единственном изображении, как показано на рисунке 1. Тогда используйте это свойство и
imageSequenceRowCount
свойство для указания расположения кадров в изображении, иimageSequenceInitialFrame
иimageSequenceFrameRate
свойства для определения синхронизации анимации.Значение по умолчанию
1
. ЕслиimageSequenceRowCount
значение также1
(значение по умолчанию), это не указывает анимации для изображений частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceInitialFrame
СвойствоИндекс первого кадра в частице отображает анимацию. Animatable.
Объявление
Swift
var imageSequenceInitialFrame: CGFloat
Objective C
@property(nonatomic) CGFloat imageSequenceInitialFrame
Обсуждение
Для указания последовательности кадров для анимации каждой частицы расположите кадры как сетку в единственном изображении, как показано на рисунке 1. Общее количество кадров в последовательности изображений является продуктом умножения
imageSequenceRowCount
иimageSequenceColumnCount
свойства. Кадры пронумерованы, запустившись в нуле, указав верхнее левое изображение в сетке.При использовании последовательностей изображений для частиц SceneKit интерполирует между кадрами анимации, таким образом, дробное значение указывает, что частичное исчезает между двумя кадрами анимации.
Значение по умолчанию
0.0
, указание, что анимация начинается с верхнего левого изображения в сетке.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceInitialFrameVariation
СвойствоДиапазон рандомизированной начальной буквы структурирует для анимации изображения частицы. Animatable.
Объявление
Swift
var imageSequenceInitialFrameVariation: CGFloat
Objective C
@property(nonatomic) CGFloat imageSequenceInitialFrameVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
imageSequenceInitialFrame
свойство. SceneKit случайным образом корректирует начальный кадр анимации для каждой частицы до половиныimageSequenceInitialFrameVariation
значение. Например, еслиimageSequenceInitialFrame
значение10.0
иimageSequenceInitialFrameVariation
значение5.0
, каждая частица случайным образом начинается на кадре между кадром 7.5 и кадром 12.5 из анимации последовательности изображений.При использовании последовательностей изображений для частиц SceneKit интерполирует между кадрами анимации, таким образом, дробное значение (или для этого свойства или для любой конечной точки диапазона, который это определяет) результаты в частичном исчезает между двумя кадрами анимации.
Значение по умолчанию
0.0
секунды, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceFrameRate
СвойствоУровень, в кадрах в секунду, частицы отображает анимацию. Animatable.
Объявление
Swift
var imageSequenceFrameRate: CGFloat
Objective C
@property(nonatomic) CGFloat imageSequenceFrameRate
Обсуждение
Для указания последовательности кадров для анимации каждой частицы расположите кадры как сетку в единственном изображении, как показано на рисунке 1. Тогда используйте
imageSequenceRowCount
иimageSequenceColumnCount
свойства для указания расположения кадров в изображениях и этого свойства для определения скорости анимации.Значение по умолчанию
0.0
кадры в секунду, не указывая анимации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceFrameRateVariation
СвойствоДиапазон, в кадрах в секунду, рандомизированных частот кадров для частицы отображает анимацию. Animatable.
Объявление
Swift
var imageSequenceFrameRateVariation: CGFloat
Objective C
@property(nonatomic) CGFloat imageSequenceFrameRateVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
imageSequenceFrameRate
свойство. SceneKit случайным образом приводит скорость анимации в соответствие с каждой частицей до половиныimageSequenceFrameRateVariation
значение. Например, еслиimageSequenceFrameRate
значение10.0
кадры в секунду иimageSequenceFrameRateVariation
значение10.0
секунды, каждая частица анимирует на случайном уровне между5.0
и15.0
кадры в секунду.Значение по умолчанию
0.0
кадры в секунду, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
imageSequenceAnimationMode
СвойствоРежим анимации для частицы отображает анимацию.
Объявление
Swift
var imageSequenceAnimationMode: SCNParticleImageSequenceAnimationMode
Objective C
@property(nonatomic) SCNParticleImageSequenceAnimationMode imageSequenceAnimationMode
Обсуждение
Значение по умолчанию
SCNParticleImageSequenceAnimationModeRepeat
, указание, что циклы последовательности изображений постоянно. Для получения дополнительной информации на других значениях, посмотритеSCNParticleImageSequenceAnimationMode
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
affectedByGravity
СвойствоБулево значение, определяющее, влияет ли сила тяжести, как определено моделированием физики сцены, на движение частиц.
Объявление
Swift
var affectedByGravity: Bool
Objective C
@property(nonatomic) BOOL affectedByGravity
Обсуждение
Сила тяжести применяет постоянное ускорение ко всем частицам в системе. SceneKit предлагает две опции для моделирования эффекта силы тяжести на частицах:
affectedByGravity
свойство, использующееgravity
вектор, указанныйphysicsWorld
объект сцены, содержащей систему частиц. Используйте эту опцию, когда Вы захотите, чтобы частицы системы были затронуты той же силой тяжести какSCNPhysicsBody
объекты в Вашей сцене.acceleration
свойство, которое независимо от моделирования использование SceneKit для организаций физики в сцене. Используйте ускорение для моделирования силы тяжести, если Вы имеете нетSCNPhysicsBody
объекты в Вашей сцене, или если Вы хотите, чтобы частицы были затронуты и физикой сила тяжести в мире и другим постоянным ускорением (таким как ветер).
Значение по умолчанию
NO
false
, указание, что физика сила тяжести в мире не влияет на частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
affectedByPhysicsFields
СвойствоБулево значение, определяющее, влияют ли поля физики в сцене на движение частиц.
Объявление
Swift
var affectedByPhysicsFields: Bool
Objective C
@property(nonatomic) BOOL affectedByPhysicsFields
Обсуждение
SCNPhysicsField
объекты, присоединенные к узлам в сцене, применяют силы к организациям в их области эффекта. Например, радиальное поле силы тяжести притягивает организации к своему центру, и вихревое поле применяет силы, циркулирующие вокруг указанной оси. Силы, примененные полем физики на каждую частицу, пропорциональны ее массе, как указаноparticleMass
свойство.Значение по умолчанию
NO
false
, указание, что поля физики в сцене не влияют на частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
colliderNodes
СвойствоУзлы, геометрия которых частицы системы может столкнуться с.
Объявление
Swift
var colliderNodes: [AnyObject]!
Objective C
@property(nonatomic, copy) NSArray *colliderNodes
Обсуждение
Система частиц может выполнить ограниченное обнаружение коллизий и разрешение с конфигурациями в сцене. Если движущаяся частица пересекает геометрию, присоединенную к одному из
SCNNode
объекты в этом массиве, SceneKit разрешает коллизию, или удаляя частицу из сцены или позволяя ему возвратиться прочь или понижение вдоль поверхности геометрии.Этот массив пуст по умолчанию.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleDiesOnCollision
СвойствоБулево значение, определяющее, удалены ли частицы из сцены после столкновения с другим объектом.
Объявление
Swift
var particleDiesOnCollision: Bool
Objective C
@property(nonatomic) BOOL particleDiesOnCollision
Обсуждение
Это свойство не имеет никакого эффекта если
colliderNodes
массив пуст или не содержит узлов с присоединенной геометрией.Значение по умолчанию
NO
false
, указание, что частицы остаются в сцене после коллизии.particleBounce
иparticleFriction
свойства определяют ли и как возврат частиц или понижение после столкновения с геометрией.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
acceleration
СвойствоПостоянный ускоряющий вектор, в модулях в секунду в секунду, применился ко всем частицам в системе. Animatable.
Объявление
Swift
var acceleration: SCNVector3
Objective C
@property(nonatomic) SCNVector3 acceleration
Обсуждение
Используйте это свойство для моделирования эффектов, таких как ветер или сила тяжести на частицах.
Для использования того же вектора силы тяжести, применяющегося к организациям физики в сцене, или применять больше чем одно постоянное ускорение к частицам посмотрите
affectedByGravity
свойство.Значение по умолчанию
SCNVector3Zero
, указание никакого ускорения.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
dampingFactor
СвойствоФактор, замедляющий частицы относительно их скорости. Animatable.
Обсуждение
Используйте это свойство для моделирования эффектов, таких как жидкостное трение или сопротивление воздуха на частицах. Значение
0.0
(значение по умолчанию), не указывает замедления — т.е. каждая частица поддерживает постоянную скорость (если не затронуто силой тяжести, ускорением, полями физики или другими влияниями). Значение1.0
препятствует тому, чтобы переместились частицы.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleMass
СвойствоМасса, в килограммах, каждой частицы в системе. Animatable.
Обсуждение
Масса частицы определяет свое сопротивление силам. Эффекты
dampingFactor
свойство и любойSCNPhysicsField
объекты, влияющие на каждую частицу, пропорциональны ее массе. Можно рандомизировать массы частиц в системе сparticleMassVariation
свойство.Значение по умолчанию
1.0
килограммы.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleMassVariation
СвойствоДиапазон, в килограммах, рандомизированных масс частицы. Animatable.
Объявление
Swift
var particleMassVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleMassVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleMass
свойство. SceneKit случайным образом корректирует массу каждой частицы до половиныparticleMassVariation
значение. Например, еслиparticleMass
значение1.0
килограммы иparticleMassVariation
значение0.5
килограммы, каждая частица использует случайное массовое значение между0.75
и1.25
килограммы для моделирования физики.Значение по умолчанию
0.0
килограммы, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleCharge
СвойствоЭлектрический заряд, в кулонах, каждой частицы в системе. Animatable.
Объявление
Swift
var particleCharge: CGFloat
Objective C
@property(nonatomic) CGFloat particleCharge
Обсуждение
Заряд частицы определяет свое поведение, когда затронуто электрическим или магнитным полем. Используйте
SCNPhysicsField
класс для добавления этих полей к сцене. Частицы с положительными или отрицательными зарядами ведут себя по-другому, когда затронуто электрическими или магнитными полями. (Обратите внимание на то, что, в то время как SceneKit использует единицы СИ в качестве основания для его моделирования физики, Вы не должны волноваться о реализме — экспериментируют с различными комбинациями значений для нахождения поведения, работающего лучше всего на приложение или игру.) Можно рандомизировать заряды частиц в системе сparticleChargeVariation
свойство.Значение по умолчанию
0.0
кулоны, делая систему частиц незатронутой электрическими или магнитными полями.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleChargeVariation
СвойствоДиапазон, в кулонах, рандомизированных зарядов частицы. Animatable.
Объявление
Swift
var particleChargeVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleChargeVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleCharge
свойство. SceneKit случайным образом корректирует заряд каждой частицы до половиныparticleChargeVariation
значение. Например, еслиparticleCharge
значение1.0
кулоны иparticleChargeVariation
значение0.5
кулоны, каждая частица использует случайное значение заряда между0.75
и1.25
кулоны для моделирования физики.Значение по умолчанию
0.0
кулоны, не указывая рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleBounce
СвойствоКоэффициент восстановления каждой частицы в системе. Animatable.
Объявление
Swift
var particleBounce: CGFloat
Objective C
@property(nonatomic) CGFloat particleBounce
Обсуждение
Реституция определяет сумму энергии, полученной или потерянной в коллизии. (Для определения поведения коллизии посмотрите
colliderNodes
свойство.)Значение
1.0
указывает, что частица не теряет энергии в коллизии (например, частица, падающая от определенной высоты на плоскую поверхность, приходит в норму к той же высоте). Большие значения указывают энергию, полученные, и меньшие значения указывают потерю энергии. Значение0.0
препятствует тому, чтобы возвратились частицы. Можно рандомизировать факторы возврата частиц в системе сparticleBounceVariation
свойство.Значение по умолчанию
0.7
.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleBounceVariation
СвойствоДиапазон рандомизированных коэффициентов восстановления для частиц. Animatable.
Объявление
Swift
var particleBounceVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleBounceVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleBounce
свойство. SceneKit случайным образом корректирует коэффициент восстановления каждой частицы до половиныparticleBounceVariation
значение. Например, еслиparticleBounce
значение1.0
иparticleBounceVariation
значение0.5
, каждая частица использует случайный коэффициент восстановления между0.75
и1.25
для моделирования физики.Значение по умолчанию
0.0
, указание никакой рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleFriction
СвойствоКоэффициент трения каждой частицы в системе. Animatable.
Объявление
Swift
var particleFriction: CGFloat
Objective C
@property(nonatomic) CGFloat particleFriction
Обсуждение
Трение определяет сопротивление частицы скользящему движению после коллизии. (Для определения поведения коллизии посмотрите
colliderNodes
свойство.) Можно рандомизировать коэффициенты трения частиц в системе сparticleFrictionVariation
свойство.Значение
1.0
(значение по умолчанию), позволяет частице скользить свободно, и значение0.0
препятствует тому, чтобы скользила частица.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleFrictionVariation
СвойствоДиапазон рандомизированных коэффициентов трения для частиц. Animatable.
Объявление
Swift
var particleFrictionVariation: CGFloat
Objective C
@property(nonatomic) CGFloat particleFrictionVariation
Обсуждение
Установка ненулевого значения для этого свойства рандомизирует эффект
particleFriction
свойство. SceneKit случайным образом корректирует коэффициент трения каждой частицы до половиныparticleFrictionVariation
значение. Например, еслиparticleFriction
значение1.0
иparticleFrictionVariation
значение0.5
, каждая частица использует случайный коэффициент трения между0.75
и1.25
для моделирования физики.Значение по умолчанию
0.0
, указание никакой рандомизации.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
systemSpawnedOnCollision
СвойствоДругая система частиц, которая будет добавлена к сцене, когда частица сталкивается с геометрией сцены.
Объявление
Swift
var systemSpawnedOnCollision: SCNParticleSystem!
Objective C
@property(nonatomic, retain) SCNParticleSystem *systemSpawnedOnCollision
Обсуждение
Когда частица сталкивается с геометрией сцены, SceneKit добавляет копию указанной системы частиц к сцене в расположении коллизии. (Для определения поведения коллизии посмотрите
colliderNodes
свойство.)Используйте это свойство для моделирования эффектов, таких как дождь — одна система частиц моделирует падающие капли дождя, и другая система частиц моделирует всплески, происходящие, где каждая капля дождя ударяет поверхность.
Значение по умолчанию этого свойства
nil
, указание, что никакие дополнительные системы не добавляются к сцене на коллизии частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
systemSpawnedOnDying
СвойствоДругая система частиц, которая будет добавлена к сцене, когда умирает частица.
Объявление
Swift
var systemSpawnedOnDying: SCNParticleSystem!
Objective C
@property(nonatomic, retain) SCNParticleSystem *systemSpawnedOnDying
Обсуждение
Когда частица достигает конца
particleLifeSpan
продолжительность и удалена из сцены, SceneKit добавляет копию указанной системы частиц к сцене в заключительном расположении частицы.Используйте это свойство для моделирования эффектов, таких как фейерверк — одна система частиц моделирует запускающийся фейерверк, и другая система частиц моделирует взрыв каждого фейерверка.
Значение по умолчанию этого свойства
nil
, указание, что никакие дополнительные системы не добавляются к сцене на смерти частицы.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
systemSpawnedOnLiving
СвойствоДругая система частиц, которая будет добавлена к сцене для каждой живущей частицы в системе.
Объявление
Swift
var systemSpawnedOnLiving: SCNParticleSystem!
Objective C
@property(nonatomic, retain) SCNParticleSystem *systemSpawnedOnLiving
Обсуждение
Каждый раз, когда SceneKit представляет кадр, он добавляет экземпляр указанной системы частиц к сцене в расположении каждой представленной частицы.
Используйте это свойство для моделирования непрерывных побочных эффектов на частицах. Например, для создания фонтана бриллиантов используйте одну систему частиц в качестве фонтана и присоедините другую систему, моделирующую каждый бриллиант.
Значение по умолчанию этого свойства
nil
, указание, что никакие дополнительные системы не добавляются к сцене при рендеринге частиц.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
blendMode
СвойствоРежим наложения для составления композита частицы отображает в представленную сцену.
Объявление
Swift
var blendMode: SCNParticleBlendMode
Objective C
@property(nonatomic) SCNParticleBlendMode blendMode
Обсуждение
Вместе с
sortingMode
свойство, режимы смешивания влияют на появление перекрывающихся изображений частицы, когда представлено.Для возможных режимов смешивания посмотрите
SCNParticleBlendMode
. Значение по умолчаниюSCNParticleBlendModeAdditive
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
orientationMode
СвойствоОпределение режима, ли и как могут вращаться частицы.
Объявление
Swift
var orientationMode: SCNParticleOrientationMode
Objective C
@property(nonatomic) SCNParticleOrientationMode orientationMode
Обсуждение
Угол частицы (или ориентация) независим от ее направления движения. Например, эффект дыма может использовать маленькое изображение облака для каждой частицы, остающейся в том же углу, как дым повышается, но эффект снега может использовать изображение, зеркально отражающее и вращающееся, когда падает каждая снежинка.
Для возможных режимов ориентации посмотрите
SCNParticleOrientationMode
. Значение по умолчаниюSCNParticleOrientationModeBillboardScreenAligned
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
sortingMode
СвойствоРежим, определяющий порядок, в котором SceneKit представляет частицы системы.
Объявление
Swift
var sortingMode: SCNParticleSortingMode
Objective C
@property(nonatomic) SCNParticleSortingMode sortingMode
Обсуждение
Вместе с
blendMode
свойство, сортируя режимы влияет на появление перекрывающихся изображений частицы, когда представлено.Для возможных режимов сортировки посмотрите
SCNParticleSortingMode
. Значение по умолчаниюSCNParticleSortingModeNone
, указание, что SceneKit может представить частицы в произвольном порядке.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
lightingEnabled
СвойствоБулево значение, определяющее, применяет ли SceneKit освещение к изображениям частицы при рендеринге.
Объявление
Swift
var lightingEnabled: Bool
Objective C
@property(nonatomic, getter=isLightingEnabled) BOOL lightingEnabled
Обсуждение
Если
YES
true
, SceneKit использует позицию, цвет и другие атрибутыSCNLight
объекты в сцене для штриховки каждого представленного изображения частицы. Используйте эту опцию улучшить объемные эффекты, такие как дым и вуаль.Значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
blackPassEnabled
СвойствоБулево значение, определяющее, представляет ли SceneKit частицы черного цвета цвета прежде, чем представить изображение частицы.
Объявление
Swift
var blackPassEnabled: Bool
Objective C
@property(nonatomic, getter=isBlackPassEnabled) BOOL blackPassEnabled
Обсуждение
Установите это свойство в
YES
true
улучшать визуальный контраст при использовании аддитивного смешивания. Значение по умолчаниюNO
false
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
local
СвойствоБулево значение, указывающее, работает ли моделирование частицы в пространстве локальной координаты узла, содержащего его.
Объявление
Swift
var local: Bool
Objective C
@property(nonatomic, getter=isLocal) BOOL local
Обсуждение
Если
NO
false
(значение по умолчанию), все позиции, расстояния и скорости в системе частиц находятся в системе мировой координаты сцены. ЕслиYES
true
, система частиц работает в пространстве локальной координаты узла, содержащего его.Используйте это свойство, чтобы выбрать, следуют ли частицы, порожденные движущимся эмиттером, за системой, когда это перемещается.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Возвращает систему частиц ее начальному состоянию.
Объявление
Swift
func reset()
Objective C
- (void)reset
Обсуждение
Вызов этого метода удаляет все в настоящее время живые частицы из сцены.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
speedFactor
СвойствоМножитель для скорости, на которой SceneKit выполняет моделирование частицы. Animatable.
Обсуждение
Используйте это свойство, чтобы убыстриться или замедлить полное поведение системы частиц, не изменяя много отдельных свойств (такой как
acceleration
,particleAngularVelocity
, иparticleBounce
) то влияние движение частиц.Значение по умолчанию 1.0. Нижние значения замедляют эффект; более высокие значения делают эффект выполненным быстрее.
Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Добавляет блок, изменяющий свойства частицы, чтобы быть выполненным в указанном событии во временах жизни частиц в системе.
Объявление
Swift
func handleEvent(_
event
: SCNParticleEvent, forPropertiesproperties
: [AnyObject], withBlockblock
: SCNParticleEventBlock)Objective C
- (void)handleEvent:(SCNParticleEvent)
event
forProperties:(NSArray *)properties
withBlock:(SCNParticleEventBlock)block
Параметры
event
Событие, в котором можно вызвать блок. Посмотрите
SCNParticleEvent
для позволенных значений.properties
Массив, содержащий один или больше констант, перечислил в Ключах Свойства Частицы, каждый из которых указывает свойство появления или способы поведения частиц в системе частиц.
block
A
SCNParticleEventBlock
блок, который вызовут каждый раз SceneKit, представляет кадр. В этом блоке можно изменить свойства частиц в системе.Обсуждение
Путем соединения блока с одним или более свойствами частицы можно выполнить произвольный код, изменяющий те свойства, когда значительное событие на моделировании частицы имеет место для одной или более частиц. Например, можно использовать следующий код с эффектом конфетти случайным образом переключиться между двумя разными цветами для каждой порожденной частицы:
[system handleEvent:SCNParticleEventBirth
forProperties:@[SCNParticlePropertyColor]
withBlock:^(void **data, size_t *dataStride, uint32_t *indices , NSInteger count) {
for (NSInteger i = 0; i < count; ++i) {
float *color = (float *)((char *)data[0] + dataStride[0] * i);
if (rand() & 0x1) { // Switch the green and red color components.
color[0] = color[1];
color[1] = 0;
}
}
}];
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
propertyControllers
СвойствоСловарь, дополнительно связывающий свойства частицы с объектами, анимирующими значение свойства для каждой частицы.
Объявление
Swift
var propertyControllers: [NSObject : AnyObject]!
Objective C
@property(nonatomic, copy) NSDictionary *propertyControllers
Обсуждение
Каждый ключ в этом словаре является одной из констант, перечисленных в Ключах Свойства Частицы, и значение для каждого ключа является a
SCNParticlePropertyController
объект, ответственный за варьирование того свойства в течение долгого времени. Используйте контроллеры свойства частицы для добавления эффективных анимаций, изменяющих появление или поведение каждой частицы, испускаемой системой.Добавить более сложное поведение, которое не может быть описано a
SCNParticlePropertyController
объект, используйтеaddModifierForProperties:atStage:withBlock:
добавить блок модификатора частицы. Однако знайте, что блоки модификатора частицы могут сильно повлиять на производительность рендеринга.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Добавляет блок, изменяющий свойства частицы, чтобы быть выполненным каждый раз, когда SceneKit представляет кадр.
Объявление
Swift
func addModifierForProperties(_
properties
: [AnyObject], atStagestage
: SCNParticleModifierStage, withBlockblock
: SCNParticleModifierBlock)Objective C
- (void)addModifierForProperties:(NSArray *)
properties
atStage:(SCNParticleModifierStage)stage
withBlock:(SCNParticleModifierBlock)block
Параметры
properties
Массив, содержащий один или больше констант, перечислил в Ключах Свойства Частицы, каждый из которых указывает свойство появления или способы поведения частиц в системе частиц.
stage
Этап моделирования частицы SceneKit, во время которого можно вызвать блок. Посмотрите
SCNParticleModifierStage
для позволенных значений.block
A
SCNParticleModifierBlock
блок, который вызовут каждый раз SceneKit, представляет кадр. В этом блоке можно изменить свойства всех частиц в системе.Обсуждение
Путем соединения блока с одним или более свойствами частицы можно выполнить произвольный код, изменяющий те свойства во время каждого кадра анимации. Эта опция обеспечивает максимальную гибкость для изменения появления или поведения частиц в течение долгого времени.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Удаляет блоки модификатора частицы для указанного этапа моделирования частицы.
Объявление
Swift
func removeModifiersOfStage(_
stage
: SCNParticleModifierStage)Objective C
- (void)removeModifiersOfStage:(SCNParticleModifierStage)
stage
Параметры
stage
Этап моделирования частицы SceneKit, во время которого можно вызвать блок. Посмотрите
SCNParticleModifierStage
для позволенных значений.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Удаляет все блоки модификатора частицы, связанные с системой частиц.
Объявление
Swift
func removeAllModifiers()
Objective C
- (void)removeAllModifiers
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Подпись для блоков, вызванных SceneKit в ответ на значительные события во время моделирования частицы, используемого
handleEvent:forProperties:withBlock:
метод.Объявление
Swift
typealias SCNParticleEventBlock = (UnsafeMutablePointer<UnsafeMutablePointer<Void>>, UnsafeMutablePointer<Int>, UnsafeMutablePointer<UInt32>, Int) -> Void
Objective C
typedef void (^SCNParticleEventBlock)(void **data, size_t *dataStride, uint32_t *indices, NSInteger count)
Обсуждение
Блок берет следующие параметры:
data
Массив значений с плавающей точкой, содержащих дорожки данных свойства для частиц системы. Ширина и формат каждой дорожки данных зависят от свойств, которые Вы указываете при вызове
handleEvent:forProperties:withBlock:
метод.dataStride
Массив, идентифицирующий смещение, в байтах, значения каждого свойства в данных, чередует для каждой частицы. Порядок смещений в этом массиве соответствует порядку
properties
массив Вы указываете при вызовеhandleEvent:forProperties:withBlock:
метод.indices
Массив, в котором каждый элемент является индексом, идентифицирующим (в
data
массив) данные чередуют для каждой частицы, затронутой событием, заставившим SceneKit вызывать блок обработчика.Когда SceneKit вызывает Ваш блок обработчика для
SCNParticleEventBirth
событие, Вы не должны использовать этот параметр — в то время, затронутые частицы индексируются от0
кcount
значение параметра.count
Число частиц затронуто текущим событием.
Используйте этот блок для изменения свойств отдельных частиц, когда они порождены, когда они сталкиваются с геометрией сцены, или когда они умирают (т.е. достигните конца их продолжительностей жизни, и удалены из сцены).
Следующий пример иллюстрирует установку блока обработчика для событий коллизии частицы:
[system handleEvent:SCNParticleEventCollision
forProperties:@[SCNParticlePropertyAngle,
SCNParticlePropertyRotationAxis,
SCNParticlePropertyContactNormal]
withBlock:^(void **data, size_t *dataStride, uint32_t *indices, NSInteger count) {
// For each particle affected by the collision event,
// calculate pointers in the data to each property's value.
for (NSInteger i = 0; i < count; ++i) {
// SCNParticlePropertyAngle (float)
float *angle = (float *)((char *)data[0] + dataStride[0] * indices[i]);
// angle[0] is the particle's rotation angle in radians.
// SCNParticlePropertyRotationAxis (float3)
float *axis = (float *)((char *)data[1] + dataStride[1] * indices[i]);
// axis[0..2] are the xyz components of the particle's rotation axis.
// SCNParticlePropertyContactNormal (float3)
float *norm = (float *)((char *)data[2] + dataStride[2] * indices[i]);
// norm[0..2] are the xyz components of the contact normal vector.
// Now, use the norm vector to rotate the particle's axis/angle (not shown).
}
}];
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Подпись для блоков, вызванных SceneKit для изменения свойств частицы на каждом кадре моделирования, используемого
addModifierForProperties:atStage:withBlock:
метод.Объявление
Swift
typealias SCNParticleModifierBlock = (UnsafeMutablePointer<UnsafeMutablePointer<Void>>, UnsafeMutablePointer<Int>, Int, Int, Float) -> Void
Objective C
typedef void (^SCNParticleModifierBlock)(void **data, size_t *dataStride, NSInteger start, NSInteger end, float deltaTime)
Обсуждение
Блок берет следующие параметры:
data
Массив значений с плавающей точкой, содержащих дорожки данных свойства для частиц системы. Ширина и формат каждой дорожки данных зависят от свойств, которые Вы указываете при вызове
addModifierForProperties:atStage:withBlock:
метод.dataStride
Массив, идентифицирующий смещение, в байтах, значения каждого свойства в данных, чередует для каждой частицы. Порядок смещений в этом массиве соответствует порядку
properties
массив Вы указываете при вызовеaddModifierForProperties:atStage:withBlock:
метод.start
Индекс данных первой частицы чередует в
data
массив.end
Индекс данных последней частицы чередует в
data
массив.deltaTime
Прошедшее время, в секундах, начиная с последнего кадра моделирования.
Используйте этот блок для изменения свойств отдельных частиц на каждом кадре моделирования.
Следующий пример иллюстрирует установку блока модификатора, изменяющего позицию и скорость частицы:
[system addModifierForProperties:@[SCNParticlePropertyPosition,
SCNParticlePropertyVelocity]
atStage:SCNParticleModifierStagePostDynamics
withBlock:^(void **data, size_t *dataStride, NSInteger start, NSInteger end, float deltaTime) {
// For each particle to be processed,
// calculate pointers in the data to each property's value:
for (NSInteger i = start; i < end; ++i) {
// SCNParticlePropertyPosition (float3)
float *pos = (float *)((char *)data[0] + dataStride[0] * i);
// pos[0..2] are the xyz components of the particle's position.
// SCNParticlePropertyVelocity (float3)
float *vel = (float *)((char *)data[1] + dataStride[1] * i);
// vel[0..2] are the xyz components of the particle's position.
// Now, compute a new position and velocity (not shown).
}
}];
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Опции для порядка рендеринга частиц, используемых
sortingMode
свойство.Объявление
Swift
enum SCNParticleSortingMode : Int { case None case ProjectedDepth case Distance case OldestFirst case YoungestFirst }
Objective C
typedef enum : NSInteger { SCNParticleSortingModeNone, SCNParticleSortingModeProjectedDepth, SCNParticleSortingModeDistance, SCNParticleSortingModeOldestFirst, SCNParticleSortingModeYoungestFirst } SCNParticleSortingMode
Константы
-
None
SCNParticleSortingModeNone
Частицы не сортируются; они могут быть представлены в любом порядке.
Доступный в iOS 8.0 и позже.
-
ProjectedDepth
SCNParticleSortingModeProjectedDepth
Частицы дальше от точки зрения (как измерено использование спроектированной глубины) представляются перед более близкими частицами.
Обычно Вы используете этот режим сортировки в сочетании с
SCNParticleOrientationModeBillboardScreenAligned
режим ориентации.Доступный в iOS 8.0 и позже.
-
Distance
SCNParticleSortingModeDistance
Частицы дальше от точки зрения (как измерено использование расстояния от камеры в пространстве сцены) представляются перед более близкими частицами.
Обычно Вы используете этот режим сортировки в сочетании с
SCNParticleOrientationModeBillboardViewAligned
режим ориентации.Доступный в iOS 8.0 и позже.
-
OldestFirst
SCNParticleSortingModeOldestFirst
Частицы испустили, ранее представляются, прежде чем частицы испустили позже.
Доступный в iOS 8.0 и позже.
-
YoungestFirst
SCNParticleSortingModeYoungestFirst
Частицы, испускаемые позже, представляются, прежде чем частицы испустили ранее.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Опции для объединения источника и целевого пикселя окрашивают при составлении композита частиц во время рендеринга, используемого
blendMode
свойство.Объявление
Swift
enum SCNParticleBlendMode : Int { case Additive case Subtract case Multiply case Screen case Alpha case Replace }
Objective C
typedef enum : NSInteger { SCNParticleBlendModeAdditive, SCNParticleBlendModeSubtract, SCNParticleBlendModeMultiply, SCNParticleBlendModeScreen, SCNParticleBlendModeAlpha, SCNParticleBlendModeReplace } SCNParticleBlendMode
Константы
-
Additive
SCNParticleBlendModeAdditive
Источник и целевые цвета добавляются вместе.
Доступный в iOS 8.0 и позже.
-
Subtract
SCNParticleBlendModeSubtract
Исходный цвет вычтен из целевого цвета.
Доступный в iOS 8.0 и позже.
-
Multiply
SCNParticleBlendModeMultiply
Исходный цвет умножается на целевой цвет.
Доступный в iOS 8.0 и позже.
-
Screen
SCNParticleBlendModeScreen
Исходный цвет добавляется к целевым цветным временам инвертированный исходный цвет.
Доступный в iOS 8.0 и позже.
-
Alpha
SCNParticleBlendModeAlpha
Источник и целевые цвета смешиваются путем умножения исходного альфа-значения.
Доступный в iOS 8.0 и позже.
-
Replace
SCNParticleBlendModeReplace
Исходный цвет заменяет целевой цвет.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Опции для ограничения ориентации частиц, используемых
orientationMode
свойство.Объявление
Swift
enum SCNParticleOrientationMode : Int { case BillboardScreenAligned case BillboardViewAligned case Free case BillboardYAligned }
Objective C
typedef enum : NSInteger { SCNParticleOrientationModeBillboardScreenAligned, SCNParticleOrientationModeBillboardViewAligned, SCNParticleOrientationModeFree, SCNParticleOrientationModeBillboardYAligned } SCNParticleOrientationMode
Константы
-
BillboardScreenAligned
SCNParticleOrientationModeBillboardScreenAligned
Ориентация каждой частицы всегда фиксируется относительно камеры точки зрения.
Используйте этот режим для простых изображений частицы, отдельное появление которых не имеет никакого отношения к пространству сцены, такому как сферы, круги и «sparkle» иллюстрации.
Доступный в iOS 8.0 и позже.
-
BillboardViewAligned
SCNParticleOrientationModeBillboardViewAligned
Каждая частица всегда обращенным к камере точки зрения (но может вращаться об оси, параллельной направлению представления).
Используйте этот режим для изображений частицы, отдельное появление которых зависит от расположения, и ориентация в пространстве сцены, таком как «самозванец» отображает деревья представления или облака в сцене.
Доступный в iOS 8.0 и позже.
-
Free
SCNParticleOrientationModeFree
Ориентации частицы не ограничиваются; они могут вращаться свободно во всех осях.
При использовании этого режима можно изменить ось вращения каждой частицы с
SCNParticlePropertyRotationAxis
ключ.Доступный в iOS 8.0 и позже.
-
BillboardYAligned
SCNParticleOrientationModeBillboardYAligned
Направление оси y каждой частицы всегда фиксируется относительно камеры точки зрения.
Используйте этот режим, чтобы позволить каждой частице вращаться свободно о ее оси y (как определено
particleAngle
иparticleAngularVelocity
свойства илиSCNParticlePropertyAngle
ключ), но препятствуют тому, чтобы он вращался вокруг любой другой оси.Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Опции для начального расположения каждой испускаемой частицы, используемой
birthLocation
свойство.Объявление
Swift
enum SCNParticleBirthLocation : Int { case Surface case Volume case Vertex }
Objective C
typedef enum : NSInteger { SCNParticleBirthLocationSurface, SCNParticleBirthLocationVolume, SCNParticleBirthLocationVertex } SCNParticleBirthLocation
Константы
-
Surface
SCNParticleBirthLocationSurface
Новые частицы могут быть созданы в любом расположении на поверхности эмиттерной формы.
Доступный в iOS 8.0 и позже.
-
Volume
SCNParticleBirthLocationVolume
Новые частицы могут быть созданы в любом расположении в объеме эмиттерной формы.
Это значение применяется только когда
emitterShape
свойство указывает одни из встроенных базовых конфигураций SceneKit (SCNPlane
,SCNBox
,SCNSphere
,SCNPyramid
,SCNCone
,SCNCylinder
,SCNCapsule
,SCNTube
, иSCNTorus
).Доступный в iOS 8.0 и позже.
-
Vertex
SCNParticleBirthLocationVertex
Новые частицы могут быть созданы в только в расположениях вершин в эмиттерной форме.
Доступный в iOS 8.0 и позже.
Обсуждение
emitterShape
свойство определяет форму пространства, в котором новые частицы могут быть испущены, иbirthLocation
свойство определяет расположения новых частиц относительно этой формы.Чтобы заставить частицы системы испустить от единственной точки, установите
emitterShape
свойство кnil
(значение по умолчанию). В этом случае SceneKit игнорируетbirthLocation
свойство.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Опции для начального направления каждой испускаемой частицы, используемой
birthDirection
свойство.Объявление
Swift
enum SCNParticleBirthDirection : Int { case Constant case SurfaceNormal case Random }
Objective C
typedef enum : NSInteger { SCNParticleBirthDirectionConstant, SCNParticleBirthDirectionSurfaceNormal, SCNParticleBirthDirectionRandom } SCNParticleBirthDirection
Константы
-
Constant
SCNParticleBirthDirectionConstant
Направление испускания является тем же для всех частиц.
При использовании этого режима,
emittingDirection
свойство определяет основное направление для всех частиц, иspreadingAngle
свойство добавляет случайное изменение к этому направлению.Доступный в iOS 8.0 и позже.
-
SurfaceNormal
SCNParticleBirthDirectionSurfaceNormal
Направление испускания для каждой частицы приезжает поверхностный вектор нормали в точке, где испускается частица.
Система частиц создает новые частицы в точках в пространстве, определенном
emitterShape
геометрия. Когда новая частица испускается, поверхностный вектор нормали геометрии в точке, самой близкой, частица определяет начальное направление частицы. (Обратите внимание на то, чтоbirthLocation
свойство определяет, где частицы могут быть созданы относительноemitterShape
геометрия.)Это значение не имеет никакого эффекта если
emitterShape
значение свойстваnil
.Доступный в iOS 8.0 и позже.
-
Random
SCNParticleBirthDirectionRandom
SceneKit рандомизирует направление испускания для каждой частицы.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Опции для анимации каждой частицы с последовательностью изображений, используемых
imageSequenceAnimationMode
свойство.Объявление
Swift
enum SCNParticleImageSequenceAnimationMode : Int { case Repeat case Clamp case AutoReverse }
Objective C
typedef enum : NSInteger { SCNParticleImageSequenceAnimationModeRepeat, SCNParticleImageSequenceAnimationModeClamp, SCNParticleImageSequenceAnimationModeAutoReverse } SCNParticleImageSequenceAnimationMode
Константы
-
Repeat
SCNParticleImageSequenceAnimationModeRepeat
Циклы анимации после отображения всех его изображений.
Доступный в iOS 8.0 и позже.
-
Clamp
SCNParticleImageSequenceAnimationModeClamp
Остановки анимации после отображения всех его изображений.
После концов анимации частица продолжает отображать последнее изображение последовательности. (Или первое, если анимация играет наоборот.)
Доступный в iOS 8.0 и позже.
-
AutoReverse
SCNParticleImageSequenceAnimationModeAutoReverse
После того, как анимация выводит на экран все свои изображения, она играет снова в обратном порядке.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Этапы моделирования частицы SceneKit обрабатывают, в который можно вставить блоки модификатора, используемые
addModifierForProperties:atStage:withBlock:
метод.Объявление
Swift
enum SCNParticleModifierStage : Int { case PreDynamics case PostDynamics case PreCollision case PostCollision }
Objective C
typedef enum : NSInteger { SCNParticleModifierStagePreDynamics, SCNParticleModifierStagePostDynamics, SCNParticleModifierStagePreCollision, SCNParticleModifierStagePostCollision } SCNParticleModifierStage
Константы
-
PreDynamics
SCNParticleModifierStagePreDynamics
Этап перед SceneKit моделирует движение частиц.
Вставьте блок модификатора на данном этапе для изменения вводов к моделированию динамики. Например, при изменении скоростей частиц во время этого этапа SceneKit вычисляет новые позиции для каждой частицы на основе ее измененной скорости.
Доступный в iOS 8.0 и позже.
-
PostDynamics
SCNParticleModifierStagePostDynamics
Этап после SceneKit моделирует движение частиц.
Вставьте блок модификатора на данном этапе для изменения вывода моделирования динамики. Например, при изменении позиций частиц во время этого этапа измененные позиции переопределяют определенных моделированием SceneKit.
Доступный в iOS 8.0 и позже.
-
PreCollision
SCNParticleModifierStagePreCollision
Этап перед SceneKit моделирует результаты коллизий между геометрией сцены и частицами.
Вставьте блок модификатора на данном этапе для изменения вводов к разрешению коллизии. Например, при изменении факторов возврата частиц во время этого этапа SceneKit использует измененные факторы для вычислений скорости возврата каждой частицы.
Доступный в iOS 8.0 и позже.
-
PostCollision
SCNParticleModifierStagePostCollision
Этап после SceneKit моделирует результаты коллизий между геометрией сцены и частицами.
Вставьте блок модификатора на данном этапе для изменения вывода разрешения коллизии. Например, при изменении скоростей частиц во время этого этапа измененные скорости переопределяют скорость возврата, определенную моделированием SceneKit.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Значительные события в продолжительностях жизни моделируют частицы, используемые
handleEvent:forProperties:withBlock:
метод.Объявление
Swift
enum SCNParticleEvent : Int { case Birth case Death case Collision }
Objective C
typedef enum : NSInteger { SCNParticleEventBirth, SCNParticleEventDeath, SCNParticleEventCollision } SCNParticleEvent
Константы
-
Birth
SCNParticleEventBirth
Когда новые частицы мечут икру, происходит.
Используйте обработчик для этого события для переопределения начальных свойств каждой частицы.
Доступный в iOS 8.0 и позже.
-
Death
SCNParticleEventDeath
Когда частицы достигают конца своей продолжительности жизни, происходит.
SceneKit вызывает Ваш блок обработчика событий сразу прежде, чем удалить мертвые частицы из сцены.
Доступный в iOS 8.0 и позже.
-
Collision
SCNParticleEventCollision
Когда частицы сталкиваются с геометрией сцены, происходит.
SceneKit сразу вызывает Ваш блок обработчика событий после разрешения коллизии.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
-
Ключевые свойства идентификации отдельных частиц, используемых
propertyControllers
словарь иhandleEvent:forProperties:withBlock:
иaddModifierForProperties:atStage:withBlock:
методы.Объявление
Swift
let SCNParticlePropertyPosition: String let SCNParticlePropertyAngle: String let SCNParticlePropertyRotationAxis: String let SCNParticlePropertyVelocity: String let SCNParticlePropertyAngularVelocity: String let SCNParticlePropertyLife: String let SCNParticlePropertyColor: String let SCNParticlePropertyOpacity: String let SCNParticlePropertySize: String let SCNParticlePropertyFrame: String let SCNParticlePropertyFrameRate: String let SCNParticlePropertyBounce: String let SCNParticlePropertyCharge: String let SCNParticlePropertyFriction: String let SCNParticlePropertyContactPoint: String let SCNParticlePropertyContactNormal: String
Objective C
NSString * const SCNParticlePropertyPosition; NSString * const SCNParticlePropertyAngle; NSString * const SCNParticlePropertyRotationAxis; NSString * const SCNParticlePropertyVelocity; NSString * const SCNParticlePropertyAngularVelocity; NSString * const SCNParticlePropertyLife; NSString * const SCNParticlePropertyColor; NSString * const SCNParticlePropertyOpacity; NSString * const SCNParticlePropertySize; NSString * const SCNParticlePropertyFrame; NSString * const SCNParticlePropertyFrameRate; NSString * const SCNParticlePropertyBounce; NSString * const SCNParticlePropertyCharge; NSString * const SCNParticlePropertyFriction; NSString * const SCNParticlePropertyContactPoint; NSString * const SCNParticlePropertyContactNormal;
Константы
-
SCNParticlePropertyPosition
Радиус-вектор частицы в координатном пространстве сцены.
Значение этого свойства является трехкомпонентным вектором (
NSValue
объект, содержащийSCNVector3
значение для контроллеров свойства частицы или массив триfloat
значения для события частицы или блоков модификатора).Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyAngle
Угол вращения, в радианах, частицы о ее оси.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).Система частиц
particleAngle
иparticleAngleVariation
свойства определяют начальное вращение для каждой частицы.SCNParticlePropertyRotationAxis
свойство определяет ось вращения частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyRotationAxis
Ось частицы вращения, выраженного как вектор в пространстве локальной координаты частицы.
Значение этого свойства является трехкомпонентным вектором (
NSValue
объект, содержащийSCNVector3
значение для контроллеров свойства частицы или массив триfloat
значения для события частицы или блоков модификатора).Система частиц
orientationMode
определяет начальную ось вращения для каждой частицы.SCNParticlePropertyAngle
свойство определяет вращение частицы вокруг этой оси.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyVelocity
Вектор скорости частицы в модулях (координатного пространства сцены) в секунду.
Значение этого свойства является трехкомпонентным вектором (
NSValue
объект, содержащийSCNVector3
значение для контроллеров свойства частицы или массив триfloat
значения для события частицы или блоков модификатора).Система частиц
particleVelocity
иparticleVelocityVariation
свойства определяют начальную скорость каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyAngularVelocity
Угловая скорость частицы (или уровень вращения), в радианах в секунду.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).Система частиц
particleAngularVelocity
иparticleAngularVelocityVariation
свойства устанавливают начальный курс вращения для каждой частицы.SCNParticlePropertyRotationAxis
свойство определяет ось вращения частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyLife
Остающееся время в продолжительности жизни частицы, в секундах.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).SceneKit инициализирует это значение с помощью системы частиц
particleLifeSpan
иparticleLifeSpanVariation
свойства, затем уменьшает значение при рендеринге каждого кадра. Когда достигает жизненное значение0.0
, частица умирает (т.е. SceneKit больше не моделирует или представляет ее). Контроллеры свойства Particle могут использовать значение этого свойства в качестве ввода, но не изменить его.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyColor
Цвет оттенка частицы, как вектор красного, зеленого, синего цвета, и альфа-значения компонентов.
Значение этого свойства является четырехкомпонентным вектором (
NSValue
объект, содержащийSCNVector4
значение для контроллеров свойства частицы или массив четыреfloat
значения для события частицы или блоков модификатора).Система частиц
particleColor
иparticleColorVariation
свойства определяют начальный цвет для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyOpacity
Непрозрачность частицы (или альфа-значение).
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).Это свойство управляет тем же альфа-значением как
SCNParticlePropertyColor
свойство. Используйте это свойство, когда Вы хотите изменить непрозрачность частицы, не изменяя цвет, или когда Вы хотите использовать непрозрачность в качестве ввода для aSCNParticlePropertyController
объект.Система частиц
particleColor
иparticleColorVariation
свойства определяют начальное альфа-значение для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertySize
Ширина и высота представленного изображения частицы, в модулях координатного пространства сцены.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора). SceneKit представляет изображения частицы как квадрат, таким образом, это значение применяется к и ширине и высоте.Система частиц
particleSize
иparticleSizeVariation
свойства определяют начальный размер для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyFrame
Текущий индекс кадра анимации изображения частицы.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора). Для получения дополнительной информации на анимации изображения частицы, посмотритеparticleImage
свойство.Система частиц
imageSequenceInitialFrame
иimageSequenceInitialFrameVariation
свойства определяют начальный кадр для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyFrameRate
Уровень, в кадрах в секунду, анимации изображения частицы.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора). Для получения дополнительной информации на анимации изображения частицы, посмотритеparticleImage
свойство.Система частиц
imageSequenceFrameRate
иimageSequenceFrameRateVariation
свойства определяют начальную скорость анимации для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyBounce
Коэффициент восстановления частицы.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).Система частиц
particleBounce
иparticleBounceVariation
свойства определяют начальный коэффициент восстановления для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyCharge
Электрический заряд частицы, в кулонах.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора). Заряд частицы определяет свое поведение, когда затронуто электрическим или магнитным полем, создаваемым сSCNPhysicsField
класс.Система частиц
particleCharge
иparticleChargeVariation
свойства определяют первоначальную плату за разговор для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyFriction
Коэффициент трения частицы.
Значение этого свойства является скаляром с плавающей точкой (
NSNumber
объект для контроллеров свойства частицы или синглfloat
значение для события частицы или блоков модификатора).Система частиц
particleFriction
иparticleFrictionVariation
свойства определяют начальный коэффициент трения для каждой частицы.Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyContactPoint
Расположение, в координатном пространстве сцены, коллизии между частицей и геометрией в сцене.
Свойство контактной точки только применяется к блокам обработчика коллизии (см.
handleEvent:forProperties:withBlock:
метод иSCNParticleEventCollision
постоянный). Его значение является трехкомпонентным вектором (массив триfloat
значения).Доступный в iOS 8.0 и позже.
-
SCNParticlePropertyContactNormal
Вектор нормали, в координатном пространстве сцены, коллизии между частицей и геометрией в сцене.
Нормальное свойство контакта только применяется к блокам обработчика коллизии (см.
handleEvent:forProperties:withBlock:
метод иSCNParticleEventCollision
постоянный). Его значение является трехкомпонентным вектором (массив триfloat
значения).Доступный в iOS 8.0 и позже.
-