개요
※이 글은 유니티 다이얼로그 시스템 에셋 ‘Naninovel(나니노벨)’의 한국어 번역 페이지입니다.
※모든 내용의 저작권 및 내용의 책임과 권한은 Naninovel에 있습니다.
※원문 페이지: (링크)
@back 및 @char 명령어로 각각 배경 및 캐릭터 외양을 변경하거나 @startTrans 및 @finishTrans 명령을 사용하여 씬 전환 시 전환 효과를 추가로 지정할 수 있습니다.
예를 들어 다음 명령은 ‘DropFade’ 전환 효과를 사용하여 ‘River’ 배경으로 전환됩니다.
@back River.DropFade
전환 효과가 지정되지 않으면 기본적으로 크로스페이드가 사용됩니다. (Fade Out – Fade In)
time 매개변수를 사용하여 전환 기간(초)을 지정할 수도 있습니다.
@back River.DropFade time:1.5
위 명령문은 1.5초에 걸쳐 ‘DropFade’ 전환을 사용하여 ‘River’ 배경으로 전환됩니다. 모든 전환의 디폴트 시간은 0.35초입니다.
전환 시 전환 효과가 지속되는 것을 기다리는 대신 즉시 다음 명령을 실행하고 싶다면 wait 매개변수를 false로 설정하면 됩니다. 예:
@back River.Ripple time:1.5 wait:false
@bgm PianoTheme
— 위 명령어는 배경 전환 1.5초를 대기하는 대신, ‘PianoTheme’ 배경 음악 즉시 재생시킵니다.
일부 전환 효과는 params 매개변수로 제어할 수 있는 추가 매개변수도 지원합니다.
@back River.Ripple params:10,5,0.02
— Ripple 효과의 빈도를 10으로, 속도를 5로, 진폭을 0.02로 설정합니다. 매개변수를 지정하지 않으면 기본 매개변수가 사용됩니다.
선택 매개변수를 수정하려면 다른 매개변수를 비워두면 됩니다. 비워진 값에는 기본값이 적용됩니다.
@back River.Ripple params:,,0.02
모든 트랜지션 매개변수는 10진수입니다.
위의 예는 캐릭터에도 적용됩니다. 스탠드얼론 transition 매개변수를 통해 트랜지션을 제공하기만 하면 됩니다.
@char CharID.Appearance transition:TransitionType params:…
아래 문서에서 해당 매개변수 및 기본값과 함께 사용 가능한 전환 효과를 찾을 수 있습니다.
빌트인 트랜지션
BandedSwirl
Parameters
Name | Default |
---|---|
Twist amount | 5 |
Frequency | 10 |
; 디폴트 파라미터로 트랜지션
@back Appearance.BandedSwirl
; 파라미터 적용 예시
@back Appearance.BandedSwirl params:,2.5
Blinds
Parameters
Name | Default |
---|---|
Count | 6 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Blinds
; 파라미터 적용 예시
@back Appearance.Blinds params:30
CircleReveal
Parameters
Name | Default |
---|---|
Fuzzy amount | 0.25 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.CircleReveal
; 파라미터 적용 예시
@back Appearance.CircleReveal params:3.33
CircleStretch
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.CircleStretch
CloudReveal
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.CloudReveal
Crossfade
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Crossfade
Crumble
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Crumble
Dissolve
Parameters
Name | Default |
---|---|
Step | 99999 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Dissolve
; 파라미터 적용 예시
@back Appearance.Dissolve params:100
Dissolve
Parameters
Name | Default |
---|---|
Step | 99999 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Dissolve
; 파라미터 적용 예시
@back Appearance.Dissolve params:100
DropFade
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.DropFade
LineReveal
Parameters
Name | Default |
---|---|
Fuzzy amount | 0.25 |
Line Normal X | 0.5 |
Line Normal Y | 0.5 |
Reverse | 0 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.LineReveal
; 세로선 슬라이드 트랜지션
@back Appearance.LineReveal params:,0,1
; 방향 반대로 트랜지션 (R T L)
@back Appearance.LineReveal params:,,,1
Pixelate
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Pixelate
RadialBlur
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.RadialBlur
RadialWiggle
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.RadialWiggle
RandomCircleReveal
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.RandomCircleReveal
Ripple
Parameters
Name | Default |
---|---|
Frequency | 20 |
Speed | 10 |
Amplitude | 0.5 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Ripple
; 파라미터 적용 예시
@back Appearance.Ripple params:45,,1.1
RotateCrumble
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.RotateCrumble
Saturate
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Saturate
Shrink
Parameters
Name | Default |
---|---|
Speed | 200 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Shrink
; 파라미터 적용 예시
@back Appearance.Shrink params:50
SlideIn
Parameters
Name | Default |
---|---|
Slide amount | 1 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.SlideIn
SwirlGrid
Parameters
Name | Default |
---|---|
Twist amount | 15 |
Cell count | 10 |
; 디폴트 파라미터로 트랜지션
@back Appearance.SwirlGrid
; 파라미터 적용 예시
@back Appearance.SwirlGrid params:30,4
Swirl
Parameters
Name | Default |
---|---|
Twist amount | 15 |
; 디폴트 파라미터로 트랜지션
@back Appearance.Swirl
; 파라미터 적용 예시
@back Appearance.Swirl params:25
Water
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Water
Waterfall
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Waterfall
Wave
Parameters
Name | Default |
---|---|
Magnitude | 0.1 |
Phase | 14 |
Frequency | 20 |
Examples
; 디폴트 파라미터로 트랜지션
@back Appearance.Wave
; 파라미터 적용 예시
@back Appearance.Wave params:0.75,,5
커스텀 트랜지션 효과
디졸브 마스크
디졸브 마스크 텍스처를 기반으로 커스텀 트랜지션을 만들 수 있습니다. 디졸브 마스크는 그레이스케일 텍스처로, 색상은 픽셀이 대상 텍스처로 전환되는 시기를 정의합니다.
예를 들어 다음 나선형 디졸브 마스크를 고려해 보세요.
— 오른쪽 상단 모서리에 있는 검은색 사각형은 전환 시작 시 전환 대상이 표시되어야 함을 나타내며 중앙의 순백색 사각형은 맨 끝에서 전환됩니다.
팁
최적의 메모리 사용을 위해 디졸브 텍스처 가져오기 설정에서 ‘단일 채널’과 ‘빨간색’을 설정하세요. 또한 시각적 아티팩트를 방지하려면 Non-Power of 2 및 Generate Mip Map 옵션이 비활성화되어 있는지 확인하십시오.
커스텀 트랜지션을 만들려면 커그텀 전환 모드를 사용하고 디졸브 매개변수를 통해 디졸브 마스크 텍스처에 대한 경로(프로젝트 ‘리소스’ 폴더 기준)를 지정하십시오. 예:
@back Appearance.Custom dissolve:Textures/Spiral
전환의 경계를 부드럽게(퍼즈)하려면 0(스무딩 없음)에서 100(최대 스무딩) 범위의 첫 번째 매개변수를 사용하십시오. 예:
@back Appearance.Custom dissolve:Textures/Spiral params:90
전환을 반전하려면(디졸브 마스크의 더 밝은 영역이 먼저 표시됨) 두 번째 매개변수를 1로 설정합니다. 예:
@back Appearance.Custom dissolve:Textures/Spiral params:,1
사용 예는 다음 비디오를 확인하십시오.
커스텀 셰이더
커스텀 액터 셰이더를 통해 완전한 커스터마이징 트랜지션 효과를 추가하는 것도 가능합니다.
경고
이 주제에는 Unity의 그래픽 프로그래밍 기술이 필요합니다. 우리는 커스텀 셰이더 작성에 대한 지원이나 튜토리얼을 제공하지 않습니다. 자세한 내용은 지원 페이지를 참조하세요.
새 셰이더를 생성하고 이를 커스텀 효과를 사용하는 액터의 Custom Texture Shader 속성에 할당합니다. 사용자 정의 액터 셰이더를 만들고 할당하는 방법에 대한 자세한 내용은 커스텀 액터 셰이더 가이드를 참조하세요.
스크립트 명령에 전환 이름이 지정되면 액터가 사용하는 재질에서 동일한 이름(NANINOVEL_TRANSITION_이 앞에 붙음)을 가진 셰이더 키워드가 활성화됩니다.
사용자 정의 액터 셰이더에 자신만의 전환을 추가하려면 multi_compile 지시어를 사용하세요. 예:
#pragma multi_compile_local _ NANINOVEL_TRANSITION_CUSTOM1 NANINOVEL_TRANSITION_CUSTOM2
Custom1 및 Custom2 전환을 추가합니다.
그런 다음 조건부 지시문을 사용하여 활성화된 전환 키워드를 기반으로 특정 렌더링 방법을 선택할 수 있습니다. 내장 액터 셰이더를 재사용하는 경우 조각 처리기에서 사용되는 ApplyTransitionEffect 메서드를 통해 사용자 지정 전환을 구현할 수 있습니다.
fixed4 ApplyTransitionEffect(sampler2D mainTex, float2 mainUV,
sampler2D transitionTex, float2 transitionUV, float progress,
float4 params, float2 randomSeed, sampler2D cloudsTex, sampler2D customTex)
{
const fixed4 CLIP_COLOR = fixed4(0, 0, 0, 0);
fixed4 mainColor = Tex2DClip01(mainTex, mainUV, CLIP_COLOR);
fixed4 transColor = Tex2DClip01(transitionTex, transitionUV, CLIP_COLOR);
#ifdef NANINOVEL_TRANSITION_CUSTOM1 // Custom1 transition.
return transitionUV.x > progress ? mainColor
: lerp(mainColor / progress * .1, transColor, progress);
#endif
#ifdef NANINOVEL_TRANSITION_CUSTOM2 // Custom2 transition.
return lerp(mainColor * (1.0 - progress), transColor * progress, progress);
#endif
// When no transition keywords enabled default to crossfade.
return lerp(mainColor, transColor, progress);
}
그런 다음 내장된 전환과 동일한 방식으로 추가된 전환을 호출할 수 있습니다. 예:
@back Snow.Custom1
@back River.Custom2
전체 셰이더 예제는 커스텀 액터 셰이더 가이드를 참조하세요.
답글 남기기