※ EffectGroup 란 ?

; EffectGroup = 다수의 Particle + 다수의  Mesh Effect 입니다.

Particle 의경우는 입자정보와 함께 포인트 라이트 정보도 같이 설정 할 수 있습니다.

Particle 정보는 크게 4가지 그룹의 정보를 입력합니다.

하나는 파티클을 분사하는 Emitter 와 또 하나는 각 입자에 대한 정보, 그리고 사운드 정보와

마지막으로 라이트 정보가 있습니다.

Mesh Effect 의 경우 기존에 만들어진 Skin 을 활용하여 제작하는 것으로 특정 시간당 스케일,

알파블랜딩 정보등이 입력되며, 마찬가지로 사운드정보와 라이트 정보를 입력합니다.

Mesh Effect 의 경우 기존 Skin 정보를 활용은 하되, 그 정보를 변화시키진 않고 새로운 정보를

입력하는 방식이기에 기존 Skin 데이터가 변경되지는 않습니다.






<1단계 파티클을 생성합니다.>

(1) 우측 List_Edit 창에서 Particle_List 탭을 선택한후, 아래에 Create 버튼을 선택합니다.
이후 좌측 컨트롤 창에는 Effect_Edit 창이 활성화 되면서 Particle 탭이 나타납니다.

tool-5-1.jpg



(2) 설정값들은 크게 4가지로 분류됩니다. 하나는 입자에 관한 설정들이며, 또 하나는 Emitter 에 대한 설정, 그리고 사운드에 대한 설정, 마지막으로 포인트 라이트에 대한 설정 입니다.

tool-5-2.jpg
순서대로 입자에 관한 설정들, 에미터에 관한 설정들, 사운드에 관한 설정들 입니다.

라이트에 관한 설정은 아래 버튼중 Add_L (add light) 버튼을 누르면 라이트가 하나 추가 됩니다.
tool-5-3.jpg


