반응형
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Real Vectorism. 훨씬 더 입체적으로...

유니티 비트 쪼개기 본문

C# (based by Unity)

유니티 비트 쪼개기

grast 2022. 12. 1. 00:44
반응형

소스코드

public class MusicBeatSplitting : MonoBehaviour
{
    private double bpm = 95.0;

    public AudioClip sfx;
    public AudioClip music;
    public AudioSource sfxSource;
    public AudioSource musicSource;
	
    private Coroutine beatSplitting;

    // Start is called before the first frame update
    void Start()
    {
        sfxSource.clip = sfx;
        musicSource.clip = music;

        musicSource.Play();
        beatSplitting = StartCoroutine(beatSplit());
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    private IEnumerator beatSplit()
    {
        while(musicSource.isPlaying)
        {
            sfxSource.Play();

            yield return new WaitForSeconds((float)(60.0 / bpm));
        }

        yield break;
    }
}

핵심은 IEnumerator를 반환하는 코루틴함수 beatSplit() 인데 while문에서 60.0 / bpm 으로 설정함
각 악곡마다 정해진 bpm으로 60.0을 나누면 정확하게 4비트 등분이 됨.

각 게임의 경우에 따라 8비트, 16비트, 24비트, 32비트 등 세분화된 비트쪼개기는 개발자별 역량이 되는대로 알아서 커스텀할 것.


주의사항은 악곡의 구성인데 최초 악곡이 시작되기 전 무음구간이 존재하는 경우에는 비트쪼개기가 맞지 않을 수 있음. 또한 사용할 악곡의 BPM을 소숫점을 절대로 버리는 일 없이 정확하게 알아야함.


동영상에서 사용된 악곡은 펌프 잇 업 Infinity 에 수록된 WezDevine - Bang The Bass 라는 악곡. BPM은 95.0

 

 

 

핵심정리

4비트 나누기 = 60.0 / (악곡의 BPM);
n비트는 4비트 나누기 기준으로 알아서 커스텀

 

p.s 001: 동영상이 짤렸을 경우 이쪽으로(네이버 블로그)

반응형

'C# (based by Unity)' 카테고리의 다른 글

또다른 깨달음  (0) 2023.06.03
생성자 오버로딩  (0) 2022.07.05
잘은 모르겠지만  (0) 2021.08.17
슈팅패러다임2 업데이트  (0) 2021.05.18
Shooting Paradigm 2 플레이스토어 출시  (0) 2020.11.24
Comments