SlideShare uma empresa Scribd logo
1 de 46
Niagara in UE4
TA모임스터디 김대혁
Niagara?
• 언리얼엔진 4.20버전부터 추가된 새로운 이펙트 시스템
• 노드방식의 비주얼스크립팅이나 간단한 스크립트를 통
해 파티클을 컨트롤 하는것이 가능해짐
• GPU, CPU골라서 사용가능(몇몇경우제외)
• 매우 낮은 오버헤드 인터프리터에서 실행되는 바이트코
드로 컴파일되어 cpu시뮬에서도 성능이 좋음(퍼옴…)
• 후에 완전히 캐스케이드를 대체 할 것으로 보임
Cascade VS Niagara
https://youtu.be/ZPojO2hot9U
Cascade VS Niagara
캐스케이드
• 모듈형식의 파티클 제어
• 쉽고 구조가 보기 편하다
• 엔진에서 정해준 기능만 수행
할 수 있다.
• 리소스 재활용이 힘들다.
• 연산이 비교적 느리다.
나이아가라
• 스크립트방식의 파티클 제어
• 구조가 까다롭다.
• 자신이 원하는 기능을 스스로
만들어서 수행할 수 있다.
• 리소스를 재활용 할 수 있다.
• 연산이 비교적 빠르다.
에픽이 중요하게 생각하는점
• Data Sharing
• Node Graph Based Control
Data Sharing
• 사실상 나이아가라의 제작 철학
• Data라는 것은 나이아가라에서 파티클 컨트롤을 위해 생성하는 모
든 변수, 함수, 사용자가 직접 만든 모듈, 전체적인 파티클까지 범위
가 상당히 큼.
• 나이아가라의 특징인 GPU파티클과 CPU파티클의 호환역시 이 Data
Sharing안에 포함된다고 할 수 있음.
• 모든 파티클 컨트롤은 HLSL로 컴파일되서 작업이 수행됨.
Node Graph Based Control
• 기존의 캐스케이드가 모듈을 Stack하는 방식이라 여러 가지가 혼합
되었을 경우 모듈을 하나하나 보면서 결과를 예상해야 했음.
• Node Graph Based Control의 경우 익숙해지면 전체적으로 한눈에
보면서 결과를 예상하고 원하는 부분을 쉽게 수정할 수 있음.
• 후디니의 VOP구조와 매우 유사하게 느껴짐.
• 다른 회사의 차세대 엔진들 (프로스트바이트, Decima 등)은 모두
이미Node Graph로 파티클을 제어하고 있음. Unity도 개발중
Niagara 실행
Niagara 실행
Cascade의 구조
P_Fire이라는 하나의 파일
안에 Flames, Smoke,
Embers, Distortion 4개의
emitter로 구성이 되어있
다.
Niagara의 구조
PNS_Fire이라는 나이아가라
시스템 파일안에
Flame, Smoke, Embers,
Distortion이라는 4개의
나이아가라 이미터 파일들로
구성되어있다.
Niagara의 구조
캐스케이드
• P_Fire
나이아가라
• NiagaraEmitter_Flame
• NiagaraEmitter_Smoke
• NiagaraEmitter_Embers
• NiagaraEmitter_Distortion
• NiagaraSystem_Fire
Niagara의 구조
• 이렇게 보면 캐스케이드가 더 파일이 적게 필요한것 같이 느껴짐
Niagara의 구조
• 이렇게 보면 캐스케이드가 더 파일이 적게 필요한것 같이 느껴짐
• 왜 이렇게 구성되어 있을까?
Niagara의 구조
• 이렇게 보면 캐스케이드가 더 파일이 적게 필요한것 같이 느껴짐
• 왜 이렇게 구성되어 있을까?
• Data Sharing을 위해
Niagara의 구조
• 이렇게 보면 캐스케이드가 더 파일이 적게 필요한것 같이 느껴짐
• 왜 이렇게 구성되어 있을까?
• Data Sharing을 위해
• Niagara Emitter 파일들은 재활용이 가능
Niagara의 구조
• 비슷하지만 조금 다른 PNS_Fire_02를 만든다고 해도 아까 만든
niagara emitter파일들을 그대로 새로운 niagara system에 넣어서
수치만 바꾸면 다른 이펙트가 됨.
• 머터리얼 인스턴스처럼 system속에서 emitter의 수치를 바꿔도 원
본 emitter파일에는 변화가 없음.
• 데이터가 많아질수록 효율적으로 관리가 가능
Niagara UI(emitter)
Niagara UI(system)
Niagara의 구조(그외)
• Niagara Module Script
• Niagara Function Script
• Niagara Dynamic Input Script
• Niagara Parameter Collection
• Niagara Parameter Collection Instance
Niagara Module Script
• 말 그대로 모듈을 스크립팅 하는 파일.
• 원하는 기능을 하는 모듈을 직접 제작해서 emitter에 적용한다.
• 나이아가라 Node Graph Based Control의 핵심
Niagara Module Script
https://youtu.be/9jC-OyOeGzs
Niagara Module Script
Niagara Function Script
• 원하는 기능을 하는 Function을 만들 수 있다.
• Node Graph에서만 볼 수 있다.
Niagara Dynamic Input
• 원하는 값을 나이아가라의 Dynamic Input으로 설정할 수 있다.
• 밑에 그림은 파티클의 position값을 normalize해서
NormalizedPosition이라는 값으로 저장한걸 보여줌
Niagara Dynamic Input
• 원하는 값을 나이아가라의 Dynamic Input으로 설정할 수 있다.
• 밑에 그림은 파티클의 position값을 normalize해서
NormalizedPosition이라는 값으로 저장한걸 보여줌
Niagara Dynamic Input
• 원하는 값을 나이아가라의 Dynamic Input으로 설정할 수 있다.
• 밑에 그림은 파티클의 position값을 normalize해서
NormalizedPosition이라는 값으로 저장한걸 보여줌
후디니와의 연동
• 나이아가라의 Node Based Graph Editor는 후디니의 vop과 유사함.
• 그렇기 때문에 후디니와 연동이 잘 작동함
• 후디니에서 특정 값들을 attribute로 지정하면 niagara에서 읽을 수
있음.
• Csv파일 포맷을 이용함
후디니와의 연동
후디니와의 연동
후디니와의 연동
후디니와의 연동
Emitter.CSV 라는 변수는 Houdini Array
info를 참조.
원하는 Houdini 파일의 경로를 지정
후디니와의 연동
후디니와의 연동
후디니와의 연동
• https://youtu.be/JC5v0GHPJqM
후디니와의 연동
• Destruction simulation같은 요소들도 csv로 프
레임당 해당 파티클의 위치를 참조하면 불러올
수 있을 것으로 예상됨.
• Bone없이 불러와서 훨씬 간편하지 않을까 예상
Parameter 사용법
Parameter 사용법
Parameter 사용법
Parameter 사용법
Niagara Module Script Setting
Parameter 사용법
Parameter 사용법
Parameter 사용법
• https://youtu.be/tklfxAHXF7k
개인적인 생각
• 프로메테우스가 훔쳐다준 ‘불’과 같은 힘
• 수학적인 사고가 요구됨
• 후디니가 중요해지고 있다.
• Cg업계 전반적인 통합 밑그림의 초석
영상쪽 FX사람들과의 경쟁, 협력 피할 수 없음
Q&A
감사합니다.

