Jump to content
Korean Random
night_dragon_on

[Замена звуков / Sound changing] Звуки на различные события

Recommended Posts

пробуй эти

 свитч (переключатель)

sequence --последовательность

пробовал не работает 

Share this post


Link to post

Short link
Share on other sites

пробовал не работает 

 

'Перетащи звуки в плей лист (справа)'

 

37df5b71a7c8.png

 

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

night_dragon_on

Подскажи, почему звук полной зарядки орудия отстает от выстрела. Я уже выстрелил, а мне после выстрела говорят что оно заряжено? в чем может быть проблема

Я собрал один контейнер с разными звуками не может быть из за "тяжести" его?

Share this post


Link to post

Short link
Share on other sites

Я собрал один контейнер с разными звуками не может быть из за "тяжести" его?

 

Без понятия, я больших не собирал.

Share this post


Link to post

Short link
Share on other sites

а вообще какой стандарт для банк. сколько можно звуков вставить в один банк?


или лучше для каждого события сделать свой банк?

Share this post


Link to post

Short link
Share on other sites

или лучше для каждого события сделать свой банк?

 

Перебор, не оправдано это. Лучше грузить в память много звуков из одного банка чем кучу банков загнать в память и по одному звуку выдирать из них (производительность чтения будет ниже думаю).

Edited by night_dragon_on
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Любой ресурс игры из папки res/packages можно распаковать архиватором в папку с аналогичным названием добавив к названию в конце .pkg .

post-17199-0-65294900-1458322694.jpg

И игра будет его благополучно считывать ( из любого места указав путь в paths.xml).

 

Какой полный список имени файлов и их назначение в нынешней озвучке и какое именно расширение в оригинальном файле voiceover.bnk? Может игра их тоже захавает по способу выше? Накидав звук.файлы в папку res_mods\0.9.14\audioww.bnk .

Share this post


Link to post

Short link
Share on other sites

Какой полный список имени файлов и их назначение в нынешней озвучке и какое именно расширение в оригинальном файле voiceover.bnk? Может игра их тоже захавает по способу выше? Накидав звук.файлы в папку res_mods\0.9.14\audioww.bnk .

Короткий ответ - нет.

 

Длинный ответ:

В файле .bnk нет файлов в обычном понимании, там есть события и звуковые потоки. И те и другие хранятся без имени, хранится только номер.

Когда игре надо проиграть некий звук, например звук лампы с именем "lightbulb" она вычисляет хэш от этого имени, и говорит звуковому движку вызвать событие с номером 2031596562

Движок находит событие с кодом 2031596562 и видит что у события есть действие Play с кодом 123456, которое ссылается на звуковой поток с кодом 234567, который находится в .bnk файле по смещению 987656.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Без понятия, я больших не собирал.

Я собрал всё по твоему гайду. Есть рандомные контейнеры с 68 и 73 звуками, всё ок. Запилил озвучку Дюка через sound_notifications, пришлось делать 3 wwise проекта, итого около 450 звуков с критами. Всё отлично работает!

night_dragon_on, я от души хочу сказать тебе и всем твоим коллегам, с чьей помощью ты создал этот гайд, огромное человеческое спасибо! =)

 

Edited by AXE

Share this post


Link to post

Short link
Share on other sites

'Перетащи звуки в плей лист (справа)'

 

37df5b71a7c8.png

 

...вот это бы тоже в шапку добавить.

Share this post


Link to post

Short link
Share on other sites

@night_dragon_on, для отключения звука по событиям нужен пустой звук. Нет такого случайно в родных банках?

 

 

Залил пока предварительную версию. Вроде все работает, только пока что при отключении звуков в лог ошибка пишется. Надо или пустой звук воспроизводить, или кое-что в коде еще допилить.

Что нового:

 

1. можно грузить произвольные звуковые банки, причем отдельно для ангара и боя:

    // List of extra banks to load from folder res_mods/X.Y.Z/audioww.
    // Use semicolon for multiple values: "bank1.bnk; bank2.bnk;..."
    // Список дополнительных банков для загрузки из папки res_mods/X.Y.Z/audioww.
    // Несколько банков необходимо указывать через точку с запятой: "bank1.bnk; bank2.bnk;..."
    "soundBanks": {
      "hangar": null,
      "battle": "xvm.bnk;"
    },

Файлы должны быть в audioww, из других мест не грузит. Но копировать всю папку audio не нужно, поэтому мы включим xvm.bnk в релизе сразу в нужном месте, и отдельно его копировать не надо будет.

 

 

2. для добавленных событий поменялся путь (добавилось "events"):

    // Sound events added by XVM
    // Звуковые события, добавленные в XVM
    "events": {
      // Perk SixthSense
      // Перк Шестое чувство
      "sixthSense": "sixthsense",
      // Perk SixthSense (On vehicle Т-34-85 Rudy)
      // Перк Шестое чувство (На технике Т-34-85 Rudy)
      "sixthSenseRudy": "sixthSenseRudy",
      // Fire alert
      // Пожар
      "fireAlert": "fireAlert",
      // Damage ammoBay
      // Повреждение боеукладки
      "ammoBay": "ammoBay"
    },

3. можно включить логгирование событий, чтобы не лазить по xml и не угадывать что это за событие:

    // Enable sound events logging in the xvm.log
    // Включить логгирование звуковых событий в xvm.log
    "logSoundEvents": false,

4. Ну и сделана возможность переопределения или отключения любых событий:

    // Sound events remapping
    // Переопределение звуковых событий
    "soundMapping": {
      // Event mapping
      // Переопределение события
      //"originalEventName": "newEventName"
      // To disable sound event use empty string for value
      // Для отключения звукового события используйте пустую строку для значения
      //"originalEventName": ""
    }
Edited by sirmax
  • Upvote 6

Share this post


Link to post

Short link
Share on other sites

 

@night_dragon_on, для отключения звука по событиям нужен пустой звук. Нет такого случайно в родных банках?

 

 

Имхо, plane_silence должен подойти.

Share this post


Link to post

Short link
Share on other sites

@sirmax какие ошибки?

[sOUND_ERROR] Sound fail: 2166136261 Code: 15

Имхо, plane_silence должен подойти.

В ангаре не находит, в бою не проверял. А в каком он банке?

Share this post


Link to post

Short link
Share on other sites

[sOUND_ERROR] Sound fail: 2166136261 Code: 15

полностью замени функцию на свою, не вызывай через overrideMethod, мне помогло

Share this post


Link to post

Short link
Share on other sites

полностью замени функцию на свою, не вызывай через overrideMethod, мне помогло

Плохой совет :)

Я знаю как в коде сделать, но это не красиво. Лучше пустой звук проигрывать.

Share this post


Link to post

Short link
Share on other sites

Плохой совет :)

Я знаю как в коде сделать, но это не красиво. Лучше пустой звук проигрывать.

да, не красиво

А из за чего такая ошибка, я так и не понял, просто забил

Share this post


Link to post

Short link
Share on other sites

А из за чего такая ошибка, я так и не понял, просто забил

Из-за того, что так реализован класс WWISE. Это нативный класс, зашитый в .exe. Если не находит звуковое событие, пишет эту ошибку. То есть тут или надо все вызовы WWISE переопределять и не вызывать нативную функцию, если event == '', или же проиграть валидный пустой звук.

Share this post


Link to post

Short link
Share on other sites

[sOUND_ERROR] Sound fail: 2166136261 Code: 15

В ангаре не находит, в бою не проверял. А в каком он банке?

Я его в environment sounds видел, в каком банке не знаю.

Из-за того, что так реализован класс WWISE. Это нативный класс, зашитый в .exe. Если не находит звуковое событие, пишет эту ошибку. То есть тут или надо все вызовы WWISE переопределять и не вызывать нативную функцию, если event == '', или же проиграть валидный пустой звук.

Не совсем так. 

Звук играется WWISE.WW_eventGlobal(event), где event - имя события. Как я выше писал, в банках нет имен, только хэши. Если мы передаем пустую строку, то WWISE посчитает от нее хэш

который и будет равен 2166136261, и не найдет событие с таким хэшем.

Проверить просто

import sys
import re

def fnv32( str ):
    hval = 0x811c9dc5
    fnv_32_prime = 0x01000193
    uint32_max = 2 ** 32
    for s in str:
        hval = (hval * fnv_32_prime) % uint32_max
        hval = hval ^ ord(s)
    return hval

print fnv32('')
> 2166136261

А что мешает добавить пустой звук в xvm.bnk?

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...