Теги:

Автор Тема: Создание темы "Вводный курс в моддинг игры"  (Прочитано 6219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Хантер, вот то, что я наваял по поводу скелетной анимации и module.ini. В module.ini я, правда, в основном только перевел те комменты, которые там уже были - моих добавок там совсем немного.

Скелетная анимация

Module.ini
module. ini- Initialization file. Как мы видим из названия- это файл инициализации (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. По другому, это файл конфигурации. В этом файле задаются параметры загрузки ресурсов игры и к тому же определяются некоторые общие параметры (переменные), которые задают, определённые числовые переменные- определяющие характеристику действия. В некоторых параметрах указаны конкретные числовые значения, где то указаны переменные используемые, при вычислении, а где то просто включение или отключение этого параметра, путём указания значения, или 0- выключено, или 1 - включено. Сейчас мы разберёмся, что там внутри этого файла. Сразу замечу что вот этот знак #- комментарий, определяет игнорирование этой строки( просто пояснение для нас). Основной записью этого файла является- значения параметров — строки вида «имя_параметра = значение».
« Последнее редактирование: 19 Июня, 2012, 22:04 от Romitas »

Постараемся отобразить всё, что может быть подвергнуто моддингу и все файлы игры.
Что есть на данный момент:

http://rusmnb.ru/index.php?board=160.0
http://rusmnb.ru/index.php?topic=671.0
http://rusmnb.ru/index.php?topic=3091.0
Может что упустил, =/ подскажите.

План темы
1. Общие понятия моддинга и вообще структуры функционирования игры.
2. Перечень всех файлов игры, их функционал и общие понятия.
3. Перечень большинства используемых программ, и их принадлежность к файлам. Тут постараться упомянуть все возможные, плюс дать ссылку на наш инструментарий.  Все программы надо упомянуть с точным названием, что бы был смысл скопипастить и гуглить, если у нас нет.
4. Словарь терминов, вообще не плохо и жаргон сюда включить, так как часто мы не осознано пользуемся им при каком то объяснении или ответах.

 
Моя конфигурация:
Нормальная, мне хватает.

« Последнее редактирование: 25 Мая, 2012, 03:36 от HunterWolf »
Моя конфигурация:
Нормальная, мне хватает.

Цитировать (выделенное)
3. Интервалы у module_mission_templates действительно в секундах, а у module_simple_triggers и module_triggers в игровых часах. (24 - игровые сутки).
В module_mission_templates интервалы не в секундах, а если честно в фиг знает чем. Скорее всего в в фреймах (кадрах), а если точнее, то я так понял что в игре существуют определенные ключевые фреймы. Объяснить мне это сложно, если например выставить в триггере время срабатывания 1, то триггер будет срабатывать не один раз в секунду, а в каком то определенным движком фрейме, если выставить время срабатывания 0, то триггер будет срабатывать каждый фрейм (если в игре будет например 120 фпс - то триггер будет срабатывать 120 раз в секунду, если 15 - то 15 раз в секунду). Каким образом движок выбирает ключевой фрейм я не знаю.

Этот материал подходит даже скорее не для вводного курса, а для уже более продвинутых моддеров, но все равно довольно интересно. Для вводного курса попробую из этого вычленить и перекомпилить более-менее простые вещи, но пока что вот полный вариант перевода. Автор - Swyter, источник - http://forums.taleworlds.com/index.php/topic,187434.0.html.



Итак, что содержит этот список:
  • Все параметры module.ini
  • Зашитые в движок модели (в основном детали интерфейса), текстуры, коллизионки, шейдеры и т. д.
  • Допустимые шейдерные переменные
  • Перечень того, что НЕЛЬЗЯ удалять из папки МС (Все остальное кроме этого можно удалить и получить девственно чистую, но вполне рабочую версию модульки)
  • «За кулисами» (О внутренней работе движка игры)
  • И другое...

Все это было обнаружено при исследовании движка Warband.

ПРИНИМАЕМЫЕ ФОРМАТЫ ТЕКСТУР

ПРИНИМАЕМЫЕ ФОРМАТЫ РЕСУРСОВ

HTTP-ЗАПРОСЫ

ПОРЯДОК ЗАГРУЗКИ ФАЙЛОВ

ДОПОЛНИТЕЛЬНЫЕ КЛЮЧИ РЕЕСТРА

КОМАНДЫ ЗАПУСКА INTRO-ВИДЕО ПРИ ЗАПУСКЕ

ПАРАМЕТРЫ (КОМАНДЫ) MODULE.INI

МАТЕРИАЛЫ, ЗАШИТЫЕ В ДВИЖОК

ИГРОВЫЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ (GAME VARIABLES)

HunterWolf, есть скелетная анимация и module.ini. Посмотри первое сообщение.

Romitas, Спс, в ответ глянь я там по моделям написал, а что то скопипастил у Константы. Посмотри, как подходит
Моя конфигурация:
Нормальная, мне хватает.

HunterWolf, похоже, что все как нельзя лучше.


справлю орфографические, пунктуационные ошибки, стилистические шероховатости и др.
Ну тут ты ты прав это самый что не на есть:рабочийвариантчерновикпростоинфаводномместе  :D
Так что будет совершено по другому, я пока не проверял вообще не чего и вообще не чего не стилизовал и не подгонял слог. Всё это сделаю, как только добью в новой созданной теме , которая потом и перейдёт в раздел(общий), а эту переименую потом в другой проект что бы не удалять лишний раз.
Как добью пару моментов(жду когда человек напишит) , думаю завтра =/ сегодня уже начну готовую тему
 

Добавлено: 28 Мая, 2012, 17:21

Готов полностью принять это на себя и приму, если ты не возражаешь.
Я таки даже за, напишу готовый вариант и с удовольствием приму твою помощь по нему
Моя конфигурация:
Нормальная, мне хватает.

Инструментарий

Модульная система
  • gVim
    Бесплатный текстовый редактор, заточенный под программирование и написание кода.
  • Notepad++ (+ подсветка синтаксиса)
    Бесплатный текстовый редактор, заточенный под программирование и написание кода.
  • Module System Manager
    Программа, предназначенная для ускорения доступа к файлам мода и модульной системы в частности.

3D графика
  • OpenBRF
    Менеджер .brf – файлов, позволяющий просматривать и изменять содержимое .brf – архивов.
  • 3Ds Max (+ плагин .smd)
    Платный профессиональный 3D — редактор, использующийся для создания и редактирования 3D-моделей, скелетных и вертексных анимаций.
  • Blender (+ плагин .smd)
    Бесплатный профессиональный 3D — редактор, использующийся для создания и редактирования 3D-моделей, скелетных и вертексных анимаций.
  • Wings3D
    Бесплатный 3D — редактор, использующийся для создания и редактирования 3D-моделей.

Текстуры
  • Photoshop (+ плагин .dds)
    Платный профессиональный редактор изображений, использующийся для создания и редактирования текстур
  • Gimp (+ плагин .dds)
    Бесплатный профессиональный редактор изображений, использующийся для создания и редактирования текстур
  • Windows Texture Viewer
    Программа, предназначенная для быстрого просмотра .dds — текстур.

Диалоги
Инфа переведена с модвики


Стандартные переменные

Нескольким глобальным переменным и регистрам автоматически присваевается значение каждый раз, когда вы начинаете разговор с кем-либо, в связи с существованием записи диалога для предварительной обработки в самой верхней части стандартного module_dialogs.py.

  Переменная                                                         Значение

  $g_talk_troop                                                     Воин, с которым вы говорите
  $g_talk_agent                                                    Агент, с которым вы говорите
  $g_talk_troop_faction                                        Фракция воина, с которым вы говорите
  $g_talk_troop_relation                    Отношение игрока и воина, с которым вы говорите. От -100 до 100
  $g_talk_troop_effective_relation     Изменение уровня отношений, который удваивает положительное отношение игрока в Убеждение уровне 10 или удваивает отрицательное отношение игрока в Убеждение уровня 0.(???)
  $g_talk_troop_faction_relation       Отношения между фракцией игрока и воина, с которым вы говорите
  $g_talk_troop_party                                        Отряд говорящего (если есть)
  $g_current_hours                          Текущий час игры с самого начала, считая вверх от 0 до бесконечности.   
  $g_talk_troop_last_talk_time        Последний час игры с самого последнего диалога.
  $g_time_since_last_talk                 Разница между этими двумя значениями, в часах, для удобства.
  $g_talk_troop_met                       1, если игрок говорил с имеющим флаг tf_hero.
  $g_enemy_strength                       Сила всех отрядов врагов которые на глобалке.
  $g_ally_strength                           Сила всех отрядов союзников
  $g_strength_ratio                        $g_ally_strength / $g_enemy_strength



1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!

0
Ответ #11 : 29 Июня, 2013, 22:16
Условная строка - встроенное выражение в строке, которая вычисляется в одном из двух возможных значений, содержащиеся в данном регистре. Если регистр содержит ненулевое значение, первый выбор используется, в противном случае второй вариант используется. Любой выбор может быть пустым. Персоны, знакомые с программированием знают их как условные тернарные операции.

Использование условных строк

Условная строка отформатирована используя имя регистра, а затем знак вопроса "?" и строку, используемую если это истинна, за которым следует двоеточие ":" и строку, используемую как ложь, всё заключенные в фигурные скобки "{" и "}" (токены).

Распространенный пример условной строки ниже:
town{reg0?s:}Если reg0 не равен 0,  результат встроенного выражения даст "s", в противном случае он даст "" (пустая строка). Таким образом, окончательная результирующая строка будет иметь вид:
townsЕсли reg0 равен 0, то результирующая строка будет иметь вид:
town
Это основной метод создания множественного числа в Mount&Blade

Сложные условные строки

Условные строки могут быть внедрены в друг друга в любой желаемой комбинации, например:
{reg6?I:{reg7?You:{s11}}}
Появится надпись "I", если reg6 = 0, "You", если reg7 = 0, или содержимое регистра строки 11 (в данном случае, содержащая имя Господа), reg6 не равен 0 и reg7 не равен 0. Это компактный и элегантный метод.
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!

0
Ответ #12 : 30 Июня, 2013, 11:31
Быстрой строкой называется строка, которая не определена заранее module_strings.py. Она может быть использована в любом месте.

Конструкция

Быстрая строка записывается так же, как обычная строка, но она должна иметь начальный символ "@". Например, следующее выражение:
(str_store_string, s0, "comment_you_defeated_my_friend_enemy_pragmatic")также может быть записано в коде так:
(str_store_string, s0, "@You may have bested {s54}, but you cannot defeat us all.")
Предостережения

Повторяющиеся строки
Эффективная практика заключается в том, чтобы поместить любой текст, который вы будете использовать неоднократно в module_strings.py и избегать использование быстрых строк. Таким образом, если вы обнаружили, что есть опечатка или вам необходимо реорганизовать текст, вы можете просто выполнить одно редактирование и все копии текста также будут изменены.

Строки vs быстрые строки
Строки проще редактировать и локализовывать в module_strings чем, чтобы найти и редактировать текст внутри module_scripts и module_dialogs, но в то же время легче поддерживать совместный проект мод без гарантироваи, что новые строки случайно не исключены из module_strings в новой версии.
Если вы делаете подмодуль(submod), то, вероятно, лучше использовать быстрые строки непосредственно в диалоге или скрипте. Если вы делаете полный мод, это лучше сделать строки в module_strings и ссылки из диалога или скрипта на них.
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!

Теги: