Jump to content
Sign in to follow this  
Assser

Как добавить и использовать пользовательские звуки в Sims3

Recommended Posts

В этом учебнике будет рассказано, как создать и правильно использовать различные (созданные пользователями) звуки и эффекты в ТС3. Как для использования в анимациях (см. тему озвучивание), так и для использование пользовательских звуков в модах с объектами Sims3. Тема создана на основе статей

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
и 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
, за что им огромная благодарность.

Для дальнейшей работы, вам потребуется загрузить и установить (при необходимости) следующие программы:

1.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
- редактор пакетов
2.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
- звуковой редактор (Возможно, вам придется скачать

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
, чтобы иметь возможность экспортировать файлы MP3)

3.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
- Звуковой декодер (скачать версию
ealayer3-0.6.2, хотя вероятно подойдет и более свежая версия ealayer3-0.7.0-win32.zip)
4. cmd.exe - Командная строка Windows (найдите ее с помощью инструмента поиска Windows)
5.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
-
Редактор шестнадцатеричного кода.

Далее:

1. Ваш оригинальный звуковой файл должен быть в формате WAW, 16 бит, 44100 Гц или формата MP3 и длиться менее 1 минуты. Файлы должен быть стерео (моно пока не проверен).

2. Подготовьте аудиофайл. (Если необходимо, то отредактируйте его с помощью Audacity).

2.1. Откройте Audacity и импортируйте туда ваш файл. (необязательно) - если вы знакомы с программой, вы можете настроить файл по своему вкусу перед экспортом окончательной версии.

2.2. Убедитесь, что для для вашего файла установлено значение сэмплирования 44100 (Гц), а формат сэмплирования - 32-бит (Стерео). Вы можете отредактировать его, нажав на стрелку, которая обведена на картинке.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

2.3. После того как ваш файл будет готов, экспортируйте его в MP3. (Убедитесь, что вы установили кодек

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
для Audacity.) следующим образом: File/Export sound... или Ctrl+Shift+E.

2.3.1. Введите имя файла, нажмите «Save as a type», выберите «MP3 files» из списка и нажмите «Options».

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

2.3.2. Установите значение Bit Rate Mode как: Variable, Quality как: 3,155-195 kps, Variable Speed как: Standard, Channel Mode как: Joint Stereo. (См. рисунок ниже)

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

2.4. Теперь ваш файл готов к экспорту. Нажмите «ОК», проигнорируйте поле «Метаданные» и сохраните файл там, где вам удобно. Если хотите, то вы можете заменить «старый» MP3-файл. На этом работа с Audacity закончена.

3. Работа с EALayer3 (перекодирование готового файла МР3 в формат игры ТС3).

3.1. Скопируйте в папку  Ealayer файл cmd.exe (файл запуска консоли командной строки) и в открывшемся окне консоли, наберите команду следующего вида:

 

ealayer3 -E your_file.mp3 -o your_file.snr --single-block ,

 

где "your_file" это имя вашего mp3-файла. В итоге вы получите на выходе файл *.snr.

Аналогично,  если вам нужно получить файл *.sns, то наберите команду:

 

ealayer3 -E your_file.mp3 -o your_file.sns ,

 

где "your_file" это имя вашего mp3-файла и вы получите на выходе файл *.sns.

 

3.2. Теперь вам нужно изменить имя вашего файла. Если вам нужен в игре файл *.snr. То вам необходимо переименовать его следующим образом:

 

S3_01A527DB_001407EC_131F036BBEF3B4D2_new_file%%+_AUD.snr , где 131F036BBEF3B4D2 является хэшом названия файла new_file.

 

Следует помнить, что название файла (new_file) не должно содержать пробелов и букв русского языка.

Индекс 001407EC никогда не меняется, так как это признак звуковых файлов,  а индекс 01A527DB используется для файлов звука *.snr и соответственно для файлов эффектов *.sns используется индекс 01EEF63A. Эти действия необходимы, что бы в дальнейшем, игра "понимала", что это за файлы и как к с ними быть.

