• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

3D-моделинг и анимация: общие вопросы.

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
  • Первое сообщение
  • #1
Здесь обсуждаем все вопросы по созданию и редактированию любого вида анимации в 3д-редакторах... :)
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.409
Благодарности
3.239
Баллы
525
Я поместил свой файл .3ds в \_work\Data\Meshes\_compiled\
3ds-исходник должен лежать в папке _work\Data\Meshes.

GothicStarter_Mod и нажал «конвертировать все»
Скомпилировать mrm-файл можно в двух режимах. Самый простой способ - это компиляция движком игры. Нужно просто запустить игру. Исходник, как уже сказано выше, должен лежать в папке _work\Data\Meshes, результат компиляции помещается движком в папку _work\Data\Meshes\_compiled.

ВАЖНО!
1. В процессе компиляции движок не должен найти скомпилированную (mrm) версию модели с данным названием в самой папке Meshes и её подпапках.
2. Движок не должен найти скомпилированную (mrm) версию модели с данным названием в vdf- или mod-томах в папках игры.
3. Движок не должен найти другой 3ds-исходник модели с данным названием в какой-то другой папке или vdf-/mod-томе.

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

Существует вариант компиляции модели с помощью Спейсера. При этом можно добиться того, чтобы свойства материалов в модели отличались от базовых.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.221
Благодарности
3.449
Баллы
485
Нужно просто запустить игру.
Добавлю, что не просто запустить, а ещё загрузить сохранение (или начать новую игру) и оказаться рядом с требуемой моделью, чтобы она загрузилась в память. Если это визуал предмета, то его можно вставить через консоль, а если модель окружения - то телепортироваться или подойти к ней. Также можно использовать Спейсер, чтобы быстро подлететь к нужному месту в мире или поменять какому-нибудь ближайшему объекту визуал на нужную модель и выйти, не сохраняя открытый zen-файл.
Если всё равно не получается скомпилировать замену существующей модели, то можно использовать новое имя файла, скомпилировать mrm вышеперечисленными методами и переименовать итоговый вариант в то, что нужно было заменить.
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
ElderGamer , D36

Для проверки:
1) Я извлек файл .mrm из gothic/data/Meshes.vdf
2) Я импортировал файл в блендер
3) Я экспортировал файл в .3ds
4) Я переименовал файл в глупое имя, например asdfasdf444.3ds
5) Я помещаю файл в \_work\Data\Meshes\
6) Я запустил GothicStarter.exe
7) Я загрузил игру, сохранил игру, начал новую игру
8) Ни один скомпилированный файл не появился в папке \_work\Data\Meshes\_compiled\

То же самое ничего не происходит, когда я пытаюсь это сделать с файлом, который действительно хочу скомпилировать.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.693
Баллы
910
ElderGamer , D36

Для проверки:
1) Я извлек файл .mrm из gothic/data/Meshes.vdf
2) Я импортировал файл в блендер
3) Я экспортировал файл в .3ds
4) Я переименовал файл в глупое имя, например asdfasdf444.3ds
5) Я помещаю файл в \_work\Data\Meshes\
6) Я запустил GothicStarter.exe
7) Я загрузил игру, сохранил игру, начал новую игру
8) Ни один скомпилированный файл не появился в папке \_work\Data\Meshes\_compiled\

То же самое ничего не происходит, когда я пытаюсь это сделать с файлом, который действительно хочу скомпилировать.
В игре нет моделей с такими названиями, поэтому надо делать компиляцию всего.

Если не хочешь так заморачиться

1. Полностью распакуй Meshes.vdf и Meshes_addon.vdf в папку готики, чтобы все файлы были в gothic\_work\Data\Meshes\_Compiled
2. Удали расширения файлов Meshes.vdf и Meshes_addon.vdf, чтобы они больше не работали в игре
3. Дальше создаешь свой 3ds файл
4. Копируешь файл в gothic\_work\Data\Meshes\ и оставляешь у него название то, которое необходимо
5. Удаляешь этот же файл в gothic\_work\Data\Meshes\_Compiled
6. Теперь можно зайти в игру, найти обьект, который заменил, если отобразился в игре новый, сделал всё правильно.
7. И важно проверять оригинальную игру, а не модификацию какую-то!
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
В игре нет моделей с такими названиями, поэтому надо делать компиляцию всего.

Если не хочешь так заморачиться

