본문 바로가기

OGRE 엔진활용

OGRE 기반 파티클엑셀레이터의 기능정리


OGRE 엔진을 기반으로 제작된 파티클 툴들이 다수 있다.
그중 파티클엑셀레이터(Particle Accelerator)의 각 기능과 기능이 어떤 스크립트 속성과 관계 있는지, 그리고 세부적으로 바뀌는것이 무엇인지를 알아보겠다.


Attributes 탭

번호

항목

기능

입력타입

스크립트속성

비고

1

Material

효과의 재료(종류)

콤보박스

material

2

Width

입자의 너비

에디트

particle_width

3

Height

입자의 높이

에디트

particle_height

4

Quota

최대 입자 수

에디트

quota

5

Cull each

입자들의 컬링여부

체크박스

cull_each

6

Accurate facir

체크박스

accurate_facing

7

sorted

입자 정렬

체크박스

sorted

8

Point renderir

체크박스

point_rendering

이 항목을 체크하면 width, height,Facing, up, dir, origin항목이 비활성화 된다.

9

Local Space

체크박스

local_space

10

Rendere

콤보박스

renderer

11

Facing

입자 빌보드의 정렬방식

콤보박스

billboard_type

point인 경우 모든방향으로 정렬

(구면 입자의 모델리에 사용)

12

Up

common_direction항목을 기준으로 up벡터 정의

에디트

common_up_vector

Facing 항목이

perpendicular_self,

perpendicular_common

이어야 활성화 됨.

13

Dir

입자의 방향

에디트

common_direction

Facing 항목이 oriented_common,

perpendicular_common 이어야 활성화 됨.

14

Origin

입자의 시작지점

콤보박스

billboard_origin

15

Rotation

콤보박스

billboard_rotation_type

16

Interval

갱신주기

에디트

iteration_interval

17

Timeout

에디트

nonvisible_update_timeout


Emitters 탭

번호

항목

기능

입력타입

스크립트속성

비고

1

Emitter

이미터(생성, 삭제)

콤보박스

emitter

복수 생성가능

2

Type

타입 지정

콤보박스

type명

type종류 6가지

3

Width(Inner)

이미터 폭

에디트

width

4

Height(Inner)

이미터 높이

에디트

height

5

Depth(Inner)

이미터 깊이

에디트

depth

6

Angle

입자 최대 방출 각도

에디트

angle

7

Emission Rate

초당 방출 입자 개수

에디트

emission_rate

8

Velocity(min,max)

입자 방출 속도

에디트

velocity_min, velocity_max

9

Directior(x,y,z)

이미터의 방향

에디트

direction

10

Pos(x,y,z)

입자방출 위치

에디트

position

11

LifeSpan(min, max)

입자 생명주기

에디트

time_to_live_min, time_to_live_max

12

Duration(min,max)

입자생성 지속시간

에디트

duration_min, duration_max

13

Repeat(min,max)

다음주기 시작시간

에디트

repeat_delay_min, repeat_delay_max

14

Start Colour

입자의색상(시작)

색상표

colour_range_start

입력 값 (R,G,B,A)

15

End Colour

입자의색상(끝)

색상표

colour_range_end

입력 값 (R,G,B,A)




Affectors 탭

번호

항목

기능

입력타입

스크립트속성

비고

1

Affector

Affector 생성&삭제

콤보박스

affector

2

Type

Affector 타입구분

콤보박스

affector 타입명


번호

타입명

설정 기능

스크립트속성

비고

1

ColourFader

색상 조절

red, green, blue, alpha

2

ColourFader2

색상 조절

red1,green1,blue1,alpha1,

red2,green2,blue2,alpha2,

state_change

3

ColourImage

색상정볼르 담은 이미지를 불러옴

image

4

ColourInterpolator

색상을 임의로 지정가능

5

DeflectorPlane

입자의 충돌관련 내용 지정

plane_point,

plane_normal,

bounce

6

DirectionRandomiser

randomness, scope,

keep_velocity

7

LinearForce

force_vector,

force_application

8

Rotator

rotation_speed_range_start,

rotation_speed_range_end,

rotation_range_start,

rotation_range_end

9

Scaler

rate



파티클 엑셀레이터는 아마도, SDK 버전 1.6 버전 이전에 제작된것으로 보여진다.
때문에 파티클엑셀레이터에서 만들어진 파티클파일(파티클 엑셀레이터의 new 항목을 통해, 각각의 효과를 항목에 넣어서 저장하면 규격에 맞는 파티클파일 *.particle 이 생성된다.)을 SDK에서 제공되는 파티클예제에 적용(결국 엔진에 적용한다는 소리) 할려면 오류가 난다.

1.6 버전 이후의 SDK 사용자라면, 파티클 스크립트의 파티클이름(예: Example/Sun) 앞에 particle_system 이라는 항목을 붙여주도록 한다. 무슨 말인지 모르겠다고? 아래를 보자! 친절하게 설명해주마!!

태양의 효과를 나타낼수 있는 파티클 파일을 생성한다. 파일명 sun.particle


 Examples/Sun
{
 quota 100
 material Examples/Flare
 particle_width 20
 particle_height 20
 cull_each false
 renderer billboard
 sorted false
 local_space false
 iteration_interval 0
 nonvisible_update_timeout 0
 billboard_type point
 billboard_origin center
 billboard_rotation_type texcoord
 common_up_vector 0 1 0
 point_rendering false
 accurate_facing false

 emitter Ellipsoid
 {
  angle 30
  colour 0.15 0.1 0 1
  colour_range_start 0.15 0.1 0 1
  colour_range_end 0.15 0.1 0 1
  direction 0 1 0
  emission_rate 30
  position 0 0 0
  velocity 0.001
  velocity_min 0.001
  velocity_max 0.001
  time_to_live 2
  time_to_live_min 2
  time_to_live_max 5
  duration 0
  duration_min 0
  duration_max 0
  repeat_delay 0
  repeat_delay_min 0
  repeat_delay_max 0
  width 5
  height 5
  depth 5
 }

 affector ColourFader
 {
  red -0.01
  green -0.025
  blue -0.025
  alpha 0
 }
}

particle_system  Examples/Sun
{
 quota 100
 material Examples/Flare
 particle_width 20
 particle_height 20
 cull_each false
 renderer billboard
 sorted false
 local_space false
 iteration_interval 0
 nonvisible_update_timeout 0
 billboard_type point
 billboard_origin center
 billboard_rotation_type texcoord
 common_up_vector 0 1 0
 point_rendering false
 accurate_facing false

 emitter Ellipsoid
 {
  angle 30
  colour 0.15 0.1 0 1
  colour_range_start 0.15 0.1 0 1
  colour_range_end 0.15 0.1 0 1
  direction 0 1 0
  emission_rate 30
  position 0 0 0
  velocity 0.001
  velocity_min 0.001
  velocity_max 0.001
  time_to_live 2
  time_to_live_min 2
  time_to_live_max 5
  duration 0
  duration_min 0
  duration_max 0
  repeat_delay 0
  repeat_delay_min 0
  repeat_delay_max 0
  width 5
  height 5
  depth 5
 }

 affector ColourFader
 {
  red -0.01
  green -0.025
  blue -0.025
  alpha 0
 }
}


작은 차이지만 이걸 모른다면 몇시간, 몇일동안 고생할수 있다. 나도 그랬으니까... 쩝.