Для дальнейшей работы, вам необходимо сделать ОБА типа файлов:  *.snr и *.sns:

 

S3_01A527DB_001407EC_131F036BBEF3B4D2_new_file%%+_AUD.snr

и

S3_01EEF63A_001407EC_131F036BBEF3B4D2_new_file%%+_AUD.sns

 

Не забудьте  сделать резервную копию вашего файла МР3, на случай, если что-то пойдет не так.

 

4. Работа с HxD.

4.1. Откройте и настройте HxD. Для этого: Нажмите Additional/Options ... и в окне «View» отметьте/ выберите параметры. (Как на рисунке ниже).

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

4.2. Редактирование *.snr файла.

Откройте ваш *.snr файл в HxD и измените Offset на (h).

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Выберите и скопируйте первые восемь байт (16 цифр, организованных в 4 блока). Отметьте все, кроме первых 16 шестнадцатеричных цифр (восемь байт), а затем удалите все остальные данные: оставив только эти 16 цифр в начале файла (как показано выше)! Для этого, выделите все остальные данные, щелкнув правой кнопкой мыши + Выбрав все или Ctrl + A и нажав Удалить.

Поскольку мы усекаем файл .snr, то таким образом, меняем тип файла, с содержащего звуковые данные, на чистый файл заголовка без каких-либо звуковых данных. Для этого, мы должны изменить байт по адресу 04 на «40», чтобы сообщить движку игры, что это заголовок, а не файл, содержащий звуковые данные. Окончательная версия вашего .snr должна выглядеть так:

 

 

Адрес:          00        02       04       06
Значение:   0504   AC44  40XX  XXXX

 

Сохраните результат в новом файле и помните, что ваш новый файл, имеет тоже имя и расширение, что и ваш исходный файл *.snr. В итоге, вы создали файл с чистым заголовком, который в дальнейшем, будет связывать файл .snr с файлом .sns.

 

Примечание:

Насколько известно автору руководства (Flyby), существует два основных способа организации работы со звуковыми (исходнми) файлами в игре. Первый способ имеет работает только с двумя файлами: .snr-файлом (содержащем звуковые данные mp3-Layer3) и .audtun-файл (содержащем информацию о звуковом файле, его параметрах и правилах использования). Другой способ состоит в работе с тремя файлами: первый .snr-файл (содержит только заголовок), второй .sns-файл (звуковые-данные) и третий .audtun-файл (информацию).

Поскольку автору руководства не удалось использовать 2-х файловый способ (как он ни пытался), то мы должны выполнить работу  «трехфайловым способом».

Автор подробно исследовал звуковые звуковые файлы в пакете FullBuild1.package и обнаружил, что среди тех файлов, которые используют один файл .snr (и никаких других дополнительных .sns), многие начинаются непосредственно с 40. Поэтому, он сделал вывод, что значение 40 (шестнадцатеричное), которое мы записали в адрес 04, служит указанием того, что звуковой файл использует формат EALayer mp3. И следовательно, он должен присутствовать в шапке. Что касается байтов по адресу 06-07 (Не спрашивайте меня почему), то лучше их не трогать! Скорее всего они содержат данные о длине и количестве сэмплов.

 

4.3. Редактирование *.sns файла.

Теперь вам нужно отредактировать  *.sns  файл, который вы сгенерировали из оригинального МР3.  Откройте этот файл в редакторе HxD. Вы увидите много цифр! Прежде всего, нужно поискать шестнадцатеричные значения 0480, которые расположены по адресу: 0x06 (цифра 12-15). Примерно так:

 

Адрес:          00        02       04       06
Значение:   0000   0153   0000  0480

 

Измените первые четыре шестнадцатеричные цифры (или 2 байта) на: «002F», теперь первые восемь байт вашего файла должны выглядеть так:

 

Адрес:          00        02       04       06
Значение:   0000   0153   0000  002F

 

