UE4 Wave Table Synthesis 触ってみた(1)音を鳴らす

UE4.23 リリースノートに、オーディオのアップデートがあり、気になっていました。

Wave Table Synthesis. A new monophonic Wavetable synthesizer that leverages UE4’s built-in curve editor to author the time-domain wavetables, allowing for a wide range of sound design capabilities that can be driven by gameplay parameters.

「UE4のカーブを描く機能を使って波形を直接描けるシンセサイザー」(要約)ですね。

タイムドメイン式が何か調べてみましたが、専門領域の香ばしい匂いがするので、ここでは割愛します。(これとかこのページに説明してあるようです)

一般的なシンセサイザー(UE4にも入っているModular Synthなど)は特定の波形(サイン波やノコギリ波)を足して音作りをしていくのに対して、今回のWave Table Synthesisは元の波形自体を描画できるので、出せる音の幅が無限大になっていく。ゲームパラメータと連動させたらますます夢が膨らむね、と感じ。(簡単にいってくれるなあ)

さて、ブループリント組んでましょう。
使用したエンジンはUE4.23.0 Preview4です。シンセ系のプラグインは2019年8月現在まだベータバージョンで、WaveTableSynthesisについても殆ど情報がないので、間違い/不具合があれば指摘してください。また、英語バージョンのエディタで説明することをご了承ください。

①新規作成したプロジェクトフォルダの\Config\Windows\WindowsEngine.iniに

[Audio]
AudioDeviceModuleName=AudioMixerXAudio2

を足します。Windows環境でない人はオーディオのスタートガイドを参照してください。

②プラグインを追加し、エディタを再起動します。

画像1

Synthesis and DSP Effects。Pluginsウィンドウの、Audioカテゴリの中に入っています。

③再起動したら、アセットを追加します。コンテンツブラウザ上で右クリックし、SoundsカテゴリからMonoWaveTableSynthPresetBankを作成します。画像2

作成したものをダブルクリックで開いて、中身を見てみましょう。

画像3

ほうほう。
Wave Tableを追加して、波形グラフをここから直接編集できます。複数の波形を使用すると、それぞれの波が加算されて、その結果が音に反映されるようです。

・Preset Name: 名前。任意のものか、Defaultのままで大丈夫です。
・Lock Keyframes to Grid: Wave Tableの編集で、指定したポイントの数を、幅が均等になるように並べます。ブループリントからこのアセットにアクセスして、きれいなサインカーブを自動で描く、みたいな時に使えます。一旦チェックします。ポイントの数はデフォルトの16にします。
・Wave Table Resolution: 単位時間あたりに、描画したカーブを何個読み込むか。デフォルトの512にしておきます。
"Wave Table": 波形ですね。Array Elementsがゼロでしたら、 右にあるプラスマークを押して、要素を1つ追加しましょう。デフォルトではSine波(単純化されたもの)が出てきます。最低1周期描いておけば、音が出そうです。
・Normalize Wave Tables: 出力する波形の振幅が、規定の値を超えないようにします。つまり、音量が大きすぎないようにします。あえて音を割りたいのでなければ、チェックを入れておきます。

ここまでで、一旦保存します。

④ブループリントを追加します。
コンテンツブラウザを右クリックして、Blue Print Class →Actorを追加します。ここでは”BP_WaveTable”と名付けます。

画像4

作成したブループリントを開いたら、+Add Componentをクリックして、"synth"で検索してみます。

画像5

上から3つめのSynth Component Mono Wave Table を追加します。追加したコンポーネントを選択し、Detailパネルをみます。Synthの中のCurrentPresetに、先ほど作成したMonoWaveTableSynthPresetをセットします。

画像6

(↑ソースエフェクトやサウンドサブミックス等も、今までと同じようにセットできるようです。)

このブループリントは保存して、マップ上に放り込んでおきます。

さて、準備が整ったところで、レベルブループリントを開きます。

画像7

