SlideShare a Scribd company logo
1 of 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
감사합니다.

More Related Content

What's hot

Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자TonyCms
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?KLab Inc. / Tech
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングSatoshi Kodaira
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングSho Hosoda
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑MinGeun Park
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들Young Keun Choe
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門Unity Technologies Japan K.K.
 

What's hot (20)

Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
Ssao
SsaoSsao
Ssao
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
 

Similar to Niagara In UE4

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 배은미)I Goo Lee.
 
Serverless Architecture with Cloud Function
Serverless Architecture with Cloud FunctionServerless Architecture with Cloud Function
Serverless Architecture with Cloud FunctionHarrison Jung
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS LambdaSeungho Kim
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 

Similar to 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
 

More from Dae Hyek KIM

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 HoudiniDae Hyek KIM
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Dae Hyek KIM
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex ProcessingDae Hyek KIM
 
언차티드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 & GlassDae Hyek KIM
 
언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF TermDae Hyek KIM
 
물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역물리기반렌더링 알레고리드믹 한국어 번역
물리기반렌더링 알레고리드믹 한국어 번역Dae Hyek KIM
 
언차티드4 테크아트 파트2 mipFog
언차티드4 테크아트 파트2 mipFog언차티드4 테크아트 파트2 mipFog
언차티드4 테크아트 파트2 mipFogDae Hyek KIM
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정Dae Hyek KIM
 

More from 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 톤맵핑&색보정
 

Niagara In UE4