Unity-Koreography音游插件的介绍和使用

这篇具有很好参考价值的文章主要介绍了Unity-Koreography音游插件的介绍和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Koreography

一、Koreographer的介绍

1.普通版和专业版的区别

(1)普通版

(2)专业版

2.功能

二、Koreographer的下载

三、Koreographer快速开始

1.快速开始

2.功能介绍

(1)Koreography

①Koreography类属性

②Koreography类方法

(2)KoreographyTrack

(4)Koreography Editor

Koreography Settings

①Koreography

②New Koreography

③“?”

④AudioClip

⑤Tempo Section Settings

a.Tempo Section to Edit

 b.Section Name

c.Delete

d.Insert New Before

e.Insert New After

f.Start Sample

g.Tempo

h.BPM/Samples Per Beat

i.Beats Per Measure

j. Starts New Measure

⑥Track Settings

a.Track to Edit

b.Track Event ID

c.Load

d.New

e.Remove

Koreography Track Settings

①UI Elements

a.Playback Controls

b.V

c.Event Interaction Mode

d.Event Creation Mode

e.Payload Mode

f.Analyze

g.Zoom

h.Snap To Beat

i.Divide beat by

j.Auto Scroll

k.Playback Volume

l.Speed

m.Waveform Visualization Controls

Koreography Event Settings

a.Delete Event

b.Payload 

c.Start Sample Location

d.End Sample Location

(5)Koreographer

(6)Simple Music Player

(7)Multi Music Player

①MultiMusicPlayer类属性

②MultiMusicPlayer类方法

(8)Sample Sync Music Player [Experimental]

一、Koreographer的介绍

Koreographer是一款游戏开发工具和Unity插件,可以简化视频游戏中同步音乐和动作的过程。它的简单编辑界面允许Unity开发者将节奏、节拍、音符、音量和其他动态音乐映射到游戏中的事件。游戏中的任何元素都可以进行韩国语编辑:动画、音效,甚至是游戏逻辑。Koreographer可以用于创建节奏游戏,使任何游戏更具电影效果,用音乐增强游戏环境,并创建新的控制和音乐驱动的游戏玩法。

Koreographer的核心是“事件系统”。当音乐或声音在游戏中播放时,Koreographer系统将Koreography Events报告给任何注册收听的组件或系统。Koreographer还利用存储在Koreography中的节奏信息,为脚本提供音乐时间轴。这个音乐时间轴可以用来驱动动画和其他系统,以保持时间感觉音乐。

开发人员使用 Koreographer 来创建节奏游戏,使任何游戏更具电影感,通过音乐增强游戏环境,以及创建新的控件和音乐驱动的游戏玩法。

  • 轻松创建节奏游戏、启用口型同步或为音频添加字幕

  • 将游戏内事件精确同步到游戏音乐中的不同点

  • 快速创建基于音乐的新游戏玩法和效果

1.普通版和专业版的区别

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

(1)普通版

价格:50$

功能:

<1>特定于示例的事件同步

<2>支持所有Unity平台

<3>强大的基于unity的事件编辑器和运行

<4>完整的Demo演示场景

<5>Payload事件类型(Floating point, integer, curve, text, and number)

<6>playMaker集成

(2)专业版

价格:195$

功能:

<1>特定于示例的事件同步

<2>支持所有Unity平台

<3>强大的基于unity的事件编辑器和运行

<4>完整的Demo演示场景

<5>Payload事件类型(Floating point, integer, curve, text, numberspectrum, color, and color gradient)

<6>Payload自定义访问

<7>自动生成事件

<8>MIDI转换器

<9>PlayMaker集成(PlayMaker 采用更高级的策略,借助状态、动作和事件来提供一个直观的结构并助你快速构建行为。这实际上使非程序员和程序员两者都能够更快地、更高效地制作。)

<10>TazmanAudio集成(可以在项目的任何阶段为部分项目,完整项目或有针对性的解决方案提供音频程序员,从简单的实施到完整的设计或研发。)

<11>SECTRSectrAudio集成(SECTR AUDIO为Unity带来了最新的、尖端的音频制作工具和技术,包括一套无与伦比的编辑器扩展和运行时组件,让您轻松创建丰富、复杂、高效的音景。)

<12>MasterAudio集成(Master Audio的是一个整体解决方案,所有的丰富的游戏音频需求。内置的音乐闪避,手动和自动的声音触发真正的随机声音变化,音频汇集全3D声音功能。支持所有出口的手机游戏平台,具有一流的性能。)