Посмотрите на адреса 02-03. В нашем примере это 0153. Нажмите Ctrl + G, введите 0153 и нажмите OK. Редактор перенаправляет вас на нужный адрес. Обычно это два нулевых байта (0000), начиная с этого адреса. Эти два байта, а также все последующие байты будут смещены на новую позицию, когда вы вставите специальный блок кода. Крайне важно будет найти их новую позицию после того, как вы завершите вставку кода,  потому что индекс в байтах 02-03 должен быть изменен на этот новый адрес.

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Загрузите файл

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
и сохраните файл на рабочем столе. Затем, откройте архив и распакуйте файл CodeBlock (C4) .sns на рабочий стол. После чего, откройте этот файл с помощью HxD. В HxD скопируйте из этого файла, весь код (Ctrl + A + Ctrl + C) и вставьте его (Ctrl + V) туда, куда вы были перенаправлены в Вашем файле.

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Положение курсора после вставки кода будет указывать на новый адрес. Вы можете видеть это как число Offset в левом нижнем углу. В данном случае это 217. Теперь замените адреса 02-03 на новый адрес. Адрес должен состоять из 4 цифр, поэтому мы добавляем 0 перед адресом, так что это 0217 (Было 0153, а стало 0217). После чего сохраните ВАШ файл (Сохранить изменения Ctrl + S).

 

5. Если вы соберете оба полученных файла в пакет (с по мощью S3Pe). То если верить автору Wojtek, этого должно быть достаточно для использования их в озвучке анимации OKW (См. тему).

 

6. Если же вы собираетесь создать мод или объект с индивидуальной озвучкой, то вам нужно подготовить еще один файл, необходимый для управления информацией двух других, чтобы иметь возможность «направить» поток mp3-звука в нужный слот. В игре есть несколько слотов, которые могут подхватывать или маршрутизировать звуковые потоки и назначать им дополнительные параметры. Особенно такие как усиление, скорость, трехмерное (пространственное) звучание и.т.д.. Вы можете думать об этих слотах или интерфейсах как о подканалах звукового микшера.
Для этого, нам понадобится файл типа .audtun. Идентификационный код или индекс этого типа файла:
S3_8070223D_001407EC.
Имя этого файла может отличаться от имен файлов, которыми он должен управлять. Итак, давайте дадим ему немного другое имя, чтобы убедиться, что связь все еще очевидна, например, «new_fileA». Имя файла .audtun должно иметь следующий формат:

 

S3_8070223D_001407EC_hashcode_new_fileA %% + AUDT.audtun, чтобы потом его тоже можно было бы добавить в пакет (с помощью S3Pе).

 

Хеш-код названия new_fileA: 0x7167A215781C40B7. Поэтому правильное имя этого файла должно быть:  S3_8070223D_001407EC_7167A215781C40B7_new_fileA %% + AUDT.audtun

 

Вы можете использовать шаблон .audtun, предоставленный в этой теме

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
, для создания вашего файла audtune. Он направит ваш звук в UI-слот (или микшер-подгруппу), который выводит звук напрямую, без учета окружающей среды или положения/расстояния до объекта. (UI-слот) - это самый простой интерфейс. Есть и другие, такие как sting-слот, музыкальный слот, ambiance-слот и т. д.,  с которыми просто сложнее работать. Итак, для начала, давайте возьмем UI-слот. Переименовав копию этого шаблона, откройте его в Hex-редакторе. Когда вы посмотрите на него, то вы можете легко идентифицировать два блока по четыре байта по значению FF, выглядя так: FFFF FFFF. Перед первым из этих блоков вы видите 8 байтов (в формате Little Endian), которые определяют, к какому звуковому слоту направляется управляемый mp3-поток: это просто хеш-код этого конкретного слота.
Но нам нужно сконцентрироваться на 8 байтах перед вторым появлением в четыре раза больше FF (FFFF FFFF). В файле шаблона я переписал этот блок из 8 байтов с восемью байтами «22», поэтому его легко найти. Здесь мы должны заполнить (общий) хеш-код наших .snr и .sns-файлов. Этот код: 131F036BBEF3B4D2 («новый_файл»).
Поскольку bcgjkmpetncz формат Little-Endian (
прямой порядок байтов), то мы должны поместить этот код побайтно в «неправильном направлении», прежде чем вставлять его в файл .audtun.
Результат (в нашем примере) будет D2B4F3BE6B031F13. После того, как вы «перевернулис» байты, то все, что вам нужно сделать, это вставить их перед вторым блоком FFFF FFFF вместо 8 байтов-заполнителей (2222 22222 2222 22222).

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Вот и все. Вы закончили работу, теперь вы можете импортировать файлы в пакет с помощью S3Pе (просто перетащив их!).

 