こんな感じで組みます。
ブループリントを目で見てコピーするのが面倒な人は下のコードをコピーして、レベルブループリント上でコピペしてみてください。手間が少し省けます。

Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_0"
  EventReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="ReceiveBeginPlay")
  bOverrideFunction=True
  NodePosX=6864
  NodePosY=3360
  NodeGuid=A5FA46874BE43C219DF7A9ABA62C5791
  CustomProperties Pin (PinId=0CBCCC5D4AE60F9F89C9B5B3107D02AF,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="ReceiveBeginPlay"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=C6A32ABC4BA52C616541899D01A4472F,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_32 49A8A6A54F016330FA7D90A43D335AC7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_8"
  VariableReference=(MemberParent=BlueprintGeneratedClass'"/Game/BP_WaveTable.BP_WaveTable_C"',MemberName="SynthComponentMonoWaveTable")
  SelfContextInfo=NotSelfContext
  NodePosX=6768
  NodePosY=3520
  NodeGuid=D9344AB04C415AB886BC7A8E4D7110CB
  CustomProperties Pin (PinId=57B41C1E49749C35E907E4852D8F3629,PinName="SynthComponentMonoWaveTable",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_32 A6B70EDB43C3252EA3D1589181962924,K2Node_Knot_6 408A854C4D4B009F883F7894B9408435,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=A3C2CC1E41E2EF4A493CD6AF7CAC0430,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BP_WaveTable.BP_WaveTable_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Literal_11 0BB0BF6C40784A31653F5A935D56E3BB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_32"
  FunctionReference=(MemberParent=Class'"/Script/AudioMixer.SynthComponent"',MemberName="Start")
  NodePosX=7104
  NodePosY=3344
  NodeGuid=3C1A40B54D6C19E644552990E31E06FB
  CustomProperties Pin (PinId=49A8A6A54F016330FA7D90A43D335AC7,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 C6A32ABC4BA52C616541899D01A4472F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=D062C37D4B716DD4641B0AACDE86839A,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_48 CB5F32394FD0A55DF35E0D9A150A8E96,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=A6B70EDB43C3252EA3D1589181962924,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AudioMixer.SynthComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_8 57B41C1E49749C35E907E4852D8F3629,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_InputKey Name="K2Node_InputKey_1"
  InputKey=SpaceBar
  NodePosX=6896
  NodePosY=3904
  NodeGuid=9C2E5AAD4559ABE7B95768970737F391
  CustomProperties Pin (PinId=380F22454A445EFE5F0E4583BA268AE8,PinName="Pressed",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_4 676DA3F343C1EF1D91D52588FF614CA2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=F0E7F95A4BE32379D5CEE7B0B8DECA85,PinName="Released",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_7 DB6C78E447D8E8BB9F35999330DEF80B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=62AEC8A145CA03C4CD10958E5858562F,PinName="Key",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/InputCore.Key"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="None",AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_4"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="NoteOn")
  NodePosX=7200
  NodePosY=3904
  bCommentBubbleVisible=True
  NodeComment="60 = C4(Middle C)"
  NodeGuid=7EBBE57C4581F3ECB95DBA912DC14BDA
  CustomProperties Pin (PinId=676DA3F343C1EF1D91D52588FF614CA2,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_InputKey_1 380F22454A445EFE5F0E4583BA268AE8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=5FC5A7C5466E413E4EFCBFA08D8AD50C,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_10 0BA027EF4749395759A54193797947E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=FDF09FFA48BC03BD143EB9AC6B909F81,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_4 19249083400A983DD3E222B66638BF6F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=624540684E6C859BCF3FC580E117059C,PinName="InMidiNote",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="60.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=F233CEA14F366E4D65515C91B746E6DC,PinName="InVelocity",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="127.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_4"
  VariableReference=(MemberParent=BlueprintGeneratedClass'"/Game/BP_WaveTable.BP_WaveTable_C"',MemberName="SynthComponentMonoWaveTable")
  SelfContextInfo=NotSelfContext
  NodePosX=6784
  NodePosY=4048
  NodeGuid=A4F51F93448AF381C13D238AE127AB4A
  CustomProperties Pin (PinId=19249083400A983DD3E222B66638BF6F,PinName="SynthComponentMonoWaveTable",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_4 FDF09FFA48BC03BD143EB9AC6B909F81,K2Node_CallFunction_7 92D0BD4240311BE9954C5EB675AA65D5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=472ED9F347616EB1F47FB39585B3D0E7,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BP_WaveTable.BP_WaveTable_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Literal_11 0BB0BF6C40784A31653F5A935D56E3BB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_7"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="NoteOff")
  NodePosX=7200
  NodePosY=4112
  NodeGuid=A5ACFDB342145D0553CAEBA164A92C32
  CustomProperties Pin (PinId=DB6C78E447D8E8BB9F35999330DEF80B,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_InputKey_1 F0E7F95A4BE32379D5CEE7B0B8DECA85,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=08B5EC4641ADD642C490DCBF3132D1CE,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_9 0BA027EF4749395759A54193797947E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=92D0BD4240311BE9954C5EB675AA65D5,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_4 19249083400A983DD3E222B66638BF6F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=45EF2EA54BBE24A7018985B43A82873D,PinName="InMidiNote",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="60.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_10"
  FunctionReference=(MemberParent=Class'"/Script/Engine.KismetSystemLibrary"',MemberName="PrintString")
  NodePosX=7552
  NodePosY=3920
  AdvancedPinDisplay=Hidden
  EnabledState=DevelopmentOnly
  NodeGuid=89D4EF8342285E5A6C3C24957A952ADB
  CustomProperties Pin (PinId=0BA027EF4749395759A54193797947E6,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_4 5FC5A7C5466E413E4EFCBFA08D8AD50C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=CC11B4E841AE60B103D5E890CEE02C8E,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=0ADBBF804D823AAF0FFAB38CEB05F100,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.KismetSystemLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/Engine.Default__KismetSystemLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=A89C3569430B59818C2F29B489F17553,PinName="WorldContextObject",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/CoreUObject.Object"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=9383A0F24DE6368E5B5C79A175FF6E10,PinName="InString",PinType.PinCategory="string",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="NoteOn",AutogeneratedDefaultValue="Hello",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=FF5F1D3E4B0E99E5A7F01682449C55BC,PinName="bPrintToScreen",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="true",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=698553284B9639D1B3768DA0D7F9082C,PinName="bPrintToLog",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="true",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=FAEA58004443E00220F1C3A6D5368AA9,PinName="TextColor",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.LinearColor"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(R=0.000000,G=0.660000,B=1.000000,A=1.000000)",AutogeneratedDefaultValue="(R=0.000000,G=0.660000,B=1.000000,A=1.000000)",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=69E28FAE4D42CCF8F442B99C57E517B0,PinName="Duration",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="2.000000",AutogeneratedDefaultValue="2.000000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_9"
  FunctionReference=(MemberParent=Class'"/Script/Engine.KismetSystemLibrary"',MemberName="PrintString")
  NodePosX=7552
  NodePosY=4112
  AdvancedPinDisplay=Hidden
  EnabledState=DevelopmentOnly
  NodeGuid=8EAA2E4D420ABA923A907382B5E622F8
  CustomProperties Pin (PinId=0BA027EF4749395759A54193797947E6,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_7 08B5EC4641ADD642C490DCBF3132D1CE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=CC11B4E841AE60B103D5E890CEE02C8E,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=0ADBBF804D823AAF0FFAB38CEB05F100,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.KismetSystemLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/Engine.Default__KismetSystemLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=A89C3569430B59818C2F29B489F17553,PinName="WorldContextObject",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/CoreUObject.Object"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=9383A0F24DE6368E5B5C79A175FF6E10,PinName="InString",PinType.PinCategory="string",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="NoteOff",AutogeneratedDefaultValue="Hello",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=FF5F1D3E4B0E99E5A7F01682449C55BC,PinName="bPrintToScreen",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="true",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=698553284B9639D1B3768DA0D7F9082C,PinName="bPrintToLog",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="true",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=FAEA58004443E00220F1C3A6D5368AA9,PinName="TextColor",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.LinearColor"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(R=0.000000,G=0.660000,B=1.000000,A=1.000000)",AutogeneratedDefaultValue="(R=0.000000,G=0.660000,B=1.000000,A=1.000000)",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
  CustomProperties Pin (PinId=69E28FAE4D42CCF8F442B99C57E517B0,PinName="Duration",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="2.000000",AutogeneratedDefaultValue="2.000000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_18"
  NodePosX=6528
  NodePosY=3168
  NodeWidth=816
  NodeHeight=560
  NodeComment="シンセサイザーをスタートさせます"
  NodeGuid=16B7ED594A0EEDE8B196ACA93BCB4989
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_19"
  NodePosX=6544
  NodePosY=3856
  NodeWidth=1249
  NodeHeight=436
  NodeComment="スペースを押したら音が鳴ります。"
  NodeGuid=012355634111F310850460A4B07E749E
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_48"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="SetAmpEnvelopeAttackTime")
  NodePosX=7456
  NodePosY=3312
  ErrorType=1
  NodeGuid=C4FB031C44A6A22291DE95B9224A08FE
  CustomProperties Pin (PinId=CB5F32394FD0A55DF35E0D9A150A8E96,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_32 D062C37D4B716DD4641B0AACDE86839A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=11AFCED14E8B689C303F32B34E9AAA3C,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_49 9B75F3824008EC522D194696D76603AE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=16687F294EAAE41F558F3EB53CF88736,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_6 E33A8958426DA2B5282D848757864714,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=B1F43A1E4B1C1FF6333F86A6B5051F17,PinName="InAttackTimeMsec",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="30.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_49"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="SetAmpEnvelopeDecayTime")
  NodePosX=7808
  NodePosY=3312
  ErrorType=1
  NodeGuid=D91DDFB74CF8EFBA1B92E4A915E7E9E2
  CustomProperties Pin (PinId=9B75F3824008EC522D194696D76603AE,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_48 11AFCED14E8B689C303F32B34E9AAA3C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=076767EB4F38A253C17607B5020ED1CC,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_50 057C035B4F93EACEEB610494BAF688ED,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=CAC558994D05CF4D85490598283D8D65,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_6 E33A8958426DA2B5282D848757864714,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=2BBDEF574E606DF319548CB523A77FE8,PinName="InDecayTimeMsec",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="100.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_50"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="SetAmpEnvelopeSustainGain")
  NodePosX=7440
  NodePosY=3472
  ErrorType=1
  NodeGuid=251AB4E14B17315EF458CE9E2E067D56
  CustomProperties Pin (PinId=057C035B4F93EACEEB610494BAF688ED,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_49 076767EB4F38A253C17607B5020ED1CC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=62FE2B1A49D99C0EAEC826A57BFB1F55,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_51 35FC2D3F487583E6286C12AD242230D9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=D4D2A3DE46F637ADB015569B193A3E5D,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nSynth Component Mono Wave Table Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_6 E33A8958426DA2B5282D848757864714,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=1659A97C425070FEFFEC878C248AFF91,PinName="InSustainGain",PinToolTip="In Sustain Gain\nFloat",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="1.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_51"
  FunctionReference=(MemberParent=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',MemberName="SetAmpEnvelopeReleaseTime")
  NodePosX=7808
  NodePosY=3472
  ErrorType=1
  NodeGuid=00BE90234B0876C1772A0A9B2279388E
  CustomProperties Pin (PinId=35FC2D3F487583E6286C12AD242230D9,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_50 62FE2B1A49D99C0EAEC826A57BFB1F55,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=3F9B38A548D14C7425FAF59C991C899A,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=AD5A08BD49E01D7552536A869E0226FF,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_6 E33A8958426DA2B5282D848757864714,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=7CDD64D143A304D7E4612692CC2C841D,PinName="InReleaseTimeMsec",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="300.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_20"
  NodePosX=7392
  NodePosY=3264
  NodeWidth=800
  NodeHeight=407
  NodeComment="ADSRの設定をします"
  NodeGuid=5FF5A1F641E03DD6B08FACA8FCD75297
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_6"
  NodePosX=7392
  NodePosY=3536
  NodeGuid=4210D270441441FE1C74778ADEAD82F8
  CustomProperties Pin (PinId=408A854C4D4B009F883F7894B9408435,PinName="InputPin",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_8 57B41C1E49749C35E907E4852D8F3629,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
  CustomProperties Pin (PinId=E33A8958426DA2B5282D848757864714,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Synthesis.SynthComponentMonoWaveTable"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_48 16687F294EAAE41F558F3EB53CF88736,K2Node_CallFunction_50 D4D2A3DE46F637ADB015569B193A3E5D,K2Node_CallFunction_49 CAC558994D05CF4D85490598283D8D65,K2Node_CallFunction_51 AD5A08BD49E01D7552536A869E0226FF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_Literal Name="K2Node_Literal_11"
  ObjectRef=BP_WaveTable_C'"/Game/Untitled.Untitled:PersistentLevel.BP_WaveTable_2"'
  NodePosX=6368
  NodePosY=3760
  bCommentBubbleVisible=True
  NodeComment="レベルから参照したBP_WaveTable"
  NodeGuid=458A5B2140B818DACB97B7B07B018075
  CustomProperties Pin (PinId=0BB0BF6C40784A31653F5A935D56E3BB,PinName="BP_WaveTable",PinFriendlyName="BP_WaveTable",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BP_WaveTable.BP_WaveTable_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_8 A3C2CC1E41E2EF4A493CD6AF7CAC0430,K2Node_VariableGet_4 472ED9F347616EB1F47FB39585B3D0E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object

(これ畳めないのか、、)
・Startノードを繋げないと音が鳴らない
・NoteOnのMidiNoteはMIDIのノートナンバーと対応している
・VelocityもMIDIと対応している
・ADSRの設定は別にしなくても音は鳴ります。"ADSR シンセサイザー"あたりで調べてみてください。

さて、ここまできたら、プレイボタンを押して、スペースを押してみます。
、、音が鳴りましたか?

とりあえずは音が鳴った!というところで、今回は終わりたいと思います。
各種パラメータをいじってみたり、波形を工夫して描いてみたりする機会があれば、またこちらに追加で記事を書きますね。

後記)
↓External Curveも設定できます。こちらは予めグラフをカーブアセットで描画しておいて、読み込むものですね。"CreateExternalCurve"から作成できます。

画像8

また、コンテンツブラウザ右クリック→miscellaneous→Curve→CurveFloatでもカーブのアセットは作成できます。

ふむ。

WaveTableSynthを実際に使っている模様がTwitchにありました。グラフのTangentの値をMIDIキーボードのつまみに割り当てているように見えます。

update: こちらがリリースノートに追加された動画です

MIDIキーボードと繋げてSimulationモードで起動すると、WaveTableをいじりながら音を確認できますので、何かと便利です。PCのキーボードとノートナンバーをいちいち繋げなくても演奏できますし...気になる人はこちらのドキュメントをチェックです。

各種の値をキーボードのつまみに割り当てて、音作りをして、変数を保存するのが現実的な使い方でしょうか。ゲーム内の物理の値から波形を合成する仕組みがあったら面白そうですよね。誰か作ってくれないかな、、それ以前にプリセットがほしいな、、、

この記事が気に入ったらサポートをしてみませんか?