<13>Wwise集成(为交互式体验和实时执行技术提供动力,Wwise提供了一套完整的设计和开发工具,无论您的项目规模如何,都可以轻松创建原型并将您的音频创意愿景变为现实。)

<14>FMOD集成(一种端到端解决方案,用于为任何游戏添加声音和音乐。使用 FMOD Studio 创作工具构建自适应音频,并使用FMOD引擎在游戏中播放,作为 Unity 音频系统的完全替代品)

<15>Koreographer源代码访问

2.功能

(1)简化同步过程

对于大多数游戏开发人员来说,将图形、游戏事件和用户交互与音乐同步超出了范围且耗时,通常需要声学技术和特殊的音频设计师。Koreographer 的可视化创作界面和游戏内事件系统使任何开发人员都能快速轻松地:

  • 将游戏参数与音乐中的指定速度、节拍或节奏联系起来

  • 使用精确定时为音频文件创建字幕或歌词

  • 创作口型同步或动画以匹配您的音频

(2)实现新的音乐和游戏体验

为您的游戏添加音乐,为玩家提供新的游戏玩法或电影剧情。Koreographer 允许开发人员将动作嵌入到音乐中。通过在我们的数字编舞系统中进行一些基本的创作,您可以:

  • 快速创建节拍匹配游戏

  • 探索由音乐驱动的游戏机制

  • 让音乐成为游戏的核心部分

(3)增强音乐,不要牺牲游戏性能

保持 CPU 周期,以增强图形和流畅的游戏体验。Koreographer 的音乐同步方法消除了实时音乐处理,让您的游戏以最佳性能运行。

(4)始终保持同步

Koreographer 的同步引擎输出轻量级元数据文件,这些文件可以跟踪时间,而不管引入可变性的系统如何。这解决了由最低规格的机器和可变的游戏帧率导致的音频延迟问题。无需再花时间调试脚本和调整算法来解决跨平台的延迟和其他音频错误。

二、Koreographer的下载

 Koreographer官网:Sonic Bloom (koreographer.com)

UNITY ASSET STORE:

普通版:Koreographer | 音效 | Unity Asset Store 

专业版:Koreographer Professional Edition | 音效 | Unity Asset Store

个人仅作学习,商用的话还是买人家的正版较好,提供免费的:

百度网盘:链接:Koreographer V1.6.0-百度网盘 提取码:asdf

蓝奏云:链接:Koreographer V1.6.0-蓝奏云 密码:asdf

三、Koreographer快速开始

1.快速开始

 导入Koreographer.unitypackage后会发现,鼠标右键的Create多出了两个选项,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

创建一个Koreography和KoreographyTrack,如下图所示:

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

把音乐/音频拖进图所示的位置,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

然后打开Koreography Editor,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

可以看见Koreography Editor和Inspector的属性是一样的,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

给Track Event ID 一个id ,我这里命名为:TestEventID,可以看见Koreography Track 的 Track ID也是同时变化的,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

现在开始给音乐/音频K帧(就是当音乐播放到这一个点的时候,开始执行逻辑,如实例化物体等。。),点击播放音乐/音频,然后再播放过程中选择自己需要的音乐到达的位置执行逻辑,再播放过程中按E键或者是Enter键都可以直接K帧,如下图所示,当音轨中间有红色的一条一条的红杠。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

这时候我们可以看见Koreography Track中 Event List多了41个事件,每当播放到K了帧的地方就会调用逻辑。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

在场景创建一个名为 Koreographer的空物体,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

然后在Inspector面板添加Koreographer和Simple Music Player组件和一个EventSubscriber 脚本,将创建的Koreography拖进所选位置,如图所示:

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

我们需要把AudioSource的 Play On Awake 取消勾选。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

EventSubscriber.cs 实现预期效果是当音乐播放实例化随机颜色的方块,代码如下:

using SonicBloom.Koreo;
using UnityEngine;
public class EventSubscriber : MonoBehaviour
{
    public GameObject insGO;

