Prepping for Sound Implementation

Made a system to brute-force phrase sounds, removed some randomization, added a way to pitch and unpitch Kosuke's voice lines, added a temp icon for Manzai.
This commit is contained in:
ThePurpleAnon 2024-01-18 22:07:11 -06:00
parent 56112fca46
commit 502e2b741f
19 changed files with 278 additions and 45 deletions

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8be9143a5c0e3c44f8d685b65c3bb298 guid: 3aae338c7ca76c0459199d6363610cfa
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: cd8ed62daf8b41b47a28ed245f659a6c guid: 61a6fb2085cbd67418a0cd249a5f82e7
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 104901654e13e9b44917039b3ef18027
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: da5889a262f48304695077e1f53be3fc
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 76bd6e57ec167eb4891aa8027292b30e
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 7822c7f5eb42b7c4a9cd4486b76bcfcd
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,123 @@
fileFormatVersion: 2
guid: f55b71f8b595d354c9274d3cb5073565
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View file

@ -82,7 +82,7 @@ Material:
- _UseUIAlphaClip: 0 - _UseUIAlphaClip: 0
- _ZWrite: 1 - _ZWrite: 1
m_Colors: m_Colors:
- _AddColor: {r: 0, g: 0, b: 0, a: 0} - _AddColor: {r: 0, g: 0, b: 0, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: [] m_BuildTextureStacks: []

View file

@ -26851,7 +26851,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 1589389271} m_HandleRect: {fileID: 1589389271}
m_Direction: 2 m_Direction: 2
m_Value: 1 m_Value: 1
m_Size: 0.9751009 m_Size: 0.9849506
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
@ -32707,7 +32707,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5} m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 91.71366} m_AnchoredPosition: {x: 0, y: 91.314285}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1} m_Pivot: {x: 0.5, y: 1}
--- !u!222 &1154875945 --- !u!222 &1154875945

View file