7. Последний раздел посвящен тому, как использовать (или «вызывать») свой собственный звук из своего программного кода.

В SimIFace.Audio есть простой метод обращения к звуковому файлу, который вы можете использовать для запуска звука в любое время из любого места в вашем коде.
(все примеры в C#):

 

Audio.StartSound("sound_name"); // (Это статический метод, и поэтому)

 

Это кажется довольно простым способом. Однако, используя этот метод, вы можете столкнуться с проблемами. (По крайней мере, это случилось со мной.)
Я заметил, что иногда, после неопределенного количества обращений, звук становится недоступным , а в некоторых случаях, моя игра даже падает. Вот почему я считаю такой способ обращаться к звуковому файлу - небезопасным методом.

В моем моде MODoor-Controller_v_3.2 (который доступен для скачивания на MTS) я впервые использовал собственные звуки, созданные способом, описанным выше. Звуки применяются к пользовательскому интерфейсу двери или (если быть более точным), к Object-Picker-Boxes, которые позволяют пользователям выбирать симов в качестве владельцев ключей и так далее. Если вы щелкнете по имени в списке симов, то иконка в конце этой строки изменится, и в то же время появится звук. Если вам интересно, скачайте его и убедитесь сами (имя файла - «MODoor-Controller_1.2.rar»). Это файл, который содержит код. Вам нужен по крайней мере один из клонированных файлов дверей, чтобы запустить мод, например, '01_MODoorV3_Luxery ...')

Я использовал другой метод вызова пользовательских звуков в моем скрипте, который немного сложнее, чем (небезопасный) метод, описанный выше. Во всяком случае - он оказался безопасным:
Переменная типа «Sims3.SimIFace.Sound» назначается для каждого звука, используемого в пользовательском классе (контролирующем Object.Picker).
Вы получаете несколько новых (Sound-) объектов в качестве новых экземпляров класса 'Sound':

Code:

using Sims3.SimIFace;

...

       

public class PickerBox : ModalDialog





    {

       ...

        private Sound mSting_1 = new Sound("sound_name_a");

        private Sound mSting_2 = new Sound("sound_name_b");

        private Sound mSting_3 = new Sound("sound_name_c");

       ...

	private Sound mlastSound;

       ...

       ...

    }

 

Поскольку вы имеете дело с объектами типа Sound, вы можете получить доступ (почти) к любому методу или параметру в этом классе или родительских классах. И таким образом, теоретически иметь возможность управлять такими вещами, как громкость, панорамирование, fx, в качестве пост-обработки. Файл, который вы вызываете (к которому обращаетесь), всегда является файлом .audtun. В инструкции я упомянул, что файл .audtun должен иметь имя, немного отличающиеся от двух других (.snr и .sns). В моем случае я решил направить audtun к UI-подканалу, что имеет смысл, потому что мои звуки предназначены для воспроизведения в UI-контексте (Object-Picker-Box). Конечно же, вы можете перенаправить звук и на другие интерфейсы...
Инструкции для вызова звуков могут быть выполнены следующим образом:

Code:
 	if ((this.mlastSound != null) && this.mlastSound.IsPlaying()) // calling method 'isPlaying'

									      // in Class 'SimIFace.Sound'

		

		// make sure the sound is stopped before the next one starts to avoid clash  				

		// or buffer overflow(?))                



		{

                    this.mlastSound.Stop(); // calling method Stop()

                }



                this.mlastSound = playSting; // remember the name of the current sound.



                if (playSting != null)		



                {

                    playSting.Start(); // calling Sound.Start()

                }

 