    Color[] colors = new Color[] { Color.black, Color.blue, Color.gray, Color.green, Color.red };
    // Use this for initialization
    void Start()
    {
        //RegisterForEvents(string eventID, KoreographyEventCallback callback)
        //第一个参数是我们上面命名的Track Event ID 例如我的是 TestEventID
        Koreographer.Instance.RegisterForEvents("TestEventID", FireEventDebugLog);
    }
    void FireEventDebugLog(KoreographyEvent koreoEvent)
    {
        insGO = Instantiate(insGO);
        insGO.transform.position = Vector3.zero;
        insGO.GetComponent<MeshRenderer>().material.color = colors[Random.Range(0, 5)];
        Debug.Log("Koreography Event Fired.");
    }
}

2.功能介绍

(1)Koreography

将AudioClip与一组KoreographyTrack和一个Tempo Map(通过Tempo Sections定义)关联起来的资产

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Source Clip:需要用到的音乐/音频

Sample Rate(采样率):

Ignore Latency Offset:忽略时延偏移

Tempo Sections(节奏部分):

  • Section Name:片段名字
  • Start Sample:开始

Tracks(轨道):存放KoreographyTrack

 可以看见,我们的轨道可以添加很多个轨道,那么这个是什么意思?在轨道里面的标记符执行每一个轨道事件,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

那么我们可以想象一下,如果是我们在这个标点符的地方要执行多次回调函数呢?在RegisterForEvents 方法中,每一个注册的事件只执行一次回调方法,当我们需求改变了,比如说需要在一个标记符内,生成几个或者更多的物体,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

可以看见我这里添加了五个轨道进去,当然它们的事件标记都是一样的,所以可以在一个节拍起来的时候,一次性回调方法进行5次。

简单来说就是,Trans集合可以让你的游戏变得更加有趣多化, 每个KoreographyTrack可以自定义不同时候执行回调函数。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

 好比如我上一个节拍所有的KoreographyTrack都有事件,但是下一个节拍就有一个KoreographyTrack少一个事件,它们都是同步执行的。

注意:当我们新建一个KoreographyTrack的时候我们也是需要在RegisterForEvents方法中注册事件的。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Koreography类属性

SourceClip:获取或设置与此Koreography关联的AudioClip。注意:这将清除任何以前的SourceClipPath设置。

在源码中,要设置SourceClip的话,AudioClip和SourceClipPath清空。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

SourceClipPath:获取或设置与此录音记录关联的音频文件的路径。注意:这将清除任何以前的SourceClip设置。

在源码中,要设置SourceClipPath的话,AudioClip和SourceClipPath清空。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

SourceClipName:获取与此Koreography关联的源剪辑或音频文件的名称。

SampleRate:获取或设置编写Koreography Tracks所依据的音频数据的采样率。这在编辑时和运行时之间可能有所不同。

IgnoreLatencyOffset:获取或设置一个值,该值指示此Koreography是否应忽略任何配置的延迟或延迟偏移量。

Tracks:返回Koreography Tracks内部列表的副本。这授予对配置轨道的访问权限,但不允许编辑内部轨道列表本身。

②Koreography类方法

CheckTrackListIntegrity():检查内部Koreography Track列表的完整性,删除所有空项。(如果在此操作期间对列表进行了更改,则为True,否则为false。)

CheckTempoSectionListIntegrity():检查内部节拍部分列表的完整性,删除任何空项。(如果在此操作期间对列表进行了更改,则为True,否则为false。)

OverwriteTempoSections(List<TempoSectionDef> newSections):完全取代当前配置的节奏部分列表与传入的一个。(参数:要覆盖当前列表的节列表)

GetIndexOfTempoSection(TempoSectionDef sectionDef):获取给定节拍部分的索引,节拍部分的索引,如果找不到-1。

InsertTempoSectionAtIndex(int idxToInsert):在给定索引处用默认值创建一个新的节拍段并返回它。

RemoveTempoSectionAtIndex(int idxToRemove):移除所提供索引处的TempoSection,如果删除了节拍部分,则为true,否则为false。

RemoveTempoSection(TempoSectionDef sectionDef):从Koreography中移除给定的节拍部分,如果删除了节拍部分,则为true,否则为false。

GetTempoSectionNames():获取所有已配置的节奏部分的名称,一个字符串数组,其中包含Koreography中节拍节的配置名称(如果有的话)。

GetTempoSectionAtIndex(int sectionIdx):获得给定索引的节奏部分,返回在给定索引中找到的节拍部分(如果有的话)。

GetNumTempoSections():获取节拍部分的数量,返回节拍小节的总数。

EnsureTempoSectionOrder():通过配置的StartSample对Koreography中的Tempo部分进行排序,确保正确的顺序。