1. Полностью распакуй Meshes.vdf и Meshes_addon.vdf в папку готики, чтобы все файлы были в gothic\_work\Data\Meshes\_Compiled
2. Удали расширения файлов Meshes.vdf и Meshes_addon.vdf, чтобы они больше не работали в игре
3. Дальше создаешь свой 3ds файл
4. Копируешь файл в gothic\_work\Data\Meshes\ и оставляешь у него название то, которое необходимо
5. Удаляешь этот же файл в gothic\_work\Data\Meshes\_Compiled
6. Теперь можно зайти в игру, найти обьект, который заменил, если отобразился в игре новый, сделал всё правильно.
7. И важно проверять оригинальную игру, а не модификацию какую-то!

Это сработало. Спасибо.
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.409
Благодарности
3.239
Баллы
525
4) Я переименовал файл в глупое имя, например asdfasdf444.3ds
8) Ни один скомпилированный файл не появился в папке \_work\Data\Meshes\_compiled\
Используй логику. Зачем движку игры искать и компилировать модель с названием asdfasdf444.3ds, если такая модель не используется ни одним объектом в загруженном игровом мире?

Отвечая на твой вопрос, я исходил из того, что ты редактируешь существующую в игре модель для её использования взамен оригинальной модели. Во всяком случае, так я понял это:
Я хочу изменить размер объекта в игре, изменив его сетку.

В этом случае название модели уже прописано в файле игрового мира или в скриптах, в инстанции предмета. Если же ты хочешь ввести новый объект в игровой мир, то сначала тебе потребуется отредактировать игровой мир и/или скрипты. И только после этого нужно компилировать модель с новым названием.
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Подскажите можете расшифровать этот код Golem.MDS
Код:
/////////////////////////
// ATTACK
//////////////////////////

            ani            ("s_FistAttack"                1    "s_FistAttack"    0.0    0.0    M.    "golem_attackstep_KP01.asc"    F    1    49)
            {
                *eventTag    (0        "DEF_HIT_LIMB"    "BIP01 R HAND"        )
                *eventTag    (0         "DEF_OPT_FRAME"    "27"                )
                *eventTag    (0         "DEF_HIT_END"    "49"                )
                *eventTag    (0        "DEF_WINDOW"    "27 49"                )
//                *eventTag    (0        "DEF_DIR"        "O"                    )
                *eventSFX    (1        "GOL_ATTACK"    EMPTY_SLOT            )
            }


            ani            ("t_FistAttackMove"            2    ""                0.1    0.1    M.    "Golem_AttackMove_A02.asc"    F    1    31)
            {
                *eventSFX    (18        "GOL_STEPBOOM"    EMPTY_SLOT            )
            }

            ani            ("t_FistParadeJumpB"        1    ""                0.1    0.0    M.    "Golem_parade_A01.asc"        F    1    29)
            {
                *eventSFX    (17        "GOL_STEPBOOM"    EMPTY_SLOT            )
            }

            aniAlias    ("t_FistParade_O"            1    ""                0.0    0.0    M.    "t_FistParadeJumpB"            F)
Что тут отвечает за големовское отбрасывание?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.576
Благодарности
4.171
Баллы
915
Зырить тут:
Story\NPC\Monster\MST_StoneGolem.d:
Daedalus:
prototype Mst_Default_StoneGolem(C_Npc)
{
    name[0] = "Каменный голем";
    guild = GIL_STONEGOLEM;
    aivar[AIV_MM_REAL_ID] = ID_STONEGOLEM;
    level = 25;
    attribute[ATR_STRENGTH] = 125;
    attribute[ATR_DEXTERITY] = 125;
    attribute[ATR_HITPOINTS_MAX] = 250;
    attribute[ATR_HITPOINTS] = 250;
    attribute[ATR_MANA_MAX] = 100;
    attribute[ATR_MANA] = 100;
    protection[PROT_BLUNT] = 50;
    protection[PROT_EDGE] = 100;
    protection[PROT_POINT] = 150;
    protection[PROT_FIRE] = 100;
    protection[PROT_FLY] = 100;
    protection[PROT_MAGIC] = 100;
    damagetype = DAM_FLY; //вот он!
    fight_tactic = FAI_STONEGOLEM;
    senses = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
    senses_range = PERC_DIST_MONSTER_ACTIVE_MAX;
    aivar[AIV_MM_FollowTime] = FOLLOWTIME_MEDIUM;
    aivar[AIV_MM_FollowInWater] = TRUE;
    start_aistate = ZS_MM_AllScheduler;
    aivar[AIV_MM_RestStart] = OnlyRoutine;
};
Story\NPC\Monster\MST_Addon_SwampGolem.d:
Daedalus:
prototype Mst_Default_Addon_SwampGolem(C_Npc)
{
    name[0] = "Болотный голем";
    guild = GIL_SWAMPGOLEM;
    aivar[AIV_MM_REAL_ID] = ID_SWAMPGOLEM;
    level = 25;
    attribute[ATR_STRENGTH] = 125;
    attribute[ATR_DEXTERITY] = 125;
    attribute[ATR_HITPOINTS_MAX] = 250;
    attribute[ATR_HITPOINTS] = 250;
    attribute[ATR_MANA_MAX] = 0;
    attribute[ATR_MANA] = 0;
    protection[PROT_BLUNT] = 75;    //125;
    protection[PROT_EDGE] = 125;
    protection[PROT_POINT] = 250;
    protection[PROT_FIRE] = 125;
    protection[PROT_FLY] = 125;
    protection[PROT_MAGIC] = 125;
    damagetype = DAM_FLY; //и вот!
    fight_tactic = FAI_STONEGOLEM;
    senses = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
    senses_range = PERC_DIST_MONSTER_ACTIVE_MAX;
    aivar[AIV_MM_FollowTime] = FOLLOWTIME_MEDIUM;
    aivar[AIV_MM_FollowInWater] = TRUE;
    start_aistate = ZS_MM_AllScheduler;
    aivar[AIV_MM_RestStart] = OnlyRoutine;
};
Также урон от полёта прописан в прототипах обычного и чёрного троллей.
 
