CRIADX2의 박자와 박자를 맞추어 공연을 진행하다

6734 단어 CRIAdx2UnityC#ADX2LE
음악 게임을 만들면 리듬에 맞춰 타이밍 좋은 공연을 하고 싶을 때가 있죠.
이번에는 CRIADX2의 박자를 동기화해 빠른 실현을 시도했다.
운영 환경에서 Unity를 사용합니다.

이른바 CRIADX2


CRI 중간부품주식회사가 제공하는 오디오 중간부품입니다.
비즈니스지만 무료ADX2 LE도 있으니 해보고 싶은 사람은 저쪽부터 하세요.

비트 동기화 기능 및 데이터 작성


ADX2에는 촬영 동기화 기능이 존재하고 데이터에 촬영 동기화 정보를 삽입하여 호출을 호출하여 촬영과 동기화된 공연을 제작한다.
또 중간에 박자 정보도 변경할 수 있다.

소재 데이터의 준비


재생할 소리 데이터를 준비하세요.
이번에는 중간에 BPM이 변환한 소재를 시험해보려고 했는데, 딱 맞는 소재가 없어 두 곡을 연결한 소재를 만들어 wav 파일을 만들었다.
(AtomCraft는 하나의 대기열에 여러 개의 소재를 넣어 재생성할 수 있지만 비트 동기화가 지원되지 않기 때문에 하나의 파일로서의 wav를 준비했다.)

오디오 데이터 만들기


오디오 데이터에 박자 동기화 데이터를 삽입하다.
오디오 데이터 생성에는 특수 도구 AtomCraft가 사용됩니다.
새로운 프로젝트를 제작하여 준비된 음성 데이터를'소재 트리'에 넣는다.
프로젝트에 Cue를 생성하여 사운드 데이터를 트랙에 추가합니다.

박자 동기화 설정


타임라인에서 [비트 동기화 정보 만들기]를 통해 동기화 정보를 추가합니다.

"BeatSync"를 노래의 첫머리에 설정하세요.첫 번째는 0초부터 방송하기 때문에 0:00까지 해야 합니다.
BeatSync를 복사하여 BPM이 바뀐 두 번째 곡의 머리에 다른 설정을 합니다.
BeatSync를 두 번 클릭하여 BPM 분자를 설정합니다.
(분모는 변경할 수 없다. 반박자 등의 상황을 표현하려면 BPM을 8분자로 배속화하면 될 것 같다.)

리듬 모드도 설정할 수 있다.이번에는 애초 각 1박자, BPM 변경 후 2박자, 4박자만 찍는 크로스컨트리를 설정해 봤다.
화면 오른쪽에 있는'박자 모드'에서 첫 번째는 4박자 전체, 두 번째는 오프온이다.
여기까지 제작하면 팀 리스트가 생성됩니다.
빌드 - Atom 팀 목록의 바이너리 빌드를 선택합니다.
"PC"및 맨 아래 "Unity Asseets 출력"을 확인하는 것이 목표임을 잊지 마십시오.
설정이 정확하면 "구축"을 선택하십시오.
지정한 구축 폴더에 PC/Assets/StreamingAssets/폴더가 생성되어 acb,awb,acf 파일이 생성됩니다.

유닛에서 리듬 동시 공연.


여기서부터 유니티를 사용해 BGM의 재생과 리듬에 맞춰 축척된 디스플레이 공연을 만든다.

Unity 프로젝트의 재생성 준비


Unity의 새 프로젝트를 만들고 CRI 중간부품 플러그인을 가져오는 것은 일반적인 절차이지만, 번거롭기 때문에 제공된 Sample을 이용하여 샘플 장면을 복사합니다.
critom/basic 중 임의의 장면 복사
CRIWARE, CriWare Error Handler, CriWare Library Initializer 이외에 필요하지 않은 것은 삭제합니다.
방금 생성된 acb, awb, acf 파일을 프로젝트의 Streaming Assets 폴더에 추가하십시오.
장면의 CRIWARE 객체에 "Cri Atom(Script)"이 있으므로 여기의 CueSheet 정보를 대기열 테이블 이름으로 덮어씁니다.
또한 장면에 객체를 배치하고 "Cri Atom Source"컴포넌트를 추가합니다.올바른 CueSheet 이름, CueName 이름을 입력한 후 실행하여 재생성 여부를 확인합니다.

동시 호출 설정 찍기


이번에 우리가 해야 할 일은 찍을 때마다 결이 커지는 공연이다.
Sprite 배율을 조정하는 MonoBehavior를 Sprite에 첨부합니다.
BeatOn () 은 비트가 동기화될 때마다 호출하려는 함수입니다.
SpriteScaler.cs
    /// <summary>
    /// ビートイベントが来た時に実行する関数
    /// </summary>
    public void BeatOn()
    {
        // サイズを最大に
        SetScale(MaxScale);
    }

    void SetScale(float scale)
    {
        // Spriteにスケールを設定
        nowScale = scale;
        this.transform.localScale = new Vector3(nowScale, nowScale, 1.0f);
    }

    void Update()
    {
        // サイズが大きければ元のサイズまで徐々に戻す
        SetScale(Mathf.Max(NormalScale, nowScale - (ScaleSpeed * Time.deltaTime)));
    }
박자를 동기화할 때 호출할 함수를 호출에 등록합니다.
호출 함수를 사용하여 BeatOn()을 호출합니다.
BeatSyncTest.cs
    [SerializeField] private SpriteScaler spriteScaler;

    void callback(ref CriAtomExBeatSync.Info info)
    {
        spriteScaler.BeatOn();
    }

    /* Initialization process */
    void Start()
    {
        CriAtomExBeatSync.SetCallback(this.callback);
    }
이렇게 하면 박자 동기화 호출 로그인이 완성된다.
실행하는 게 이거야.

박자 동기화 준비


BeatSyncTest pic.twitter.com/thxkyN6oQf — maki_n (@makin13652923) 2018년 12월 20일

BPM의 속도와 음표의 변화, 그리고 노래가 바뀐 시기에 BPM과 박자의 변화를 확인하였습니다.p>
이번에 샘플을 제작할 때 아래의 재료를 사용할 수 있도록 허락해 주십시오.감사합니다.

악곡 소재: Music-Note.jp물감:조급한 사람


좋은 웹페이지 즐겨찾기