(4) 입자에 대한 설정은 다음과 같습니다.
; ⊙ Pareicle_Desc (파티클 입자 관련 설정)
     - TEX File : 파티클의 텍스쳐 파일 설정 입니다. 텍스쳐를 설정하게 되면 버튼아래쪽 네모칸에 텍스쳐가 나타나게 됩니다.
     - Spilt_Tex_X : 텍스쳐를 분할하여 에니메이션 할 필요가 있을경우 가로로 분할된 수 입니다.
                             (1이면 한번 분할 이며 디폴트는 0 입니다. 
                             이렇게 분할된 수는 각 입자의 라이프 타임에 맞추에 마지막까지 순회 됩니다. )
     - Spilt_Tex_Y : 텍스쳐를 분할하여 에니메이션 할 필요가 있을경우 세로로 분할된 수 입니다.
                             (1이면 한번 분할 이며 디폴트는 0 입니다.
                             이렇게 분할된 수는 각 입자의 라이프 타임에 맞추에 마지막까지 순회 됩니다. )
     - Soft Particle : 소프트 파티클기능을 켜거나 끕니다. 소프트 파티클 기능이 켜져 있으면 파티클과 다른 오브젝트 사이의
                              자연스럽지 못한 선표시를 제거해 주는 역할을 합니다.
     - Z Enable : Z 버퍼 기능을 끄거나 켤 수 있습니다. 이 기능은 Z Write 기능과는 다르게 무조건 화면의 제일 앞에 나타나게
                        합니다. 
     - refract tex file : 굴절 텍스쳐를 지정 합니다. 파티클이 배경의 모습을 외곡할 필요가 있을때 이 텍스쳐를 설정 합니다.
     - refract weight : 굴절텍스쳐의 값에 곱해져서 얼마나 배경을 외곡할지를 결정 합니다.
     - refract tex weight : 굴절된 값과 파티클에서 설정한 텍스쳐 값과 얼마나 섞어서 표현할지에 대한 값.
                                    (예를들어 이 값이 1인경우 굴절만 나타나며, 0 인경우 굴절이 전혀 나타나지 않는다.)
     - emitter link : 에미터가 이동할때 파티클도 따라서 이동할지를 설정. 일반적인 경우 FALSE 이지만 예외적으로 TRUE 되는
                            경우도 있다. 디폴트는 FALSE 이다. 추가적으로 에미터는 특정 본에 링크되어 움직일 수 있다.
     - rotate link : 입자들이 에미터의 회전에 영향을 받을지를 설정. 추가적으로 에미터는 특정 본에 링크되어 움직일 수 있다.
     - max life : 입자 하나의 최대 생존시간 (초단위, min life 와 사이값으로 랜덤하게 결정된다.)
     - min life : 입자 하나의 최소 생존시간 (초단위, max life 와 사이값으로 랜덤하게 결정된다.)
     - max color : 입자가 최초 생성될때, 표현될 최대 컬러값.  ( min color 와 사이의 컬러값으로 랜덤하게 결정된다.)
                          (주의 : 검정색과 흰색사이의 값에는 모든 컬러가 포함된다.)
     - min color :  입자가 최초 생성될때, 표현될 최소 컬러값.  ( max color 와 사이의 컬러값으로 랜덤하게 결정된다.)
     - max oppacity : 입자가 최초 생성될때 적용될 최대 투명값. (주의 : blend 모드에 따라 적용되지 않을수 있다.)
     - min oppacity : 입자가 최초 생성될때 적용될 최대 투명값. (주의 : blend 모드에 따라 적용되지 않을수 있다.)
     - max scale : 입자가 최초 생성될때 적용될 최대 크기값( min scale 사이를 랜덤하게 결정된다.)
     - min scale : 입자가 최초 생성될때 적용될 최소 크기값(max scale 사이를 랜덤하게 결정된다.)
     - max angvel : 입자가 최초 생성될때 적용될 최대 회전속도 ( min angvel 값 사이를 랜덤하게 결정된다.)
     - min angvel : 입자가 최초 생성될때 적용될 최소 회전속도 ( max angvel 값 사이를 랜덤하게 결정된다.)
     - max init angvel : 입자가 최초 생성될때 적용될 최대 회전값. ( 계속 회전하는 속도가 아니라 최초 한번 회전된채로 유지)
     - min init angvel : 입자가 최초 생성될때 적용될 최소 회전값. ( 계속 회전하는 속도가 아니라 최초 한번 회전된채로 유지)
     - gravity : 중력값. 값이 양수일경우 중력의 반대방향으로 점점 속도가 증가하나, 음수일경우 중력방향으로 속도 증가.
     - registance : 저항값. 값이 양수일경우 점진적으로 가속도가 붙으나 음수일경우 속도가 점점 감소하여 최종 0이 된다.
     - src_blend , dest_blend : blend mode 설정값. 
       ( 알파가 적용안되는 경우는 src blend 가 color 형태의 blend mode 일경우 alpha 가 적용되지 않는다. 그럴경우 color 를
          검은색으로 해서 점점 사라지는 형태로 만들 수 있다.)
     - blend op : 디폴트로 add 를 사용. 나머지는 테스트를 통해 확인요망.
     - billboard type : 파티클이 카메라를 바라보는 방법. 일반적으로 카메라를 바라보는 것은 xyz 타입 이며, 파티클의
                                 이동방향에 따라 회전하면서 카메라를 바라보는것은 xyzdir 타입이다. 나머지는 각 축을 기준으로
                                 카메라를 바라보는 방식 이다.
     - particle type : 디폴트로 square 이며 이는 일반적인 4개의 점으로 구성된 파티클을 의미한다.  triangle 는 파티클이
                               삼각형 형태를 띄며, 이는 자원을 보다 절약하는 방법이 된다. rhw 방식은 화면전체를 뒤덮는 파티클의
                               경우 사용될 수 있다.
     - alpha table : 아래에 Add 버튼을 통해 추가, Remove 버튼을 통해 삭제 가능하며, time 설정시 0 - 1 사이 값을 지정하면 된다.
                            Time 가 1 일경우 적용될 입자의 라이프 타임의 최종 시간과 매칭된다.
                            value 로 지정되는 값은 해당 시간에 적용될 더해질 알파 값이며, 이는 blend 모드에따라 적용되지 않을
                           수 있다. (blend mode 가 color 을 사용하는경우 예를들어 src_color 과 dest_one 의경우)
                           (예를들어 time : 0.5 에 value : -0.5 라면 파티클의 라이프 타임의 중간에서 최초 생성되는 알파의 값에서 -0.5
                            를 차감 한다는 뜻이다. 중요한점은 항상 연산은 최초 값에서 이루어지며, 이전 시간의 값과는 전혀 관계가
                            없다. 그러므로 이전 값이 어떻게 되었든 마지막에 입자가 부드럽게 사라지길 원한다면 time : 1 ,value : -1 이
                            되어야 한다. 물론 입자의 최초 알파값이 0.5 라면 value 값은 -0.5 가 되어도 된다. 그리고 입력된 값과 값사이
                            는 자연스럽게 보간되어 화면에 나타난다. )
     - scale table : 기본 방식은 alpha table 와 같으며 마찬가지로 값과 값사이는 자연스럽게 보간이 이루어진다. 그리고 각 시간에
                          따른 크기값 역시 최초 입자가 생성된 시기의 크기값과 연산이 이루어 짐을 명심.
     - color table : 기본방식은 위와 같다. 하지만 위의 두 table 값과 차이점은 위 두 table 값은 최초 값과 연산이 이루어지는 반면
                           color table 값은 이전 값과 연산을해서 자연스럽게 보간되는 점이 다르다. 나머지는 동일.