Последнее редактирование:

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
N1kX, ElderGamer , D36

Я сделал это! Я сделал это! Моей целью было изменить существующий мод, который заменил 18 трав из Готики 2 травами из Готики 3. Они выглядели великолепно, но были ОГРОМНЫМИ. Я хотел изменить их размер в нескольких размерах, чтобы они соответствовали различным модам и желаниям игроков, чтобы у меня были разные файлы *.vdf с разными травами в масштабе. Например: G3_Herbs_50%.vdf, G3_Herbs_75%.vdf и т. д.

Я никогда раньше не модифицировал Готику. Я ничего не знал об импорте/экспорте различных форматов и использовании таких программ, как блендер. Я внес только простые изменения в Elder Scrolls: Oblivion. Но там был мод-кит, написанный разработчиком, так что было намного проще. Одна из моих самых больших ошибок заключалась в том, что в блендере я не понимал, что при экспорте измененной сетки мне пришлось использовать опцию «Преобразовать вершины в мировую систему координат». Если я не использовал эту опцию, сетки не сохраняли изменения размера, которые я сделал.

Спасибо всем за терпение и ответы на мои вопросы. Учусь медленно =).
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
Иногда мне сложно понять, какая текстура применяется к определенному растению или траве. Имя файла текстуры часто отличается от имени файла сетки. Он может использоваться несколькими разными растениями или иметь форму текстурного «атласа». Есть ли простой способ определить, какая текстура (имя файла) применяется к внутриигровому объекту?

Кроме того, если текстура используется для нескольких сеток с разными именами, как игра узнает, что нужно применить эту текстуру к нескольким сеткам, если имена файлов разные?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.693
Баллы
910
Иногда мне сложно понять, какая текстура применяется к определенному растению или траве. Имя файла текстуры часто отличается от имени файла сетки. Он может использоваться несколькими разными растениями или иметь форму текстурного «атласа». Есть ли простой способ определить, какая текстура (имя файла) применяется к внутриигровому объекту?

Можно просто открыть в хорошем текстовом редакторе (например notepad++) .mrm/.3ds/.asc/.mdm/.mdl и сделать поиск по .tga
Там же увидишь какая используется текстура и как называется материал с текстурой.
Например открываешь

На второй вопрос не отвечу, ибо это основы текстурирования объектов, а я их не знаю
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
Можно просто открыть в хорошем текстовом редакторе (например notepad++) .mrm/.3ds/.asc/.mdm/.mdl и сделать поиск по .tga
Там же увидишь какая используется текстура и как называется материал с текстурой.
Например открываешь

На второй вопрос не отвечу, ибо это основы текстурирования объектов, а я их не знаю

Спасибо! Оно работает!

Если я хочу изменить текстуру, примененную к сетке, могу ли я сделать это, открыв файл сетки в wordpad++, просто переименовав файл .tga и сохранив его с помощью wordpad++? Или это повредит файл сетки?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.693
Баллы
910
Если я хочу изменить текстуру, примененную к сетке, могу ли я сделать это, открыв файл сетки в wordpad++, просто переименовав файл .tga и сохранив его с помощью wordpad++? Или это повредит файл сетки?
Можно, но длину символов необходимо сохранять.
Если старое название имеет 15 символов, то новое тоже должно содержать столько же. А то будет вылет
Также менять название материала надо, ибо если название материала останется без изменений, может показываться старая текстура, ибо в стеке готики может храниться старая текстура, а не новая.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.409
Благодарности
3.239
Баллы
525
как игра узнает, что нужно применить эту текстуру к нескольким сеткам, если имена файлов разные?
Для начала тебе нужно узнать, что есть такое понятие, как материал (не помню, как это называется в английском варианте GUI 3d-редакторов, кажется material). Материал имеет набор свойств, одним из которых является используемая текстура. На полигоны модели в 3d-редакторе накладывается именно материал, а не текстура. Если ты в 3d-редакторе посмотришь свойства материала, который покрывает интересующие тебя полигоны, то сможешь найти там название текстуры.