CanAddTrack(KoreographyTrack track):确定是否可以将曲目添加到Koreography中。如果Koreography中已经存在具有相同事件ID的另一个Koreography Track,则无法添加Koreography Track,如果可以添加轨道,则为true,否则为false。

AddTrack(KoreographyTrack track):将曲目添加到Koreography中,如果添加了track,则为True,否则为false。

RemoveTrack(KoreographyTrack track):从Koreography中删除Koreography Track轨道。

RemoveTrack(string eventID):从Koreography中删除与eventID匹配的事件ID的Koreography Track。

GetEventIDs():返回一个字符串数组,其中包含Koreography中所有Koreography track的事件id。

GetTrackByID(string eventID):返回事件ID与eventID匹配的Koreography Track。

GetTrackAtIndex(int trackIdx):获取在trackIdx上的Koreography Track。

GetIndexOfTrack(KoreographyTrack track):获取内部Koreography track列表中track的索引。

HasTrack(KoreographyTrack track):确定轨道是否存在于Koreography中。

GetNumTracks():获取Koreography中的Koreography track的数量。

DoesTrackWithEventIDExist(string eventID):检查事件ID为eventID的Koreography Track是否存在。

ResetTimings():重置内部跟踪采样时间。

GetBeatTimeDelta(int subdivisions = 1):获取当前更新传递所表示的Beats中的时间量,返回当前更新传递在Beats中所代表的时间。

GetLatestSampleTime():获取当前更新传递的示例中的时间。

GetLatestSampleTimeDelta():获取当前更新传递所表示的样本中的时间量。

GetBeatTimeFromSampleTime(int sampleTime, int subdivisions = 1):用subdivision指定的subdivision值将sampleTime从Sample Time转换为Beat Time,返回节拍时间相当于sampleTime。

GetSampleTimeFromBeatTime(double beatTime, int subdivisions = 1):用细分指定的细分值将beatTime从Beat Time转换为Sample Time。

GetMeasureTimeFromSampleTime(int sampleTime):将sampleTime从采样时间转换为测量时间。

GetSampleTimeFromMeasureTime(double measureTime):将measureTime从Measure Time转换为Sample Time。

GetSampleTimeFromMeasureTime(int measure):将测量时间转换为采样时间。

GetBeatCountInMeasureFromSampleTime(int sampleTime):获取由sampleTime表示的度量内的节拍时间。

GetSamplesPerBeat(int checkSample, int subdivisions = 1):返回checkSample指定位置的节拍内的采样数,并使用subdivision指定的节拍值。

GetBPM(int checkSample):返回checkSample指定位置的每分钟节拍数。

GetSampleOfNearestBeat(int checkSample, int subdivisions = 1):获取离checkSample最近的节拍的样本位置。

GetTempoSectionForSample(int checkSample):获取包含checkSample的节拍部分。

GetTempoSectionIndexForSample(int checkSample):获取节拍部分列表中包含checkSample的节拍部分的索引。

UpdateTrackTime(int startTime, int endTime, DeltaSlice deltaSlice):事件触发过程的一部分。这将触发所有已配置的Koreography Tracks(包括)中属于startTime和endTime指定范围内的所有Koreography Events。

(2)KoreographyTrack

沿着音频时间轴定义的KoreographyEvents序列。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

EventList对应的就是Koreography Editor Tran Setting 中设置的事件集合。当我们点开Element的时候可以看见有两个值可以调节,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

我们可以让回调的的时间更加贴合音乐/音频的节奏,什么意思呢,其实就是将轨道的事件执行时间更加细化,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

当我们直接按E键或者Enter键K帧的时候,我们只能K到一条条竖者的白线上,但是我们的节拍又不在白线上的话,就会显的游戏节拍混乱, 在没有调节的情况下是在白条上,

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

然后我们只需要调节一下下方的参数就可以将事件对准着我们的节拍了,只不过需要做的工作特别繁琐。 

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

(4)Koreography Editor

Window界面也多了两个选项。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

Koreography Settings
①Koreography

当前加载的Koreography 。

②New Koreography

打开一个对话框,以创建和加载新的Koreography资产。

③“?”

打开Koreographer帮助面板。

④AudioClip

与当前加载的Koreography相关联的AudioClip。

⑤Tempo Section Settings

定义/配置与Koreography音频。

a.Tempo Section to Edit

