CRI 피치를 사용하여 실제 장착 하마점 변경

7303 단어 CRIAdx2Unity
Gren Advent Calendar 2018 19일차 보도를 맡았다.s_저는 이바나라고 합니다.
나는 그린에서 Unity의 고객 엔지니어로 일하고 있다.

개요


도입CRI ADX2 항목에서는'속도에 따라 간격을 바꾸고 싶다'는 조건을 적용할 때 겪는 문제점을 중심으로 어떻게 해결할 것인지를 적었다.

정의의 통일


대량의 간격과 도구가 생겼기 때문에 먼저 통일적으로 정의해 주십시오.
용어
컨텐트
유니티 아스팔트
Unity의 Audio Source를 가리키는 Pitch
CRI 간격
CriAtomSource를 가리키는 Pitch
공구.
CRI Atom Craft

CRI 간격과 Unity 간격 단위가 다릅니다.


우선 처음에 반한 방법이 다르다.
다음은 CRI 기술 지원 문의에 대한 회신 일부를 참조합니다.
CriAtomSource와 Unity의 AudioSource는 지정된 간격 값의 단위가 다르다.
CriAtomSource는 cent 단위로 간격을 지정합니다.
100cent는 반음이기 때문에 1200cent는 8도를 높인다.
Unity의 AudioSource 간격은 재생성 속도를 나타냅니다.
2.0을 입력하면 8도 1도 상승합니다.

Unity 피치가 재생성 속도입니까?


정말 그렇게 실시된 것 같습니다.
[Unity] AudioSource의 Pitch에 음수를 설정하면 역재생성 가능
AudioSource Pitch에서 마이너스를 설정하면 역재생이 가능합니다.
속도와 간격의 관계
속도가 2배가 되면 8도 상승한다.

Unity 간격에서 CRI 간격으로 변환


다음 공식을 사용하여 변환할 수 있습니다.
변수 ratio는 Unity의 간격입니다.
float criPitch = 1200f * Mathf.Log(ratio) / Mathf.Log(2.0f);

CRI는 간격의 유효한 범위를 나타냅니다.


CRI가 표현할 수 있는 간격의 유효 범위는 Unity 간격 0.125~8.0입니다.
그러나 오디오 소스가 설정할 수 있는 간격 상한은 3.0이어서 3.0 이상은 무효로 간주된다.

이제 본론.


여기까지는 기본 지식이다.
여기서부터 상술한 기초 위에서 열중하는 문제와 해결 방법을 바탕으로 한다.

넓은 범위의 넉백 변동은 스크립트만으로 완성할 수 없습니다


시도는 해봤지만 가장 열광하는 문제는 이거야.
CRI의 Pitch 속성은 스크립트에서 -1200에서 1200까지 설정할 수 있습니다.
이것은 Unity의 간격이 말한 0.5~2.0의 범위이다.(-18도~+18도)
유니티 간격으로 0.25나 3.0번 소리를 내려면 피치 속성만 설정하기에는 부족하다는 것이다.
자기가 대응하는 너트 설치는 유니티의 너트가 말한 0.125~1.0의 변동을 울려야 한다.
다음은 해결 방법입니다.

넓은 범위의 간격 변동을 처리하고 싶을 때


필요한 표현 범위에 따라 도구 옆에 파라미터를 설정해야 합니다.
스크립트에도 추가할 항목이 있습니다.
설정 항목은 다음에 서술할 것입니다.
Unity 간격(재생성 속도)
표현하려는 CRI 간격(Cent)
필수 설정 항목
0.5〜2.0
-1200〜1200
① CRI 간격
0.25〜4.0
-2400〜2400
② 도구용 AISAC
0.125〜8.0
-3600〜3600
③간격+AISAC
하나하나 보다.

① CRI 간격


가장 간단한 상자.스크립트만 완성할 수 있지만 유닛의 간격은 0.5~2.0이다.
CriPitchTest.cs
private CriAtomSource _source;

// 中略

private void SetPitch(float value)
{
  _source.Pitch = value;
}

② 도구용 AISAC


도구의 AISAC 기능을 사용하여 해당 스크립트를 기술하여 표현 범위를 확장합니다.
표현할 수 있는 범위는 유니티의 너트가 말한 0.25~4.0이다.

AISAC란?


AISAC
Advanced Interactive Sound and Active Controller의 생략
AISAC 제어값에 대응하는 음량, 간격, 필터 등의 곡선은 음색을 변화시키는 기능을 한다.
예를 들어 캐릭터와의 거리를 제어값으로 설정하고 그 거리에 따라 캐릭터의 대사 음량 곡선을 그려 거리에 해당하는 음량을 설계할 수 있다.
다른 중간부품은 RTPC(Real Time Parameter Control)라고도 부른다.
비록 나는 나사 거리 이외의 곳에서 사용한 적이 없지만, 나는 소리 변화의 기능 정도를 깨달았다.
공식 동영상이 가장 이해하기 쉽다.
0:15부터 0:30까지 보면 아마 기능을 습득할 수 있을 것 같아요.
4. 상황에 따라 달라지는 소리 제작 2(예: 풍부한 헬리콥터 소리)https://t.co/WqjJweQMbm@YouTube-beejoe(@beejoe 718)2018년 12월 18일

AISAC에 대한 설명은 여기까지이며, 실제 AISAC를 CRI Atom Craft로 설정합니다.p>

ⅰ. AISAC 추가


새 객체 선택 - AISAC 추가br/>


AISAC 차트 유형을 간격으로 설정한 후 추가 버튼을 클릭합니다.br/>


ⅱ. 컨트롤 차트 그리기


도표를 조정하여

0.0의 간격-2400, 1.0의 간격을 2400으로 한다.(오른쪽 어깨가 상승하는 직선)오른쪽 패널에서 숫자 값을 입력할 수도 있습니다.br/>


이렇게 도구 옆의 설정이 끝납니다.(시작 순서 사랑을 베게 해주세요)


ⅲ. 스크립트에서 AISAC 동적 변경


SetaisacControl 함수 사용br/>
공식 문서에 따라 문자열을 controlName으로 첫 번째 인자에 전달할 수도 있습니다.(Any 설정이면 "Any"지나면 이동할 수 있을 것 같다)이번에는 첫 번째 파라미터에 controlId를 전송하는 코드를 기록했습니다.



CriPitchAisacTest.cs

private CriAtomSource _source;

// 中略

// controlIdはツールから書き出した際に吐き出されるcsファイルに定義された列挙体から指定可能
// Any設定なら0でもいけるはず
private void SetPitch(uint controlId, float value)
{
  _source.SetAisacControl(controlId, value);
}


③간격+AISAC


는 ①와 ②의 조합기이다br/>
자신의 상황이 여기에 맞다br/>
표시할 수 있는 범위는 Unity 간격에서 0.125~8.0입니다.


총결산


전형적인 것은 필요한 기능을 미리 조사하지 않으면 고통을 받는다는 것이다br/>
기술 지원에 대해 물어보면 CRI가 주도면밀한 답변을 받을 수 있어 큰 도움이 됐습니다.p>

또한, CRI ADX2를 가져오면, Grenge Advent Calendar의 4일째 "유닛에서 크리스를 사용할 각오가 있으신가요?나 할 수 있어."가장 빨리 가져올 수 있는 힌트라고 생각합니다. 협조해 주십시오.p>

좋은 웹페이지 즐겨찾기