Page 1 of 1

Goromorg Missing Sound *Solved*

Posted: Fri Feb 19, 2016 5:06 am
by Echoplex
Hello Everyone,

Haven't posted in a long while and its been over a year since I created Princes of Pale Moon mod but I'm ramping up to hopefully do a sequel mod and this time a bit more elaborate since asset packs are now available. I am however a bit rusty and honestly, a poor Lua scripter to begin with. Specifically im stumped on how to get the Goromorg going. I've searched the forums and understand that I need to fill in the missing sounds etc. Thats super and all but I still cant get him to work. I keep getting hit with a "[string "soundSystem.lua"] :0: File not found: assets/samples/monsters/goromorg_walk_01.wave". What I did was I pulled the goromorg lau from the asset 2 pack, placed it in my mod_assets/script folder for my mod. Then I updated my "Inti" Lua with "import "assets/scripts/monsters/goromorg.lua" "

I'm sure I'm missing something silly and someone could probably solve this lickety split so here I am.

Code: Select all

    defineObject{
       name = "goromorg",
       baseObject = "base_monster",
       components = {
          {
             class = "Model",
             model = "assets/models/monsters/goromorg.fbx",
             storeSourceData = true,
          },
          {
             class = "Animation",
             animations = {
                idle = "assets/animations/monsters/goromorg/goromorg_idle.fbx",
                moveForward = "assets/animations/monsters/goromorg/goromorg_walk.fbx",
                strafeLeft = "assets/animations/monsters/goromorg/goromorg_strafe_left.fbx",
                strafeRight = "assets/animations/monsters/goromorg/goromorg_strafe_right.fbx",
                turnLeft = "assets/animations/monsters/goromorg/goromorg_turn_left.fbx",
                turnRight = "assets/animations/monsters/goromorg/goromorg_turn_right.fbx",
                attack = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
                getHitFrontLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_front_left.fbx",
                getHitFrontRight = "assets/animations/monsters/goromorg/goromorg_get_hit_front_right.fbx",
                getHitBack = "assets/animations/monsters/goromorg/goromorg_get_hit_back.fbx",
                getHitLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_left.fbx",
                getHitRight = "assets/animations/monsters/goromorg/goromorg_get_hit_right.fbx",
                fall = "assets/animations/monsters/goromorg/goromorg_get_hit.fbx",
             },
             currentLevelOnly = true,
          },
          {
             class = "Monster",
             meshName = "goromorg_mesh",
             hitSound = "slime_hit", -- identical to goromorg_hit
             dieSound = "goromorg_die",
             hitEffect = "hit_dust",
             capsuleHeight = 0.8,
             capsuleRadius = 0.25,
             collisionRadius = 0.8,
             health = 400,
             protection = 0,
             exp = 1000,
             immunities = { "sleep", "blinded" },
          },
          {
             class = "GoromorgBrain",
             name = "brain",
             sight = 5,
             seeInvisible = true,
             allAroundSight = true,
             morale = 100,
          },
          {
             class = "MonsterMove",
             name = "move",
             sound = "dark_acolyte_walk",
             cooldown = 1,
             animationSpeed = 1.3,
          },
          {
             class = "MonsterTurn",
             name = "turn",
             sound = "dark_acolyte_walk",
             animationSpeed = 1.5,
          },
          {
             class = "MonsterAttack",
             name = "rangedAttack",
             attackPower = 40,
             cooldown = 6,
             animation = "attack",
             sound = "wizard_ranged_attack",
             onAttack = function(self)
                local h = 1.4
                
                local r = math.random()            
                if r < 0.45 then
                   -- cast fireball
                   self.go.monster:shootProjectile("fireball_large", h, 40)
                elseif r < 0.7 then
                   -- cast lightning bolt
                   self.go.monster:shootProjectile("lightning_bolt_greater", h, 40)
                elseif r < 0.8 then
                   -- cast poison bolt
                   self.go.monster:shootProjectile("poison_bolt", h, 40)
                else
                   -- cast ice shards
                   local dx,dy = getForward(self.go.facing)
                   local spell = spawn("ice_shards", self.go.level, self.go.x + dx, self.go.y + dy, self.go.facing, self.go.elevation)
                   spell.tiledamager:setAttackPower(40)
                end
             end,
          },
          {
             class = "GoromorgShield",
          },
          {
             class = "Particle",
             parentNode = "light1",
             particleSystem = "goromorg_lantern",
          },
          {
             class = "Light",
             parentNode = "light1",
             color = vec(0.5, 1.0, 2.5),
             brightness = 4,
             range = 4.5,
             fillLight = true,
          },
       },
    }
    defineMaterial{
       name = "goromorog1",
       diffuseMap = "assets/textures/monsters/goromorg_dif.tga",
       specularMap = "assets/textures/monsters/goromorg_spec.tga",
       normalMap = "assets/textures/monsters/goromorg_normal.tga",
       doubleSided = false,
       lighting = true,
       alphaTest = true,
       blendMode = "Opaque",
       textureAddressMode = "Wrap",
       glossiness = 20,
       depthBias = 0,
    }
        defineSound{
       name = "goromorg_walk",
       filename = {
          "assets/samples/monsters/wizard_warp_01.wav",
          "assets/samples/monsters/wizard_warp_02.wav",
          "assets/samples/monsters/wizard_warp_03.wav",
          },
       loop = false,
       volume = 0.2,
       minDistance = 2,
       maxDistance = 12,
       }

    defineSound{
       name = "goromorg_footstep",
       filename = {
          "assets/samples/monsters/wizard_warp_01.wav",
          "assets/samples/monsters/wizard_warp_02.wav",
          "assets/samples/monsters/wizard_warp_03.wav",
          },
       loop = false,
       volume = 0.1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_attack",
       filename = "assets/samples/monsters/wizard_ranged_attack_01.wav",
       loop = false,
       volume = 1.5,
       minDistance = 2,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_hit",
       filename = {
          "assets/samples/weapons/hit_bone_01.wav",
          "assets/samples/weapons/hit_bone_02.wav",
          "assets/samples/weapons/hit_flesh_01.wav",
          },
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/uggardian_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineAnimationEvent{
       animation = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
       event = "attack",
       frame = 10,
    }
    defineParticleSystem{
       name = "goromorg_lantern",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.25},
             color0 = {0.08, 0.11, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
             objectSpace = false,
          },

          -- flames
          {
             emissionRate = 30,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.07, 0.03},
             boxMax = { 0.03, -0.07,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.1, 0.4},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 45,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = false,
             color0 = {1.5, 1.5, 1.5},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.17, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- inner glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,-0.05,0.0},
             boxMax = {0,-0.05,0.0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {0.5, 0.5},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- outer glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,0},
             boxMax = {0,0,0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 0.25,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          }
       }
    }
    defineParticleSystem{ -- used for diamond edge boss
       name = "goromorg_torch",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.75},
             color0 = {0.15, 0.15, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
          },

          -- flames
          {
             emissionRate = 50,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.03, 0.03},
             boxMax = { 0.03, 0.03,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.2, 1},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 35,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = true,
             color0 = {2, 2, 2},
             color1 = {1.0, 1.0, 1.0},
             color2 = {0.25, 0.5, 1.0},
             color3 = {0.1, 0.3, 1.0},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.35, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = 0.1,
          },

          -- glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,-0.1},
             boxMax = {0,0,-0.1},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.08, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = 0.1,
          }
       }
    }
    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/tentacles_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
    }
