Дорогие модостроители, help!
|
|
JF | Дата: Четверг, 19.07.2012, 17:50 | Сообщение # 1 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Сейчас доделываю своего актора. Уже практически готовы все bmp'шки, но я столкнулся с проблемой - их правильное последовательное отображение в игре, а именно наложение друг на друга . Например все мы видели, что у любого актора рука отображается поверх тела, а кисть - поверх руки. Знаю о волшебной строке DrawAfterParent = (0 или 1), но меня это не спасает, ибо у меня все гораздо сложнее. А именно хочу сделать неподвижные FG и BG наплечники для своего актора, но они достаточно большие и затрагивают руку, тело актора и голову. Голова отображается за телом (тут-то все правильно), наплечник правильно отображается на голове и теле, но неправильно отображается с рукой (рука оказывается сверху) . Хотя FG наплечник должен отображаться поверх всего вышеназванного, а BG должен отображаться лишь поверх BG руки. Методом тыка выяснил, что отображение аттачблов зависит от положения прописанных частей (если часть Head = Attachable или AddAttachable = Attachable написана раньше, то она отобразится первой, все, что ниже - отобразится под ней). Но это происходит, если у вас простой .ini, похожий на стандартный, да и то поверх руки отобразить так ничего не получится. Опять же методом тыка нашел зависимость от координатных строк ParentOffset = Vector, таким методом я даже умудрился создать спрайт, который отобразился поверх ноги актора. Но к сожалению только ноги, а не руки (руки ведь отображаются поверх ног), да и то произошло это случайно, так что я до сих пор не понял, что и от чего зависит. Обьясните мне? Плиииз)) А то не хочется мне калечить спрайты рук для правильного отображения) И да, заодно расскажите, от какой точки на акторе начинается та самая непонятная билинейная система координат, по которой регулируется ParentOffset = Vector (верхний левый пиксель спрайта тела?) и JointOffset = Vector (относительно координаты ParentOffset = Vector?). Буду безмерно благодарен, если мне кто-то в этом поможет
|
|
| |
Mad_Alex | Дата: Четверг, 19.07.2012, 18:32 | Сообщение # 2 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| Спасибо за грамотное и подробное описание. Такой текст вызывает теплое чувство где-то в грудной клетке и сильное желание помочь.
По идее с руками должен работать тот же принцип: до или после добавления руки добавлен аттачабл. Попробуй это, если нет, то подумаем над другими способами решения.
Оффсеты: ParentOffset осчитывается от центра тяжести родительского объекта (то есть того, к которому прикреплен данный).
JointOffset отсчитывается от центра тяжести данного объекта.
За любыми другими вопросами пиши мне в скайп. (в подписи)
|
|
| |
Вампир | Дата: Четверг, 19.07.2012, 22:39 | Сообщение # 3 |
Зомби
Группа: Проверенные
Сообщений: 130
Награды: 0 +
Статус: Offline
| Mad_Alex, а гибы и всякие левые мос ротатинги (прости господи), случаем, будут отображаться не поверх тела актора? Через луа создать и постоянно корректировать линейные и угловые координаты такого наплечника.
Мы просто будем выступать И погибать за пиксели-валюты, И умирать, опять вставать, Лишь дайте нам винтовку в руки.
Мы не умрем, в нас жизни нет, Не жалко, это нам прощают Что спрайтами и бьют, и убивают И наступают, защищают.
Последнее дыхание лишь шутка Ведь акторы - актеры в промежутке Что между небом и землей застряли. Где убивали и топтали.
ZemaSergant
|
|
| |
JF | Дата: Пятница, 20.07.2012, 01:25 | Сообщение # 4 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Mad_Alex, да думал я уже за порядок написания. Прописал первым этот наплечник среди всех остальных частей как среди AddEffect = Attachable (бессмысленно, но мало ли), так и среди строк AddAttachable = Attachable в теле актора, но эффекта не последовало. Хотя для меня это было вполне ожидаемо, т.к. руки не прописываются в строках AddAttachable = Attachable, а порядок написания строк AddEffect = Attachable нигде не учитывается(прошу обратить внимание, не учитывается порядок именно AddEffect = Attachable, а не порядок строк AddAttachable = Attachable, которые прописываются отдельно в каждой части, будь то тело, голова или что-либо еще). Я думал еще, может прописать наплечник, как AddAttachable = Attachable к кисти FG и BG руки (ведь по порядку своего отображения FG кисть отображается поверх FG руки и всех остальный частей, а BG кисть отображается лишь поверх BG руки, но за телом и головой), но потом отказался от этой затеи из-за того, что понял, что если я сделаю подобным образом, то при каждом смещении кисти (при прицеливании в игре, например) мой наплечник будет "плавать", смещаясь от своего изначального месторасположения.
Вампир, я бы создал, если бы дружил с lua. Ну или хотя бы попытался, будь у меня наглядный пример. А за неимением обоих этих составляющих могу смело заявить - я не сумею. Все-таки я почему-то остаюсь убежденным, что порядок отображения части зависит от ParentOffset этой части. Если я ошибаюсь - исправьте меня, но прежде скажу, что именно после колдовства в координатах этих строк мой наплечник стал отображаться поверх ног (конечно он должен был находиться пикселей на 10-20 выше, если бы я сразу изменял вместе с ParentOffset и SpriteOffset, но это уже другая история ). Но вот какие именно координаты вписать туда, чтобы все отобразилось правильно я не понимаю.
Хотя у меня уже есть идея просто поставить такой же ParentOffset, как и у кистей рук, глядишь, да что и выйдет . Но весь смысл в том, что хотелось бы понять. Именно понять, чтобы при подобной ситуации в следующий раз что называется не "тыкать пальцем в небо" с вопросом, сработает ли. Ну я думаю вы меня понимаете Добавлено (20.07.2012, 01:19) --------------------------------------------- Ан нет, фиаско. Там кисть не является отдельным аттачблом и соответственно у нее нет никаких ParentOffset. Зато теперь я выяснил, почему именно таким образом отображаются руки и ноги (я имею ввиду их приоритет в отображении при взаимодействии с головой и туловищем). Все это им дают вот эти строки
взял в пример нашего любимого коричневого мундира (перевод радует куда больше оригинального названия )
FGArm = Arm CopyOf = Browncoat Arm FG B ParentOffset = Vector X = -2 Y = -4 BGArm = Arm CopyOf = Browncoat Arm BG B ParentOffset = Vector X = 5 Y = -5 FGLeg = Leg CopyOf = Browncoat Leg FG B ParentOffset = Vector X = 0 Y = 3 BGLeg = Leg CopyOf = Browncoat Leg BG B ParentOffset = Vector X = 4 Y = 3
Но как вы знаете нельзя создать третью руку или ногу без колдовства в lua, так что сделать наплечник еще одной рукой или кистью руки не получится. Так что снова возвращаюсь к вопросу о ParentOffset'ах. Добавлено (20.07.2012, 01:25) --------------------------------------------- Есть идея добавить наплечник как AddAttachable = Attachable к самой руке, но тогда нужно сделать так, чтобы спрайт при движениях руки не крутился и оставался на месте, чего по умолчанию не получится. Так что однозначно придется мудрить. Есть идеи, как воплотить это в жизнь?
Сообщение отредактировал JF - Четверг, 19.07.2012, 23:56 |
|
| |
Mad_Alex | Дата: Пятница, 20.07.2012, 02:45 | Сообщение # 5 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| Вампир, игра отрисовывается в порядке Glows>Terrain>Actors>Particles, так что наоборот.Quote (JF) Если я ошибаюсь - исправьте меня Ошибаешься.
Хм. Ты мог бы сделать "сборку" актора? То есть просто из спрайтов составить его внешний вид, каким он должен быть, и показать. А еще лучше полноценный Spritesheet: картинка, на которой представлены все спрайты (для рук ног желательно все кадры) и их сборка.
Тогда мы будем хотя бы понимать, как актор должен выглядеть, и так будет намного удобнее думать.
|
|
| |
JF | Дата: Пятница, 20.07.2012, 03:19 | Сообщение # 6 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Mad_Alex, А может я актора просто выкину в формате документа фотошопа? Там каждая часть актора находится на отдельном слое, и можно легко понять, что отображается за чем
|
|
| |
Mad_Alex | Дата: Пятница, 20.07.2012, 04:08 | Сообщение # 7 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| Не стоит. Spritesheet'ы удобнее и нагляднее, и вообще привыкай их делать, это хорошая привычка.
|
|
| |
JF | Дата: Пятница, 20.07.2012, 04:21 | Сообщение # 8 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Вот, я сделал мини-сборку. Говорю сразу, чтобы не было потом никаких возмущений - да, здесь есть спрайты, сделанные не мною, но я сейчас работаю над тем, чтобы максимально отдалить данного актора от уже представленных здесь кровавых ангелов. Но при этом не очень хочется сильно отступать от стилистики, уже заданной в моде Blood Angels.
Вот, гляди, что я примерно хочу. Руки и ноги я еще буду перерисовывать, причем это однозначно. Но по сути это будет что-то очень похожее на данного актора, только чуть выше и выглядящим более массивно.
Сообщение отредактировал JF - Пятница, 20.07.2012, 04:22 |
|
| |
Mad_Alex | Дата: Пятница, 20.07.2012, 05:03 | Сообщение # 9 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| Есть такой вариант: просто в спрайте руки стереть старый наплечник, который сейчас торчит поверх нового. Стереть настолько, чтобы в игре это выглядело прилично. Тебе может не понравиться такое решение, но я могу точно сказать, что такой, казалось бы, грубоватый вариант может сработать вполне так чудесно. Попробуй.
|
|
| |
JF | Дата: Пятница, 20.07.2012, 05:07 | Сообщение # 10 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Ну до этого я и сам додумался. Но я кажется уже говорил - не хочется мне калечить спрайты рук для правильного отображения
|
|
| |
Mad_Alex | Дата: Пятница, 20.07.2012, 05:08 | Сообщение # 11 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| А ты попробуй все-таки. Тем более что наплечник все равно видно не будет.
|
|
| |
JF | Дата: Пятница, 20.07.2012, 05:09 | Сообщение # 12 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Тем более есть еще несколько причин, по которой я не хочу поганить спрайты: 1) большой наплечник хочу сделать разрушаемым. Но если я обрежу спрайт руки, то это уже станет невозможным. А создавать неразрушаемые ничем пластины, как и полностью проницаемые мне явно не по душе. 2) многие оружия обладают прикладами, а при обрезании спрайта руки такое оружие в руках будет выглядеть некорректно. Часть приклада отобразится как надо, под рукой, а часть поверх наплечника. 3) Неужели вам самим не интересно использовать решение данной проблемы в своих модах? Ведь станет возможным создавать разрушаемые пластины на руки и ноги, что явно бы не помешало в дальнейшем создании модов.
Я, конечно, понимаю, сидеть ломать голову из-за одного актора не своего мода - ну явно мало кому это нужно. Но все-таки, ребят... Очень хочется, чтобы все было сделано хорошо и дельно, а не абы как. А для того, чтобы сделать хорошо мне и нужна ваша помощь
Сообщение отредактировал JF - Пятница, 20.07.2012, 06:34 |
|
| |
Mad_Alex | Дата: Пятница, 20.07.2012, 12:59 | Сообщение # 13 |
Манекен
Группа: Главный Администратор
Сообщений: 1664
Награды: 32 +
Статус: Offline
| Тогда скидывай мод, я попробую скрипт написать, но успех не гарантирую.
|
|
| |
JF | Дата: Суббота, 21.07.2012, 00:27 | Сообщение # 14 |
Краб
Группа: Проверенные
Сообщений: 23
Награды: 0 +
Статус: Offline
| Ок, ближе к ночи выкину, а то на данный момент я отрезан от родного ноута Добавлено (21.07.2012, 00:27) --------------------------------------------- Вот. Сделай что-нибудь с наплечниками. Потому что я споткнулся уже на BG боковой пластине. А надо еще и вторые наплечи прописать, не относящиеся к руке. Ну я думаю ты видел на Spritesheet'е. Все спрайты там есть. В общем сам увидишь
|
|
| |
Статистика Форума |
Последние темы |
Читаемые темы |
Последние зарегистрированные пользователи |
|
|
|
|