(5) Emitter 에 대한 설정은 다음과 같습니다.
; ⊙ Emitter_Desc (파티클 입자 관련 설정)
     - mesh emitter file : 파티클 입자를 분사할때 특정 포인트 혹은 특정 볼륨을 기준으로 분사하는 것이 아닌, 특정 메쉬의
                                    각 정점을 선택해서 입자를 분사할 경우 설정한다.
     - loop : 에미터의 라이프 타임을 무한으로 반복할때 설정
     - emitter life : 에미터 라이프 타임이 루프가 아닌경우 에미터의 라이프 타임을 설정한다.
     - max spray x : 입자를 분사시킬 방향에서 x 축으로 최대 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
     - max spray y : 입자를 분사시킬 방향에서 y 축으로 최대 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
     - max spray z : 입자를 분사시킬 방향에서 z 축으로 최대 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
     - min spray x : 입자를 분사시킬 방향에서 x 축으로 최소 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
     - min spray y : 입자를 분사시킬 방향에서 y 축으로 최소 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
     - min spray z : 입자를 분사시킬 방향에서 z 축으로 최소 값. ( -100 - 100 사이 값으로 -100 은 -1, 100은 +1 이라고 생각)
(위의값을 예로든다면 max x,y,z 가 각각 100, 100, 100 이고 min x,y,z 가 -100,-100.-100 이라면 입자는 모든방향으로 분사
하게 된다. 하지만 max 가 100,0,100 이고 min 이 -100.0,-100 이라면 x와z축은 모든방향 y축으로는 분사하지 않는 위에서
봤을때 원모양인 형태로 입자가 분사된다.)
     - max vel : 입자를 분사할때 입자를 분사시킬 최대 속도.
     - min vel : 입자를 분사할때 입자를 분사시킬 최소 속도.
     - volume type : 메쉬에미터가 아닌경우 특정 점 혹은 박스 혹은 구에서 입자를 분사할 수 있다.
                             점에서 분사할때는 타입을 BOX 나 SPHERE 로 선택한후 Box 라면 최대최소를 같은 위치
                             Sphere 라면 중심은 존재하고 반지름이 0로 설정하면 된다.
     - volume desc1 : float3 형태이며, volume type 가 box 일경우는 box 의 최소위치가 되고, sphere 일경우 중심위치가 된다.
     - volume desc2 : float3 형태이며, volume type 가 box 일경우 box의 최대위치가 되고,sphere 일경우 첫번째 값만
                               유효하며 반지름이 된다.
     - max spray time : 입자를 분사하고 다음 분사까지 걸리는 최대 시간.
     - min spray time : 입자를 분사하고 다음 분사까지 걸리는 최소 시간.
     - max spray particle count : 입자를 분사할때 한번에 분사할 입자의 최대 수.
     - min spray particle count : 입자를 분사할때 한번에 분사할 입자의 최소 수.
     - spray in : 에미터가 메쉬에미터일경우만 유효하며, TRUE 라면 입자를 분사할때 방향을 각 메쉬정점의 노멀반대 방향으로
                       분사하고 FALSE 라면 입자를 분사할때 방향을 메쉬의 정점의 노멀과 방향으로 분사한다. 
     - Random spray : 에미터가 메쉬에미터일 경우만 유효하며, TRUE 라면 분사할 메쉬의 정점 선택을 랜덤하게 이루어 지며,
                                  FALSE 라면 분사할 메쉬정점 선택시 정점의 차례에 따라 분사한다.
     - max particle : 에미터에서 분사할 입자중 라이프타임이 끈나서 사라진 입자를 제외하고, 살아있는 입자의 최대수.
                             이 수가 적을수록 자원관리에 유리하다.
     - position table : 아래쪽 Add 버튼을 누르게 되면 Line 파일을 불러오는 창이 나타난다. Line 파일은 맥스에서 Line 으로 작업
                                된 기하정보를 엔진에서 제공하는 플러그인을 통해 export 된 데이터 이다. ( *.line )
                                line 정보에따라 에미터는 자신의 라이프 타임동안 모든 위치를 순회하게 된다. 
                                (라이프타임의 마지막에 라인의 마지막 위치에 도달한다.)