I apologize if this is beneath folks at this point however this is new territory for me. I unfortunately couldn't extrapolate a solution from the forum search as i'm apparently lacking something here. Any assistance would be much appreciated. Thank you

Re: Goromorg Missing Sound

Posted: Fri Feb 19, 2016 6:31 am
by minmay
Some of the assets from Grimrock 1 are not included in grimrock2.dat since they are not used in Grimrock 2. The goromorg and scavenger sounds are examples of this. Sounds are not in the asset packs and it would be against the EULA to extract the goromorg sounds from Grimrock 1 and use them in a Grimrock 2 mod. Here is a definition that uses different default sounds.

Code: Select all

    -- for the "retro" inquisitor room, define goromorgs. goromorg sounds aren't in
    -- grimrock2.dat so we have to replace them
    defineObject{
       name = "goromorg",
       baseObject = "base_monster",
       components = {
          {
             class = "Model",
             model = "assets/models/monsters/goromorg.fbx",
             storeSourceData = true,
          },
          {
             class = "Animation",
             animations = {
                idle = "assets/animations/monsters/goromorg/goromorg_idle.fbx",
                moveForward = "assets/animations/monsters/goromorg/goromorg_walk.fbx",
                strafeLeft = "assets/animations/monsters/goromorg/goromorg_strafe_left.fbx",
                strafeRight = "assets/animations/monsters/goromorg/goromorg_strafe_right.fbx",
                turnLeft = "assets/animations/monsters/goromorg/goromorg_turn_left.fbx",
                turnRight = "assets/animations/monsters/goromorg/goromorg_turn_right.fbx",
                attack = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
                getHitFrontLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_front_left.fbx",
                getHitFrontRight = "assets/animations/monsters/goromorg/goromorg_get_hit_front_right.fbx",
                getHitBack = "assets/animations/monsters/goromorg/goromorg_get_hit_back.fbx",
                getHitLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_left.fbx",
                getHitRight = "assets/animations/monsters/goromorg/goromorg_get_hit_right.fbx",
                fall = "assets/animations/monsters/goromorg/goromorg_get_hit.fbx",
             },
             currentLevelOnly = true,
          },
          {
             class = "Monster",
             meshName = "goromorg_mesh",
             hitSound = "slime_hit", -- identical to goromorg_hit
             dieSound = "goromorg_die",
             hitEffect = "hit_dust",
             capsuleHeight = 0.8,
             capsuleRadius = 0.25,
             collisionRadius = 0.8,
             health = 400,
             protection = 0,
             exp = 1000,
             immunities = { "sleep", "blinded" },
          },
          {
             class = "GoromorgBrain",
             name = "brain",
             sight = 5,
             seeInvisible = true,
             allAroundSight = true,
             morale = 100,
          },
          {
             class = "MonsterMove",
             name = "move",
             sound = "dark_acolyte_walk",
             cooldown = 1,
             animationSpeed = 1.3,
          },
          {
             class = "MonsterTurn",
             name = "turn",
             sound = "dark_acolyte_walk",
             animationSpeed = 1.5,
          },
          {
             class = "MonsterAttack",
             name = "rangedAttack",
             attackPower = 40,
             cooldown = 6,
             animation = "attack",
             sound = "wizard_ranged_attack",
             onAttack = function(self)
                local h = 1.4
                
                local r = math.random()            
                if r < 0.45 then
                   -- cast fireball
                   self.go.monster:shootProjectile("fireball_large", h, 40)
                elseif r < 0.7 then
                   -- cast lightning bolt
                   self.go.monster:shootProjectile("lightning_bolt_greater", h, 40)
                elseif r < 0.8 then
                   -- cast poison bolt
                   self.go.monster:shootProjectile("poison_bolt", h, 40)
                else
                   -- cast ice shards
                   local dx,dy = getForward(self.go.facing)
                   local spell = spawn("ice_shards", self.go.level, self.go.x + dx, self.go.y + dy, self.go.facing, self.go.elevation)
                   spell.tiledamager:setAttackPower(40)
                end
             end,
          },
          {
             class = "GoromorgShield",
          },
          {
             class = "Particle",
             parentNode = "light1",
             particleSystem = "goromorg_lantern",
          },
          {
             class = "Light",
             parentNode = "light1",
             color = vec(0.5, 1.0, 2.5),
             brightness = 4,
             range = 4.5,
             fillLight = true,
          },
       },
    }
    defineMaterial{
       name = "goromorog1",
       diffuseMap = "assets/textures/monsters/goromorg_dif.tga",
       specularMap = "assets/textures/monsters/goromorg_spec.tga",
       normalMap = "assets/textures/monsters/goromorg_normal.tga",
       doubleSided = false,
       lighting = true,
       alphaTest = true,
       blendMode = "Opaque",
       textureAddressMode = "Wrap",
       glossiness = 20,
       depthBias = 0,
    }
    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/tentacles_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
    }
    defineAnimationEvent{
       animation = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
       event = "attack",
       frame = 10,
    }
    defineParticleSystem{
       name = "goromorg_lantern",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.25},
             color0 = {0.08, 0.11, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
             objectSpace = false,
          },

          -- flames
          {
             emissionRate = 30,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.07, 0.03},
             boxMax = { 0.03, -0.07,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.1, 0.4},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 45,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = false,
             color0 = {1.5, 1.5, 1.5},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.17, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- inner glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,-0.05,0.0},
             boxMax = {0,-0.05,0.0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {0.5, 0.5},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- outer glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,0},
             boxMax = {0,0,0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 0.25,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          }
       }
    }

Re: Goromorg Missing Sound

Posted: Fri Feb 19, 2016 3:33 pm
by Echoplex
Thanks Minmay for the quick assistance. I was able to get him working and will start on fixing the other guys. Thanks again.