当前选择的节拍部分。

 b.Section Name

当前选择的节拍段的名称,您可以使用此控件重命名当前选定的部分,节拍段名称不必是唯一的。

c.Delete

删除当前选择的节拍部分,只有当存在多个节拍段时,才能删除节拍段。

d.Insert New Before

在当前选定的节奏部分之前插入一个新的节奏部分。

e.Insert New After

在当前选定的节奏部分之后插入一个新的节奏部分。

f.Start Sample

当前节拍部分音频数据的第一个样本,第一个节拍部分必须有一个开始样本0。

g.Tempo

节奏部分的音乐速度,通常以每分钟跳动数计算。

h.BPM/Samples Per Beat

决定如何显示速度值——要么是Beats Per Minute,要么是Samples Per Beat。

i.Beats Per Measure

当前节拍部分中每小节(或每小节)的节拍数。

j. Starts New Measure

这个节拍部分是否开始一个新小节(小节),这将有效地立即重置节拍计数,这对于突然转换、剪切或在文件开始处考虑沉默时非常有用。

Track Settings

创建/配置Koreography轨道的设置和控件,特别是与Koreography相关的。

a.Track to Edit

此下拉列表将列出加载到当前韩国语的所有Koreography曲目,这里的Koreography track由它们的Event ID标识,而不是资产文件的名称,所选Koreography Track的内容将在UI的Koreography Track Settings部分中显示和编辑。

b.Track Event ID

当前选定的Koreography Track的事件ID

c.Load

将现有的Koreography Track加载到Koreography中。

d.New

打开一个对话框,以创建新的Koreography Track并将其与当前的Koreography。

e.Remove

从当前Koreography中删除当前选定的Koreography Track。这不会删除资产文件。

Koreography Track Settings

此部分中的字段、控件和显示使您能够创建、编辑和可视化在Track to edit字段中选择的Koreography Track的内容,本节还包含允许您控制AudioClip的播放以协助编辑的控件。请参阅键盘快捷键部分了解一些韵母。

①UI Elements
a.Playback Controls
这两个按钮控制AudioClip的基本播放状态。
Play ( )/Pause ( ): 此按钮有两种模式,取决于AudioClip的当前状态。如果音频正在播放,按钮将读取“暂停”,否则读取“播放”。
Stop ( ):此按钮将停止AudioClip在任何状态下的播放,将播放头返回到开始位置或。如果激活,则回播锚位置。
b.V
打开“事件可视化器”窗口。
c.Event Interaction Mode

确定如何解释波形显示上的鼠标输入。所有模式都遵循抓拍设置,任选其一:

Select: 选择:鼠标将从选择中添加或减去事件。双击鼠标波形将在当前鼠标位置创建一个OneOff事件。
Draw: 绘制:鼠标将在鼠标所在位置添加一个或多个事件,这遵循事件创建模式。
Clone: 克隆:如果不存在选择,鼠标将像在选择模式下一样工作。如果存在选择,则将在鼠标单击的位置复制(克隆)所选事件。
d.Event Creation Mode

指示编辑器应该如何创建新事件,任选其一

OneOff: 创建的事件被映射(锚定)到单个样本,因此跨越O个样本。它们类似于Unity的动画事件。
Span: 创建的事件跨越1个或多个示例。它们沿着时间轴定义一个范围,在这个范围内事件将不断被触发
e.Payload Mode
要将什么有效负载附加到新创建的Koreography Events,选项包括: No Payload ,Asset,Color,Curve,Float,Gradient,Int,and Text。
f.Analyze
打开音频分析窗口。
g.Zoom
Zoom 音频时间轴的控件。
h.Snap To Beat
在创建事件时,如果选中,事件的开始/结束位置将被设置为最近的节拍(这也称为量化),如果未选中,则不会发生量化,并且事件的开始/结束位置将被设置为底层AudioSource报告的样本位置(用于在播放期间创建事件)或鼠标指示的精确位置(用于绘制模式)。对于大多数操作,可以通过按住SHIFT (⇧)键暂时反转此设置。
i.Divide beat by
此设置将创建节拍的额外细分,如果您想直接在两个节拍之间设置事件,这将非常方便。如果选中了“捕捉到节拍”,事件将捕捉到最近的细分。如果此数字大于1,则将在表示新快照位置的网格上绘制细分线。
j.Auto Scroll

指示Koreography Editor是随音频播放及时滚动波形显示,还是将其保留在当前位置。