(6) 사운드 에 대한 설정은 다음과 같습니다.
; ⊙ Snd_Desc (사운드 관련 설정)
     -  SND File : 사운드 파일설정
     - SND Loop : 사운드 파일 루프설정
     - Play_Time : 사운드 재생을 시작할 시간. 
 (파티클의 재생시간에 상대적인 시간을 말한다. 예를들어 0.5 라면 파티클이 재생된후 0.5초 후에 사운드가 재생된다.)

주의> 이펙트에 사운드를 추가하는 것은 가능성만을 열어둔 것일뿐, 추천하는 방식은 아닙니다. 하지만 3D 사운드로 재생시 화살을 이펙트로 만들어 졌을경우, 화살이 날아가면서 소리의 변화가 필요한것과 같이 꼭 필요한 경우에만 사용하기를 추천 합니다.
이유로는 리소스의 관리차원에서 사운드의 재생방식 혹은 재생되는 위치가 여러군데로 펼쳐진 것은
결코 좋은 방향이 아니기 때문입니다..



(7) 라이트 에 대한 설정은 다음과 같습니다.
;⊙ LingtN ( Light0 . Light1 , Light2 ...... ) ( 라이트 설정 )
     - light color : 포인트 라이트 컬러 설정. 포인트 라이트 특성상 색이 더해져서 밝아지는 방식입니다.
                            그러므로 어두운색에 가까운 색을 하였을때 보다 더 효과적입니다.
                            예를들어 흰색일경우 포인트라이트에 적용되는 모든 컬러는 흰색이 더해져서 모두다 흰색만 되 버립니다.
                            하지만 검은색에 가까운 회색을 설정했을 경우, 포인트라이트가 적용되는 모든 컬러에 약간의 회색이 더해
                            지므로 전부 약간 더 밝아지는 보다 자연스러운 느낌이 됩니다.
     - light radius : 포인트라이트가 적용될 반경. 이 반경은 포인트라이트의 라이프타임이 0 으로 갈수록 반지름도 역시
                               0 으로 수렴한다.
     - light lifetime : 기본적으로 light 를 추가하였을 경우, 에미터의 라이프 타임으로 설정된다. 
                               수정도 가능하나 에미터와 함께 계산되는 것 이 가장 일반적이다.

주의> 라이트의 경우 기본적으로 하나도 없는 상태로 파티클이 생성됩니다. Add_L 버튼을 통해 라이트를 추가 할 수 있으며, Remove_L 버튼을 통해 라이트를 제거 할 수 있습니다. 포인트라이트의 경우 자원을 제법 사용하는 것 이기에 꼭 필요한 곳만 사용할 것을 추천 합니다.



(8) 모든 설정이 끝난후 우측 Particle_List 탭에서 Save 버튼을 눌러 저장 합니다.
tool-5-4.jpg




<2단계 메쉬 이펙트를 생성합니다.>

(1) 우측 List_Edit 창에서 Mesh_Effect_List 탭을 선택 한후 아래에 Create 버튼을 누릅니다.
tool-5-5.jpg

(2) 좌측 컨트롤은 Effect 컨트롤이 활성화 되어 있고, Mesh Effect 탭을 선택합니다.
tool-5-6.jpg

(3) 좌측 Mesh Effect 탭에는 각종 설정값들이 표시되어 있습니다.
tool-5-7.jpg

