요약: 이 페이지는 Feel에 포함된 MMSequencer 시스템을 사용하는 방법을 설명합니다.
테이블 내용
|
MMSequencer란 무엇인가요?
MMSequencer는 시퀀스에서 "무언가"를 트리거할 수 있게 해주는 클래스의 집합입니다. 음악 시퀀서와 비슷하지만, Unity의 모든 것에 적용할 수 있습니다. 이 시스템은 완전히 선택 사항이며, 피드백을 사용하기 위해 반드시 사용해야 하는 것은 아닙니다. 더불어 즐길 수 있는 추가 장난감 같은 것입니다.
MMSequencer가 무엇인지, 무엇을 할 수 있는지 더 잘 이해하기 위해서는 SequencerDemo 데모 씬을 열어보는 것이 좋습니다. 계층 구조에서 Sequencers 노드를 찾을 수 있으며, 그 아래에 여러 시퀀서(MMSequencer, MMSoundSequencer, MMFeedbacksSequencer, MMAudioSourceSequencer)가 있습니다. 이 중 하나를 테스트하려면, 재생 버튼을 누르고 계층 구조에서 시퀀서를 선택한 다음 Start playing 버튼을 누릅니다. 그러면 재생 헤드가 움직이고 이벤트가 트리거되는 것을 볼 수 있습니다.
시퀀서 사용법
이 예제에서는 편의를 위해 MMSequencerDemo에서 작업하는 것이 좋습니다. 시퀀서를 사용하려면 먼저 MMSequence를 생성해야 합니다. 이는 시퀀스 정보를 저장하는 데이터 파일입니다. 아무 폴더에서나 마우스 오른쪽 버튼을 클릭한 후, Create > More Mountains > Sequencer > MMSequence를 선택합니다. 원하는 이름으로 파일을 명명합니다. 그런 다음 시퀀스의 인스펙터에서 Sequence Tracks를 펼치고 크기를 4로 설정합니다(또는 원하는 만큼 조정할 수 있습니다). 트랙은 시퀀서의 라인과 같습니다. 각 트랙마다 연관된 이벤트(소리, 피드백 등)를 재생할 비트를 정의할 수 있습니다. 각 트랙에 대해 고유한 ID, 색상(편집을 쉽게 하기 위한 것), 키(키보드로 시퀀스를 녹음할 계획이 있을 경우, 그렇지 않으면 무시), 활성화 여부를 정의할 수 있습니다. 이 예제에서는 기본 설정을 그대로 두어도 됩니다.
이 예제에서는 기본 시퀀서인 MMSequencer를 사용할 것이지만, 다른 유형의 시퀀서도 사용할 수 있습니다. MMSequences와 관련하여 이들은 모두 비슷합니다.
씬에 새 빈 게임 오브젝트를 생성하고, MMSequencer 컴포넌트를 추가합니다. 새로 생성한 시퀀스를 시퀀스 슬롯에 드래그합니다. 인스펙터에서 몇 가지를 정의할 수 있습니다:
- BPM: 분당 비트 수, 시퀀서의 재생 속도를 의미합니다. 분당 해당 횟수만큼 "비트"를 트리거합니다. 각 "비트"는 재생 헤드를 앞으로 이동시키고 새로운 이벤트를 트리거합니다.
- 시퀀서 길이: 트랙당 비트 수를 의미합니다. 루프의 길이를 정의합니다. 헤드가 트랙의 마지막 비트에 도달하면 왼쪽으로 다시 이동합니다.
- 루프: 일반적으로 시퀀서가 수행해야 하는 작업이지만, 언제든지 루프를 방지할 수 있습니다.
- 랜덤 시퀀스: 비트를 왼쪽에서 오른쪽으로 재생할지, 무작위로 재생할지 여부를 결정합니다.
- 메트로놈 소리: 모든 비트마다 재생할 사운드 클립을 바인딩하고 볼륨을 조정할 수 있습니다.
그런 다음 Track Events에서는 비트가 재생될 때 각 트랙에서 발생하는 이벤트를 정의해야 합니다. 이 예제에서 SequencerDemo에 있다면 계층 구조 패널에서 Drumkit 노드(Sequencers 아래)를 펼치고, 그 아래의 오디오 소스를 Track Event 슬롯으로 드래그합니다. 각 오디오 소스에 대해 AudioSource > Play() 함수를 선택합니다.
인스펙터 하단에는 재미있는 일이 일어나는 시퀀스 편집기가 있습니다:
수평 방향으로 트랙을 볼 수 있습니다(이 예제에서는 0부터 3까지 4개의 트랙이 있습니다). 수직 방향으로는 비트를 볼 수 있습니다. 트랙 길이는 8이므로 0부터 7까지 8개의 비트가 있습니다. 각 사각형은 버튼으로, 트랙 x가 비트 y에서 재생되도록 설정할 수 있습니다. 사각형이 트랙의 색상으로 되어 있으면 재생되며, 검정색이면 해당 비트에서는 비활성화됩니다. 이 슬롯들 중 일부를 켜고 재생 버튼을 누릅니다. 재생 모드로 들어가면 시퀀서 인스펙터 하단에 두 개의 컨트롤이 나타납니다: Start Playing 및 Play Next Beat. Start Playing을 눌러 새 노래를 즐기세요. 런타임 동안 트랙을 편집할 수도 있습니다.
물론 이 시퀀서는 일부 오디오 소스만 재생하지만, 이를 통해 모든 종류의 이벤트를 바인딩할 수 있으며, 원하는 모든 것을 트리거할 수 있습니다.
시퀀서 유형
Feel에 포함된 클래스와 시퀀서는 다음과 같으며, 이를 객체에 추가하여 MMSequences를 활용할 수 있습니다:
- MMSequencer: 위의 단계에서 사용한 시퀀서로, 모든 유형의 이벤트를 재생할 수 있습니다. 대부분의 다른 시퀀서는 이 기본 시퀀서를 확장합니다.
- MMAudioSourceSequencer: AudioSources 배열에 여러 오디오 소스를 직접 바인딩할 수 있습니다. 트랙 수만큼 AudioSources 배열에 오디오 소스를 추가해야 합니다.
- MMFeedbacksSequencer: Feedbacks 배열에 여러 피드백을 직접 바인딩할 수 있습니다. 트랙 수만큼 Feedbacks 배열에 피드백을 추가해야 합니다.
- MMSoundSequencer: 이전 두 가지와 비슷하지만, 사운드 파일을 직접 슬롯에 추가할 수 있습니다. 자동으로 인스턴스화를 처리합니다.
- MMInputSequenceRecorder: 키보드 입력을 기반으로 시퀀스를 녹음할 수 있습니다. 빈 객체에 추가하고 시퀀스를 드래그하여 설정한 후, 재생을 누르고 Start Recording Hotkey(Home 키, 기본값)를 누른 다음 리듬에 맞춰 키보드로 입력합니다(또는 원하는 대로). 녹음을 중지하려면 Stop Recording Hotkey(End 키, 기본값)를 누릅니다. 그런 다음 녹음된 시퀀스를 위의 시퀀서 중 하나에서 사용할 수 있습니다.
시퀀서를 피드백과 함께 사용하기
모든 MMFeedback에서 시퀀스를 사용하여 타이밍을 조정할 수 있습니다:
이 작업을 수행하려면, Timing 폴더를 펼치고 Sequence 슬롯에 MMSequence를 드래그합니다. 비트를 확인할 트랙을 선택하고, 대부분의 경우 Quantized를 체크합니다. 입력 녹화를 사용하여 시퀀스를 녹음한 경우, 체크를 해제할 수 있습니다. 그런 다음 재생 버튼을 누르고 피드백을 재생합니다. 피드백은 한 번만 재생되는 대신, 선택한 트랙에서 활성 슬롯의 수만큼 비트에 맞춰 여러 번 재생됩니다.
'유니티 에셋 > Feel' 카테고리의 다른 글
MMProgressBar (1) | 2024.07.14 |
---|---|
MMRadio (1) | 2024.07.14 |
MMAudioAnalyzer (1) | 2024.07.14 |
MMSoundManager (0) | 2024.07.14 |
MMTools (0) | 2024.07.13 |