k.Playback Volume
AudioClip在播放时的音量。
l.Speed
AudioClip在播放时的速度,这是作为pitch实现的。
m.Waveform Visualization Controls
这些设置控制波形应该如何可视化。选项包括:
MinMax:查看给定像素位置所代表的样本范围,并选择最大和最小值来显示。
RMS: RMS:查看给定像素位置所代表的样本范围,并执行均方根计算。结果值被反转(从+到-)以创建垂直对称的波形表示
Both: [Default] 这是Audacity使用的标准,在两种算法都倾向于突出底层音频的不同特征时很有用。它对性能的影响也是最大的
Koreography Event Settings

除非选择了一个或多个Koreography Events,否则此部分为空白。关于事件的可配置详细信息将出现在本节中。当选择单个事件时,“selected event Settings”标题右侧的括号中会显示一个数字。这个数字是所选事件在Koreography Track的内部列表中的索引位置。

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

下面将讨论各个Ul元素。这些将按照从上到下、从左到右的顺序进行讨论:
a.Delete Event
删除选定的Koreography事件。
b.Payload 
所选Koreography事件的可选有效载荷。如果选择了任何有效负载类型,则可以在此控件右侧显示的字段中编辑其值。
c.Start Sample Location
开始样本位置:指示Koreography事件沿着音频时间轴何时开始的样本位置。
Snap To:捕捉到:这些按钮将捕捉(量化)开始采样位置到最近的、特定于按钮的位置。
: :捕捉到前一个节拍/细分。
音乐: 捕捉到最近的beat/subdivision。
: :捕捉到下一个节拍/细分。
d.End Sample Location
指示Koreography事件沿音频时间轴何时结束的样例位置。当选择多个事件时,此控件(及相关控件)不可用。

(5)Koreographer

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

在您希望系统接收Koreography Event通知的任何场景中都需要Koreographer脚本。在内部,Koreographer类遵循懒汉单例设计模式:当Koreographer组件启动时,它将自己设置为Koreographer实例。这允许为最常见的用例轻松访问Koreographer组件API。

Koreographer类只遵循懒汉单例模式,这一点很重要:您可以在同一个场景中轻松运行两个或更多Koreographer组件。每个实例都将在初始化期间覆盖静态单例“Instance”引用。这意味着静态Koreographer类api将只到达要初始化的最后一个Koreographer实例。但是,您可以使用直接引用来区分Koreographer实例。

Loaded Koreography:加载的Koreography:要在启动时加载的Koreography数据列表。如果您的音频播放器没有为您加载Koreography,这是有用的。

Event Delay In Seconds:事件延迟(以秒为单位):从报告的音频时间延迟触发Koreography事件的秒数,不能小于0。

(6)Simple Music Player

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

简易音乐播放器Simple Music Player组件是所包含的音频播放器中最简单的。它没有使用AudioClip引用,而是使用单个Koreography引用。在运行时,Koreographer被加载到静态Koreographer实例中。添加此组件还将添加AudioSource组件,该组件在内部用于控制音频。Simple Music Player使用参考Koreography中的AudioClip参考进行音频播放。虽然这被称为简单音乐播放器,它像它包装的AudioSource组件一样,也能够播放普通的音频文件。
Auto Play On Awake::选中后,简单音乐播放器将自动播放在以下字段中指定的Koreography,如果有的话。
Koreography:如果有配置,简单音乐播放器将在启动时加载该 Koreography
Target Koreographer:这个字段是可选的。它允许您指定用于Koreography事件报告和Music Time API支持的目标Koreographer组件。如果没有指定Koreographer组件,则将使用默认的单例Koreographer组件引用。

(7)Multi Music Player

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#

多音乐播放器多音乐播放器将尝试播放多个同步的音频层。这些层可以使用原始AudioClip引用或Koreography引用进行配置。接口不允许在单个层中同时设置。
Sync Play Delay: 同步播放延迟:将添加一个特定的偏移到音乐播放的开始。当这被传递给Unity的内部引擎时,它可以更好地“保证”跨层同步启动。
Pitch: 同时调整所有图层的间距。
Loop: 如果选中,多音乐播放器将循环所有的层。
Auto Play On Awake: 当选中时,多音乐播放器将自动播放音乐层中指定的音频。否则,音频和/或Koreography将简单地加载并准备播放。
Music Layer Settings:
Music Source
这一层将找到音频数据。Clear按钮将这些值重置为None。
  • Koreography: 为该层加载Koreography。Koreography记录将被加载到静态Koreography记录实例中,Koreography记录中的AudioClip将用于播放。
  • Audio Clip: 不加载Koreography -简单地播放AudioClip。
  • Optional: 本节中的设置是可选的。
  • Name: 为图层添加一个名称。这用于重命名检查器列表中的音乐层条目。在上面的截图中,这个值将取代“Element O”。
  • Audio Source: 一个对AudioSource组件的引用,这个音乐层应该使用它来播放