(4) 사운드, 라이트 에 대한 설정은 Particle 에서와 동일 합니다.
; 라이트를 설정하기 위해서는 Particle 에서와 마찬가지로 Add_L 버튼을 눌러 라이트를 추가한후 라이트 값들을 설정합니다.


(5) 모든 설정이 끝난후 우측 Mesh_Effect_List 탭의 아래에 있는 Save 버튼을 눌러 저장합니다.
tool-5-8.jpg




<3단계 EffectGroup 를 생성합니다.>


(1) 좌측 List_Edit 창에서 Effect_Group_List 탭을 선택한후, Create 버튼을 누릅니다.


tool-5-9.jpg



(2) 우측 Effect_Edit 창이 활성화 되고, Effect_Group 탭을 선택 합니다.

tool-5-10.jpg



(3) 여러개의 Particle 과 여러개의 Mesh Effect를 추가 할 수 있습니다.

; 추가 방법은 각 항목에서 Add 버튼을 눌러 추가 가능하며, 제거는 특정 항목을 선택한 후 Remove버튼을 눌러 제거 할 수 있습니다.
tool-5-11.jpg

Particle Effect 항목에서 Add 버튼을 눌러 Particle 을 추가 할 수 있습니다.
tool-5-12.jpg

tool-5-13.jpg
⊙Particle_N ( Particle_0 , Particle_1 , Particle_2 ....  처럼 뒤의 N 은 인덱스를 나타낸다.)
     - File : 파티클 파일 설정. 초기 파티클을 추가할때 결정된다.
     - Delay_Time : 이펙트 그룹이 실행된 이후 상대적인 시작 시간.
               (예를들어 이 값이 0.5 이면 이펙트 그룹이 실행된후 0.5초 후에 이 파티클이 실행된다.)
     - Link_Mesh_Index : 메쉬 이펙트가 추가 되었을경우 메쉬이펙트에 링크되어 움직일 수도 있는데,
                                            그럴경우 메쉬 이펙트 인덱스를 넣으면 링크 된다. 디폴트로 -1 이며, 이값은 
                                            아무것도 링크가 되지 않음을 나타낸다.
     - Link Name : Link Mesh Index 가 설정되었을 경우만 유효하며, 설정된 메쉬에서 링크할 본의 이름을 
                              설정 한다.


파티클의 이동은 에디트 모드가 활성화된 상태에서 Particle_N 을 선택하면 화살표 컨트롤이 나타나는데
move 또는 rotate 의 모드들을 통해 이동 혹은 회전이 가능하다.

tool-5-14.jpg

Mesh Effect 항목에서 Add 버튼을 눌러 Mesh Effect 를 추가 할 수 있습니다.
tool-5-15.jpg

tool-5-16.jpg
⊙ Mesh_Effect_N ( N 은 인덱스 숫자)
    - File : 메쉬 이펙트 파일. 메쉬 이펙트 추가시 확정된다. (*.eme)
    - Delay_Time : 이펙트 그룹이 실행된 이후 상대적인 시작 시간.
         (예를들어 이 값이 0.5 라면, 이펙트 그룹이 시작된 이후 0.5초 이후에 이 메쉬이펙트가 실행된다.)

메쉬이펙트의 이동은 Particle 의 이동과 마찬가지로, 에디트 모드가 활성화된 후 Mesh_Effect_N 을 선택하면, 화살표 컨트롤이 표시된다. 이후 move, rotate 모드를 통해 이동이나 회전이 가능하다.




(4) 최종적으로 바운드 구 정보를 수정 합니다.

; 이펙트의 경우 바운드 정보를 정확히 판단하기가 쉽지 않습니다.
특히 파티클의 경우 더욱 그러합니다. 이 경우 대략적인 바운드 볼륨의 크기를 설정하여야 합니다.
이러한 바운드 볼륨정보는 실제 이펙트의 컬링에 사용됩니다.


바운드 구의 정보를 수정하기 위해서는 에디트 모드를 활성화 한 후 우측창에서 검은색으로 된 컨트롤인 [Bound_Sphere] 항목을 선택 합니다.

그 후 move 나 scale 모드를 이용하여 바운드 구의 위치 혹은 반경정보를 변경 할 수 있습니다. 물론 반경정보의 경우 좌측창에서 직접 입력하여 변경 할 수도 있습니다.