@ -31,10 +31,15 @@ namespace HeavenStudio.Games.Loaders
}, },
new GameAction("pun", "Pun") new GameAction("pun", "Pun")
{ {
preFunction = delegate {
var e = eventCaller.currentEntity;
Manzai.PunSFX(e.beat, e["pun"], e["pitch"]); },
function = delegate { function = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
Manzai.instance.DoPun(e.beat, e["boing"]); }, Manzai.instance.DoPun(e.beat, e["boing"]); },
defaultLength = 4, defaultLength = 4,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("boing", Manzai.BoingType.Normal, "Pun Type", "Will Kosuke mess up his pun?"), new Param("boing", Manzai.BoingType.Normal, "Pun Type", "Will Kosuke mess up his pun?"),
@ -112,45 +117,45 @@ namespace HeavenStudio.Games
{ {
Normal, Normal,
Boing, Boing,
Random, //Random,
} }
public enum Puns public enum Puns
{ {
AichiniAichinna, // AichiniAichinna,
AmmeteAmena, // AmmeteAmena,
ChainaniNichaina, // ChainaniNichaina,
DenwariDenwa, //short animation // DenwariDenwa, //short animation
FutongaFuttonda, FutongaFuttonda,
HiromegaHirameida, // HiromegaHirameida,
IkagariKatta, // IkagariKatta,
IkugawaIkura, //short animation (boing unused) // IkugawaIkura, //short animation (boing unused)
KaeruBurikaeru, // KaeruBurikaeru,
KarewaKare, // KarewaKare,
KouchagaKouchou, // KouchagaKouchou,
KusagaKusai, //short animation (boing unused) // KusagaKusai, //short animation (boing unused)
MegaminiwaMegane, // MegaminiwaMegane,
MikangaMikannai, MikangaMikannai,
NekogaNekoronda, // NekogaNekoronda,
OkanewaOkkane, OkanewaOkkane,
OkurezeKitteOkure, // OkurezeKitteOkure,
OmochinoKimochi, // OmochinoKimochi,
OmoinoHokaOmoi, // OmoinoHokaOmoi,
PuringaTappurin, // PuringaTappurin,
RakudawaRakugana, // RakudawaRakugana,
RoukadaKatarouka, // RoukadaKatarouka,
SaiyoMinasai, // SaiyoMinasai,
SakanaKanaMasakana, // SakanaKanaMasakana,
SarugaSaru, //short animation (boing unused) // SarugaSaru, //short animation (boing unused)
ShaiinniNanariNashain_Unused, //fully unused // ShaiinniNanariNashain_Unused, //fully unused
SuikawaYasuika, // SuikawaYasuika,
TaigaTabetaina, // TaigaTabetaina,
TaininiKittai, // TaininiKittai,
TaiyoGamiTaiyou, // TaiyoGamiTaiyou,
ToiletNiIttoire, // ToiletNiIttoire,
TonakaiyoOtonokoi, // TonakaiyoOtonokoi,
TorinikugaTorininkui, // TorinikugaTorininkui,
UmetteUmena, // UmetteUmena,
} }
@ -192,10 +197,10 @@ namespace HeavenStudio.Games
{ {
int punOrBoing = isBoing; int punOrBoing = isBoing;
if(isBoing == (int)Manzai.BoingType.Random) //if(isBoing == (int)Manzai.BoingType.Random)
{ //{
punOrBoing = UnityEngine.Random.Range(0, 5) % 2; // punOrBoing = UnityEngine.Random.Range(0, 5) % 2;
} //}
if(punOrBoing == (int)Manzai.BoingType.Normal) if(punOrBoing == (int)Manzai.BoingType.Normal)
{ {
@ -206,15 +211,32 @@ namespace HeavenStudio.Games
{ {
DoPunBoing(beat); DoPunBoing(beat);
} }
Debug.Log(punOrBoing); //Debug.Log(punOrBoing);
}
public static void PunSFX(double beat, int whichPun, bool isPitched)
{
var punName= Enum.GetName(typeof(Puns), whichPun);
float pitch = isPitched ? Conductor.instance.songBpm/98 : 1;
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound($"manzai/{punName}1", beat + 0.00f, pitch, offset: 0.05),
new MultiSound.Sound($"manzai/{punName}2", beat + 0.25f, pitch),
new MultiSound.Sound($"manzai/{punName}3", beat + 0.50f, pitch),
new MultiSound.Sound($"manzai/{punName}4", beat + 0.75f, pitch),
new MultiSound.Sound($"manzai/{punName}5", beat + 1.00f, pitch),
new MultiSound.Sound($"manzai/{punName}6", beat + 1.25f, pitch),
new MultiSound.Sound($"manzai/{punName}7", beat + 1.50f, pitch),
new MultiSound.Sound($"manzai/{punName}8", beat + 1.75f, pitch),
new MultiSound.Sound($"manzai/{punName}9", beat + 2.00f, pitch),
}, forcePlay: true);
} }
public void DoPunHai(double beat) public void DoPunHai(double beat)
{ {
int bubbleAnimation = UnityEngine.Random.Range(0, 2); int bubbleAnimation = UnityEngine.Random.Range(0, 2);
SoundByte.PlayOneShotGame("manzai/"+sfxDefs[0].sfx, pitch: Conductor.instance.songBpm/98);
ScheduleInput(beat, 2.5f, InputAction_BasicPress, bubbleAnimation == 0 ? HaiJustL : HaiJustR, HaiMiss, Nothing); ScheduleInput(beat, 2.5f, InputAction_BasicPress, bubbleAnimation == 0 ? HaiJustL : HaiJustR, HaiMiss, Nothing);
ScheduleInput(beat, 3.0f, InputAction_BasicPress, bubbleAnimation == 0 ? HaiJustR : HaiJustL, HaiMiss, Nothing); ScheduleInput(beat, 3.0f, InputAction_BasicPress, bubbleAnimation == 0 ? HaiJustR : HaiJustL, HaiMiss, Nothing);
BeatAction.New(instance, new List<BeatAction.Action>() BeatAction.New(instance, new List<BeatAction.Action>()
@ -263,7 +285,7 @@ namespace HeavenStudio.Games
{ {
int bubbleAnimation = UnityEngine.Random.Range(0, 2); int bubbleAnimation = UnityEngine.Random.Range(0, 2);
SoundByte.PlayOneShotGame("manzai/"+sfxDefs[1].sfx, pitch: Conductor.instance.songBpm/98); //SoundByte.PlayOneShotGame("manzai/"+sfxDefs[1].sfx, pitch: Conductor.instance.songBpm/98);
ScheduleInput(beat, 2.5f, InputAction_BasicPress, BoingJust, BoingMiss, Nothing); ScheduleInput(beat, 2.5f, InputAction_BasicPress, BoingJust, BoingMiss, Nothing);
BeatAction.New(instance, new List<BeatAction.Action>() BeatAction.New(instance, new List<BeatAction.Action>()