Теперь о том, как движок игры узнаёт, какую текстуру нужно использовать. В состав файла модели (и *.3ds, и *.mrm) входит список используемых материалов и их основных свойств. Названия текстур, как уже сказано выше, можно посмотреть с помощью текстового редактора. Но вот изменять названия текстур с помощью текстового редактора я бы ни в коем случае не советовал бы. Для asc-файлов это допустимо, но речь здесь не о них, не так ли? Так вот, движок считывает из файла модели свойства материала и применяет их к модели. Проблема в том, что материал с одним и тем же названием может использоваться в разных моделях. И если в разных моделях будут прописаны разные текстуры для этого материала, то движок будет использовать только какую-то одну из них для всех моделей с данным материалом.

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

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
Для начала тебе нужно узнать, что есть такое понятие, как материал (не помню, как это называется в английском варианте GUI 3d-редакторов, кажется material). Материал имеет набор свойств, одним из которых является используемая текстура. На полигоны модели в 3d-редакторе накладывается именно материал, а не текстура. Если ты в 3d-редакторе посмотришь свойства материала, который покрывает интересующие тебя полигоны, то сможешь найти там название текстуры.

Теперь о том, как движок игры узнаёт, какую текстуру нужно использовать. В состав файла модели (и *.3ds, и *.mrm) входит список используемых материалов и их основных свойств. Названия текстур, как уже сказано выше, можно посмотреть с помощью текстового редактора. Но вот изменять названия текстур с помощью текстового редактора я бы ни в коем случае не советовал бы. Для asc-файлов это допустимо, но речь здесь не о них, не так ли? Так вот, движок считывает из файла модели свойства материала и применяет их к модели. Проблема в том, что материал с одним и тем же названием может использоваться в разных моделях. И если в разных моделях будут прописаны разные текстуры для этого материала, то движок будет использовать только какую-то одну из них для всех моделей с данным материалом.

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

Ура! С помощью всех вас и учебного пособия по блендеру на YouTube я правильно поменял местами материал на растение. Файл, который я хотел отредактировать, изначально был взломан и содержал ошибки. Он будет отображаться в готической игре, но его нельзя будет импортировать в блендер, поэтому его нельзя будет изменить. Я исправил это, взяв оригинальную версию и заменив файл материала/текстуры на исправленный с помощью блендера, а не взломав его.

Спасибо за помощь. Я медленно учусь. Это сложный процесс обучения, но когда я это понимаю, становится весело.
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
Иногда файл текстуры содержит несколько разных файлов текстур, объединенных в один файл, например холст художника (часто используемый для моделей растений). Я видел это под названием «атлас». При использовании «атласа» как сетка узнает, какую из текстур (материалов) использовать из файла?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.409
Благодарности
3.239
Баллы
525
Наверное, ты имеешь в виду текстуры, на которых на одном поле изображено несколько разных изображений. Вне зависимости от того, что изображено на текстуре, существует привязка вершин модели к точкам с определёнными координатами на текстуре.

Unwrap UVW.jpg


С помощью инструмента Unwrap UVW можно посмотреть эту привязку и, при необходимости, внести изменения.
 

SuperDave500

Участник форума
Регистрация
26 Янв 2021
Сообщения
97
Благодарности
32
Баллы
75
Наверное, ты имеешь в виду текстуры, на которых на одном поле изображено несколько разных изображений. Вне зависимости от того, что изображено на текстуре, существует привязка вершин модели к точкам с определёнными координатами на текстуре.

Посмотреть вложение 126500

С помощью инструмента Unwrap UVW можно посмотреть эту привязку и, при необходимости, внести изменения.

На изображении ниже показан тип файла текстуры, о котором я говорю. Файл содержит несколько изображений разных растений, которые используются в игре. Каждое изображение используется для отдельного файла сетки растений. В файлах сетки растений все они требуют одного и того же файла .tga, который я опубликовал. Но они используют разные изображения в одном и том же файле.
 

Вложения

  • CA_PLANTS-C.jpg
    CA_PLANTS-C.jpg
    212,6 KB · Просмотры: 15
Последнее редактирование модератором:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.409
Благодарности
3.239
Баллы
525
Сверху Снизу