Mais conteúdo relacionado

Mais procurados

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
MinGeun Park
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
QooJuice
 

Mais procurados (20)

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
[0821 박민근] 렌즈 플레어(lens flare)
[0821 박민근] 렌즈 플레어(lens flare)[0821 박민근] 렌즈 플레어(lens flare)
[0821 박민근] 렌즈 플레어(lens flare)
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
포인트 셰도우
포인트 셰도우포인트 셰도우
포인트 셰도우
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성
 
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
 

Semelhante a Niagara In UE4 (6)

Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
spark database Service
spark database Servicespark database Service
spark database Service
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
Serverless Architecture with Cloud Function
Serverless Architecture with Cloud FunctionServerless Architecture with Cloud Function
Serverless Architecture with Cloud Function
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 

Mais de Dae Hyek KIM

Mais de Dae Hyek KIM (8)

Unite Seoul 2019 ShaderGraph & VisualEffectGraph with Houdini
Unite Seoul 2019 ShaderGraph & VisualEffectGraph with HoudiniUnite Seoul 2019 ShaderGraph & VisualEffectGraph with Houdini
Unite Seoul 2019 ShaderGraph & VisualEffectGraph with Houdini
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing
 
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
 
언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term
 
물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역
 
언차티드4 테크아트 파트2 mipFog
언차티드4 테크아트 파트2 mipFog언차티드4 테크아트 파트2 mipFog
언차티드4 테크아트 파트2 mipFog
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정
 

Último

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Último (7)

도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

Niagara In UE4