1
Обмен опытом (в помощь мододелу) / О соотношении размеров и величин в игре
« : 04 Августа, 2016, 18:30 »
О соотношении размеров и величин в игре
Долгое время было множество вопросов по устройству внутриигрового мира "Mount&Blade" - соотношение размера, массы, длины, объёма, защиты, урона.
Собственно в данной теме хочу поделиться тем что узнал сам, и услышать других кому есть что сказать, что бы в конце концов у всех могла сложиться так сказать целостная картина по устройству игрового мира "Mount&Blade".
Возможно всё о чём я сейчас здесь напишу кому то уже давно известно, у тех прошу прощения за потраченное в пустую время.
Итак начнём.
1. Размеры объектов и соответственно их моделей в игре.
Посмотрев множество моделей игры и их свойства в фале MS(Module_system) module_items.py, пришёл к выводу, что при просмотре модели в программе "openBrf",величина стороны одной ячейка приблизительно равна 50см (0,5м). Позже нашёл подтверждение этому от разработчиков игры - в файле spear.brf, который находится в папке моделий игры ...\CommonRes, чётко прописаны размеры моделий копий.
Из всех моделий представленных в "spear.brf", только у модели "spear_a_3m" есть заслуживающее внимания отклонение от общего алгоритма - длина ячейки = 50см, остальные модели с минимальными отклонениями соответствуют ему. Из чего можно установить - сторона ячейки = 50см и в дальнейших выводах опираться на этот факт.
Исходя из размеров одной ячейки = 50см, можно определить, что по умолчанию, рост мужчины и женщины в игре = приблизительно 3,6 ячейки = 3,6 х 50 = 180см = 1,8м. Обратим внимание на этот факт, так как размеры и свойства многих вещей в "Игре" зависят от роста юнитов заданного по умолчанию, что подробнее мы рассмотрим ниже.
Следует сказать, что при создании нового юнита, модель его тела следует делать так же размером около 3,6 ячейки в "openBrf", а потом уже увеличивать до нужного размера в "module_skins.py", увеличивая скелет :
"...
"skel_human", 1.0,
..."
Иначе, если вы сделаете юнитам размер сильно отличающийся от стандартного, они будут криво отображаться в презентациях.
Теперь имея отправные точки в размерах и росте модели человека в игре, мы можем создать более реалистичный игровой мир.
2. Поговорим о соотношении моделей оружия, их размеров и свойств в игре.
Здесь сразу следует отметить, что размеры оружия и доспехов, которые прописаны в инвентаре каждого отдельного юнита, зависят от размера скелета этого юнита, указанного в "module_skins.py". Так например если стандартный ..."skel_human", 1.0,... уменьшить в два раза ..."skel_human", 0.5,... , то и оружие и доспехи этого юнита визуально автоматически уменьшаются в 2 раза, а следовательно надо уменьшать в 4 раза(уменьшаем ширину и длину/высоту, а толщину не изменяем) массу их оружия, доспехов, щитов. И не забываем уменьшить силу юнитам меньшего размера.
Из оружия начнём с копий.
Вернёмся к файлу "spear.brf", моделям копий в нём описанном, и свойстам копий с этими моделями описанных в файле "module_items.py", а затем посмотрим как это выглядит в игре.
Модель "spear_b_2-75m" :
Длина модели в "openBrf" ориентировочно - 2.7м
Радиус поражения у данной модели в "module_items.py" - 175
["light_lance", "Light Lance", [("spear_b_2-75m",0)], itp_couchable|itp_type_polearm|itp_offset_lance|itp_merchandise|itp_primary| itp_penalty_with_shield|itp_wooden_parry, itc_cutting_spear, 180 , weight(2.5)|difficulty(0)|spd_rtng(85) | weapon_length(175)|swing_damage(16 , blunt) | thrust_damage(27 , pierce),imodbits_polearm ],
Модель "spear_e_2-5m","spear_c_2-5m" :
Длина модели в "openBrf" ориентировочно - 2.5м
Радиус поражения у данной модели в "module_items.py" - 155
["military_scythe", "Military Scythe", [("spear_e_2-5m",0),("spear_c_2-5m",imodbits_bad)], itp_type_polearm|itp_offset_lance| itp_merchandise| itp_primary|itp_penalty_with_shield|itp_wooden_parry, itc_staff|itcf_carry_spear, 155 , weight(2.5)|difficulty(0)|spd_rtng(90) | weapon_length(155)|swing_damage(36 , cut) | thrust_damage(25 , pierce),imodbits_polearm ],
Модель "spear_g_1-9m" :
Длина модели в "openBrf" ориентировочно - 1.9м
Радиус поражения у данной модели в "module_items.py" - 120
["shortened_spear", "Shortened Spear", [("spear_g_1-9m",0)], itp_type_polearm|itp_offset_lance|itp_merchandise|itp_primary| itp_wooden_parry, itc_staff|itcf_carry_spear, 53 , weight(2.0)|difficulty(0)|spd_rtng(102) | weapon_length(120)|swing_damage(19 , blunt) | thrust_damage(25 , pierce),imodbits_polearm ],
Модель "spear_i_2-3m" :
Длина модели в "openBrf" ориентировочно - 2.25м
Радиус поражения у данной модели в "module_items.py" - 150
["war_spear", "War Spear", [("spear_i_2-3m",0)], itp_type_polearm|itp_offset_lance|itp_merchandise| itp_primary|itp_wooden_parry, itc_staff|itcf_carry_spear, 140 , weight(2.5)|difficulty(0)|spd_rtng(95) | weapon_length(150)|swing_damage(20 , blunt) | thrust_damage(27 , pierce),imodbits_polearm ],
Модель "two_handed_battle_long_axe_c" в Файле "weapons_e.brf" :
Длина модели в "openBrf" ориентировочно - 1.8м.
Радиус поражения у данной модели в "module_items.py" - 155
["great_long_bardiche", "Great Long Bardiche", [("two_handed_battle_long_axe_c",0)], itp_type_polearm|itp_merchandise| itp_two_handed|itp_primary|itp_bonus_against_shield|itp_wooden_parry|itp_unbalanced, itc_staff, 660 , weight(5.0)|difficulty(12)|spd_rtng(88) | weapon_length(155)|swing_damage(50 , cut) | thrust_damage(17 , pierce),imodbits_axe ],
Радиус поражения у этих моделей в игре
Посмотрев картинки (если найдёте нужным можете сами посмотреть в игре) мы увидим, что визуально длина от кончика spear/bardiche до руки у всех меньше указанных в "weapon_length" оружия.
Визуально несоответствие увеличивается ещё приблизительно на 50 см (0.5м), когда оружие берётся в две руки. По хорошему, когда оружие берётся в две руки, левая рука должна переходить на место правой, а правая должна перехватывать древко ниже.
Таким образом можно сделать вывод, что анимацию "itc_staff" следует доработать, а большинство копий передвинуть в "openBrf", преведя в соответствие визуальную длину и "weapon_length".
Гораздо лучше обстоит дело с двуручным хватом у оружия, использующего анимации "itc_bastardsword" и "itc_morningstar", там левая рука ложится ниже правой, и выглядит всё достойно.
Продолжение следует...
Долгое время было множество вопросов по устройству внутриигрового мира "Mount&Blade" - соотношение размера, массы, длины, объёма, защиты, урона.
Собственно в данной теме хочу поделиться тем что узнал сам, и услышать других кому есть что сказать, что бы в конце концов у всех могла сложиться так сказать целостная картина по устройству игрового мира "Mount&Blade".
Возможно всё о чём я сейчас здесь напишу кому то уже давно известно, у тех прошу прощения за потраченное в пустую время.
Итак начнём.
1. Размеры объектов и соответственно их моделей в игре.
Посмотрев множество моделей игры и их свойства в фале MS(Module_system) module_items.py, пришёл к выводу, что при просмотре модели в программе "openBrf",величина стороны одной ячейка приблизительно равна 50см (0,5м). Позже нашёл подтверждение этому от разработчиков игры - в файле spear.brf, который находится в папке моделий игры ...\CommonRes, чётко прописаны размеры моделий копий.
Из всех моделий представленных в "spear.brf", только у модели "spear_a_3m" есть заслуживающее внимания отклонение от общего алгоритма - длина ячейки = 50см, остальные модели с минимальными отклонениями соответствуют ему. Из чего можно установить - сторона ячейки = 50см и в дальнейших выводах опираться на этот факт.
Исходя из размеров одной ячейки = 50см, можно определить, что по умолчанию, рост мужчины и женщины в игре = приблизительно 3,6 ячейки = 3,6 х 50 = 180см = 1,8м. Обратим внимание на этот факт, так как размеры и свойства многих вещей в "Игре" зависят от роста юнитов заданного по умолчанию, что подробнее мы рассмотрим ниже.
Следует сказать, что при создании нового юнита, модель его тела следует делать так же размером около 3,6 ячейки в "openBrf", а потом уже увеличивать до нужного размера в "module_skins.py", увеличивая скелет :
"...
"skel_human", 1.0,
..."
Иначе, если вы сделаете юнитам размер сильно отличающийся от стандартного, они будут криво отображаться в презентациях.
Теперь имея отправные точки в размерах и росте модели человека в игре, мы можем создать более реалистичный игровой мир.
2. Поговорим о соотношении моделей оружия, их размеров и свойств в игре.
Здесь сразу следует отметить, что размеры оружия и доспехов, которые прописаны в инвентаре каждого отдельного юнита, зависят от размера скелета этого юнита, указанного в "module_skins.py". Так например если стандартный ..."skel_human", 1.0,... уменьшить в два раза ..."skel_human", 0.5,... , то и оружие и доспехи этого юнита визуально автоматически уменьшаются в 2 раза, а следовательно надо уменьшать в 4 раза(уменьшаем ширину и длину/высоту, а толщину не изменяем) массу их оружия, доспехов, щитов. И не забываем уменьшить силу юнитам меньшего размера.
Из оружия начнём с копий.
Вернёмся к файлу "spear.brf", моделям копий в нём описанном, и свойстам копий с этими моделями описанных в файле "module_items.py", а затем посмотрим как это выглядит в игре.
Модель "spear_b_2-75m" :
Длина модели в "openBrf" ориентировочно - 2.7м
Радиус поражения у данной модели в "module_items.py" - 175
["light_lance", "Light Lance", [("spear_b_2-75m",0)], itp_couchable|itp_type_polearm|itp_offset_lance|itp_merchandise|itp_primary| itp_penalty_with_shield|itp_wooden_parry, itc_cutting_spear, 180 , weight(2.5)|difficulty(0)|spd_rtng(85) | weapon_length(175)|swing_damage(16 , blunt) | thrust_damage(27 , pierce),imodbits_polearm ],
Модель "spear_e_2-5m","spear_c_2-5m" :
Длина модели в "openBrf" ориентировочно - 2.5м
Радиус поражения у данной модели в "module_items.py" - 155
["military_scythe", "Military Scythe", [("spear_e_2-5m",0),("spear_c_2-5m",imodbits_bad)], itp_type_polearm|itp_offset_lance| itp_merchandise| itp_primary|itp_penalty_with_shield|itp_wooden_parry, itc_staff|itcf_carry_spear, 155 , weight(2.5)|difficulty(0)|spd_rtng(90) | weapon_length(155)|swing_damage(36 , cut) | thrust_damage(25 , pierce),imodbits_polearm ],
Модель "spear_g_1-9m" :
Длина модели в "openBrf" ориентировочно - 1.9м
Радиус поражения у данной модели в "module_items.py" - 120
["shortened_spear", "Shortened Spear", [("spear_g_1-9m",0)], itp_type_polearm|itp_offset_lance|itp_merchandise|itp_primary| itp_wooden_parry, itc_staff|itcf_carry_spear, 53 , weight(2.0)|difficulty(0)|spd_rtng(102) | weapon_length(120)|swing_damage(19 , blunt) | thrust_damage(25 , pierce),imodbits_polearm ],
Модель "spear_i_2-3m" :
Длина модели в "openBrf" ориентировочно - 2.25м
Радиус поражения у данной модели в "module_items.py" - 150
["war_spear", "War Spear", [("spear_i_2-3m",0)], itp_type_polearm|itp_offset_lance|itp_merchandise| itp_primary|itp_wooden_parry, itc_staff|itcf_carry_spear, 140 , weight(2.5)|difficulty(0)|spd_rtng(95) | weapon_length(150)|swing_damage(20 , blunt) | thrust_damage(27 , pierce),imodbits_polearm ],
Модель "two_handed_battle_long_axe_c" в Файле "weapons_e.brf" :
Длина модели в "openBrf" ориентировочно - 1.8м.
Радиус поражения у данной модели в "module_items.py" - 155
["great_long_bardiche", "Great Long Bardiche", [("two_handed_battle_long_axe_c",0)], itp_type_polearm|itp_merchandise| itp_two_handed|itp_primary|itp_bonus_against_shield|itp_wooden_parry|itp_unbalanced, itc_staff, 660 , weight(5.0)|difficulty(12)|spd_rtng(88) | weapon_length(155)|swing_damage(50 , cut) | thrust_damage(17 , pierce),imodbits_axe ],
Радиус поражения у этих моделей в игре
Посмотрев картинки (если найдёте нужным можете сами посмотреть в игре) мы увидим, что визуально длина от кончика spear/bardiche до руки у всех меньше указанных в "weapon_length" оружия.
Визуально несоответствие увеличивается ещё приблизительно на 50 см (0.5м), когда оружие берётся в две руки. По хорошему, когда оружие берётся в две руки, левая рука должна переходить на место правой, а правая должна перехватывать древко ниже.
Таким образом можно сделать вывод, что анимацию "itc_staff" следует доработать, а большинство копий передвинуть в "openBrf", преведя в соответствие визуальную длину и "weapon_length".
Гораздо лучше обстоит дело с двуручным хватом у оружия, использующего анимации "itc_bastardsword" и "itc_morningstar", там левая рука ложится ниже правой, и выглядит всё достойно.
Продолжение следует...