Target Koreographer: 目标Koreographer:这个字段是可选的。它允许您指定用于Koreography事件报告和Music Time API支持的目标Koreographer组件。如果没有指定Koreographer组件,则将使用默认的单例Koreographer组件引用。
①MultiMusicPlayer类属性

Pitch:获取或设置音高。

Loop:获取或设置一个值,该值指示音频是否应该循环。

Volume:一次将音量设置为所有AudioSources。

IsPlaying:获取一个值,该值指示音频是否正在播放(暂停/停止)。

MultiMusicPlayer类方法
LoadSong(List<MusicLayer> layers, int startSampleTime = 0, bool autoPlay = true):加载一首新歌,按层描述。这将停止当前正在播放的歌曲。
Play():播放音频。
Stop():停止音频。
Pause():暂停音频。
SeekToSample(int targetSample):将音频搜索到目标样本位置。
SetVolumeForLayer(int layerNum, float volume):设置给定图层的音量。
SetVolumeForLayer(string layerName, float volume):设置给定图层的音量。
GetSampleTimeForClip(string clipName):获取名称为clipName的AudioClip的当前示例位置。
GetTotalSampleTimeForClip(string clipName):获取名称为clipName的AudioClip的总采样时间。运行时的总时间不一定与编辑时的总时间相同。
GetIsPlaying(string clipName):确定名称为clipName的AudioClip是否正在播放。
GetPitch(string clipName):获取Pitch。clipName参数被忽略。
GetCurrentClipName():获取当前AudioClip的名称。

(8)Sample Sync Music Player [Experimental]

Sample Sync Music Player仅与Koreographer Pro一起提供。当Multi Music Player尝试以同步的方式播放多个音频层时,Sample Sync Music Player保证了样本特定的同步。这个播放器是实验性的,这意味着它还没有经过严格的测试(对于绝大多数用例,Multi Music player已经被证明是完全足够的),并且在支持方面是一个极低的优先级。

Sample Sync Music Player的工作原理是加载所有图层的音频数据,并在播放时将它们组合起来。这保持了以(可能相当多的)内存使用为代价独立改变层体积的灵活性。

为了使系统正常工作,必须添加单独的音频总线组件。这个音频总线组件代表了采样同步音乐播放器和Unity的底层音频系统之间的连接。文章来源地址https://www.toymoban.com/news/detail-773849.html

Unity-Koreography音游插件的介绍和使用,Unity,unity,c#
Playback Music (Audio Layers):音频,配置为层,同时播放。
  • Audio Layer Settings:
  • Koreo: 用于Koreography和音频回放的Koreography。
  • Clip: 用于音频播放的AudioClip。
  • Volume:这个音频层的初始音量。
Music Channels: 音乐通道:配置的音频中的通道数。这必须匹配所有AudioClips在所有层的配置!
Music Frequency:配置音频的采样率。这必须匹配所有AudioClips在所有层的配置!
Bus: 音频总线组件参考只需添加一个到相同的gameobject中,并将其拖拽到这个槽中。音频总线是什么管道音频数据到AudioSource,与Sample Sync Music Player.
T arget Koreographer:这个字段是可选的。它允许您指定用于Koreography事件报告和Music Time API支持的目标Koreographer组件。如果没有指定Koreographer组件,则将使用默认的单例Koreographer组件引用。
等后续深入学学后再进行添加....