Эти строки должны быть размещены в методе, который реагирует на событие. В MODoor их можно найти в: 

 

'private void SelectionChanged (List <ObjectPicker.RowInfo> selectedRows)';

Это почти все ...

 

В конце концов я немного "прибрался". Следующий код находится в: 'protected override bool OnEnd (uint endID)', который вызывается, когда пользователь нажимает кнопку "ОК" в окне выбора (и окно закрывается):

Code:

if (this.mlastSound != null)

            	{

                    this.mlastSound.Dispose();

            	}

            	this.mSting_1.Dispose();

            	this.mSting_2.Dispose();

            	this.mSting_3.Dispose();            

            	return true;

 

Если честно, я не уверен, действительно ли это необходимо, но лучше подстраховаться.

 

Тема создана по материалам статей:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
и 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Edited by Assser
  • Like 3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By q2werty
      Посвещаем данную тему отличному моду для игры Sims 3
       
       
      Kinky World
       

       
      Обсуждаем, помогаем друг другу с игровыми трудностями и складируем все ресурсы в одном месте, чтобы людям было проще их достать.
       
      Рекомендуемый репак для игры - 
      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  
      Итак, сам мод крайней версии можно скачать Hidden Content
      Give reaction or reply to this topic to see the hidden content. . *требуется регистрация на 
      Hidden Content
      Give reaction or reply to this topic to see the hidden content. Информацию о работе свежих версий мода ищите в крайних сообщениях этой темы.
       
      Крайняя версия - см. в закладке рекомендаций (наверху темы).
      Описание настроек на русском языке -
      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  (страница вики).  
       
      Пакеты анимации: (не путать с ANIMATED WOOHOO!!! Пометка в пакетах - AW. Для Kinky World - KW)
       
      Пакеты анимации (основные) можно скачать в ЭТОМ разделе.
       
      Как добавить пакет анимаций:
       
       
       

      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  
      В качестве десенсора и тонкой настройки игры в плане интимных отношений неплохо сочетаются моды NRaas:

      Hidden Content
      Give reaction or reply to this topic to see the hidden content.
      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  
      Hidden Content
      Give reaction or reply to this topic to see the hidden content.
       
       
      Hidden Content
      Give reaction or reply to this topic to see the hidden content. для Kinky World (со школьной формой) - Hidden Content
      Give reaction or reply to this topic to see the hidden content.
      Тема по обсуждению общих вопросов по функционированию и настройке школы - Hidden Content
      Give reaction or reply to this topic to see the hidden content.
      Установка и настройка:
       
       
       
      Машины
      поддерживаемые Kinky World
      Hidden Content
      Give reaction or reply to this topic to see the hidden content. .
      Используются анимации L666.
       
      ***
       
      ВИДЕО КАНАЛЫ КИНКИ
      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  ( Hidden Content
      Give reaction or reply to this topic to see the hidden content. на Ловерслаб)
      увеличенный вариант - Hidden Content
      Give reaction or reply to this topic to see the hidden content.  (Ловерслаб)

      Hidden Content
      Give reaction or reply to this topic to see the hidden content. видео можно посмотреть.  
      Oniki kinky world build
    • By GreedyGoblin
      Вашему вниманию предлагается Королева Элен:

      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  
       

      Hidden Content
      Give reaction or reply to this topic to see the hidden content.  
      Собственным контентом из Sims3 я уже делился, но вот симами - делюсь первый раз.
       
      Я сделал немало попыток сделать в симсредакторе действительно красивую симку.  Эта - одна из удачных.
       
       
      Шмотки со скриншотов можно найти в моей коллекции:
      P.S. Люблю лайки!
       
       
      UPD_1.01: добавил скринов.  Прямые ссылки на добавленные в апдейт картинки по прошествии времени почему то превращаются в тыкву.  Поэтому ссылки ведут в гуглдрайв.
×

Important Information

By using this site, you agree to our Terms of Use.