到了这里,关于Unity-Koreography音游插件的介绍和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • XCharts——Unity上最好用的免费开源图表插件!(一)基本介绍

    只讲实用干货!!!(过于细节的或是未提及到的可直接问) 目录 XCharts介绍 插件简介 插件下载 XCharts基本使用 类型介绍 1.折线图(LineChart) 2.柱形图(BarChart) 3.扇形图(PieChart) 4.雷达图(RadarChart) 属性介绍 一.主题(Theme) 二.设置(Setting) 三.网格坐标(Grid Goord)

    2024年02月10日
    浏览(53)
  • Unity Dotween插件的运动曲线(Ease)介绍Ease选项Ease效果示例以及C#修改动画曲线功能

    我们在制作动画时经常使用这个Dotween插件,在移动、旋转、透明度等等参数的控制都可以使用该插件,而且在这个插件上的控制动画可以设置曲线,内置的曲线有这些: 以InOutSine的曲线进行往右移动: 效果是这样的: 能看出开始是从0提速,最后是慢慢减速至0的效果。 4个

    2024年02月01日
    浏览(45)
  • Unity UMP插件的使用

    1.  UMP插件下载地址: https://download.csdn.net/download/qq_42603590/21840947  新建一个RawImage拖到RenderingGameObjects里面如下图: 勾选AutoPlay  然后运行即可看到摄像头的画面 2.如果运行报错的话,错误是找不到libvlc.dll文件,那就是你电脑上没有vlc库,下载安装一个,安装完成之后,错误立马消失

    2023年04月08日
    浏览(21)
  • 【unity插件】 DoTween动画插件的安装和使用整合(最全)

    DOTween是最常用的动画插件之一,比使用Unity自带脚本写动画,方便很多。 untiy商店插件地址 https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676 DOTween商城地址,开发文档 http://dotween.demigiant.com DOTween首次使用需要设置,导入以后会弹出下面的窗口,点击按钮就好。 之

    2024年02月16日
    浏览(33)
  • [Unity] Unity 插件Behavior Designer行为树使用

    在Tools - Behavior Designer - Editor中打开行为树编辑编辑窗口 选择一个游戏物体 在Behavior Designer中右键Add Behavior Tree 2.1 Parallel 组件下方的行为会平行执行 分别为下方的三个组件添加了三个输出到Console的Action,可以发现Console中在同一时间做了三个输出 2.2 Sequence 组件下方的行为会

    2024年02月11日
    浏览(26)
  • copilot插件使用介绍

    Copilot 是一款由 GitHub 和 OpenAI 共同开发的智能编程助手,可以根据您的输入快速生成代码片段。下面是 Copilot 插件的使用介绍: 1.安装插件: 2.配置 API 密钥: 3.使用 Copilot: 4.自定义命令: 总体来说,Copilot 插件可以帮助您快速生成代码片段,提高编程效率。但是需要注意的

    2024年02月02日
    浏览(32)
  • unity --- DoTween插件安装与使用

    目录 一.简介  1.1 插件下载 1.2 官方文档 二.导入和设置 三.示例代码 1 循环动画:SetLoops(-1 , loopType ) 2. 动画循环次数:SetLoops( count ) 3. 动画事件监听与回调:OnStart OnComplete 4. 动画延迟回调:SetDelay 5. 动画自定义更新回调:OnUpdate 6. 动画路径回调:OnWayPointChange 7. 动画循环

    2024年02月11日
    浏览(36)
  • Unity Animancer插件(一)基本使用

    Animancer是什么?资源商店主页 我们来通过Animancer实现一个最基本的动画播放效果。 首先创建一个脚本 PlayAnimationOnEnable ,编写如下代码 很容易理解,就是在 OnEnable() 时播放一个指定的动画片段。 接下来为角色添加 Animator 、 Animancer Component 和刚刚编写的 PlayAnimationOnEnable ,并

    2024年02月02日
    浏览(29)
  • 一文了解Copilot插件使用介绍

    在软件开发的不断演进中,AI技术正逐渐渗透到我们的日常工作中。GitHub Copilot作为一个基于OpenAI Codex的插件,为程序员提供了全新的编程体验。本文将深入探讨Copilot插件的使用方法、优势特性以及如何充分发挥其潜力,助你更高效、愉悦地进行编码。 1. Copilot简介: GitHub

    2024年02月02日
    浏览(33)
  • 【Jquery插件】Owl Carousel轮播插件介绍与使用

    Owl Carousel:Basic Demo | Owl Carousel | 2.3.4 (owlcarousel2.github.io) 「Owl Carousel」插件常用的参数配置如下: 参数名称 参数类型 默认值 说明 items number 3 设置同时显示的轮播项数 loop boolean false 是否开启循环播放 autoplay boolean false 是否自动播放 autoplayTimeout number 5000 自动播放等待时间,

    2024年02月06日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包