• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Многоклеточные предметы: выравнивание клеток в трансмоге после импорта

  • Автор темы Автор темы T@ra
  • Дата начала Дата начала
T

T@ra

Гость
Предметы из двух и более клеток

Кто-нибудь мне объяснит как их делать ровными?
У меня эти два куска получаются оторванные друг от друга!!
Даже с помощью скрипта McHain!
Как их сделать ровными,а?
 
В трансмоге куски двигать можно. Во View Object есть X offset и Y offset. Мне помогает :) только я после исправления смещений делаю export-import повторно, для надежности.
 
Jasana
Это еще зачем? Сравни как-нибудь ради шутки юмора первый файл и второй! Разницы ведь не будет (за исключением ссылок на уникальный номер предмета).
А вообще, это единственное, от чего мне не удалось избавиться - подгонка. В т-моге ее делать надо.
 
Разницы ведь не будет
Будет, будет разница :) Не знаю как в иффе, но в экспорте у drawgroupitem-ов координаты меняются - вот в таком куске. например -
<drawgroupitem
spriteid="111"
spritenum="8"
pixelx="-15" << вот тут
pixely="8" << и тут
xoffset="0"
yoffset="0"
zoffset="0"
flags="0"/>
А подгонка нужна бывает, потому как с точностью до миллиметра ты не сделаешь итем такой же ширины, как клонированный итем. То есть, ты может и сделаешь, но я не могу :(
А экспорт-импорт я делаю потому, что как минимум дважды сдвиги сделанные во View Object не отразились на объекте, когда я просто закрыла трансмог. Лучше перестраховаться :)
 
Jasana
В xml, само собой, разница есть, ведь первый файл от старого объекта, а второй - от нового, где ты подогнала все заново.
IFF друг от друга отличаться не должен.
 
Да, а я еще заметил в T-Mog такой лаг - он не умеет импортировать самое маленькое изображение - приходится полагаться на автогенерацию. А насчем многоклеточных объектов, то тут правильно - только подгонка. И я уверен, что это именно a-канал неправильно экспортируется. Вообще, мне кажется, чтобы небыло швов, нужно со стороны шва продлить объект. Т.е, не прямо срезать, как у Максис, а с небольшим припуском. Но я не пробовал так делать...
 
Кто-нибудь может написать пошаговую инструккцию, я правильно делаю? :
клонирую диван
экспортирую в One zoom one channel
открываю 4 рисунка и исправляю на свои
импортирую
исправляю куски
эскпортирую All chaneels one zoom
Исправляю -альфа рисунки
Импортирую

Но когда исправляешь в тоге, приходится исправлять все 4 по 3 раза, то есть с 4 сторон 3 размеров, т.к. если ты исправил в бобьшом размере и уменьшаешь зоомом то там все вкривь и вксось .
 
я делаю не так :) я сразу экспортирую все каналы во всех зумах так меньше заморочек :) чесно говоря я вообще не понимаю зачем ты так делаешь........ведь если ты делаешь новый предмет то и z-буфер нужно переделывать :)
 
lisass
Да, но так он переделывается автоматически, когда второй раз экмпортируешь :rolleyes:
 
невижу в этом никакого смысла :) лутше один раз сделать все в ручную чем париться несколько раз с импортом и экспортом для автаматики да к тому же вручную надежнее и безглючнее ... хотя кому как конечно ;)
 
Шогал
Я уже сталкивался с неправильным импортом самых маленьких изображений. И могу дать решение: обращайте внимание на то, сжимаете вы BMP-файлы или нет т-могом при экспорте изображений. Если да, то импортируемые картинки тоже обязаны быть сжатыми. И наоборот. Лучше всего картинки сжимать - BMP не теряет при сжатии качество, а только собирает повторы пикселей. В случае с картинками симовских объектов, это выгодно.
 
lisass
Напиши пожалуйся алгоритм, а то я не совсем поняла :)
 
1.клонируешь диван
2.экспортируешь диван All zoom All chaneels
3.делаешь свое во ВСЕХ спрайтах
4.импортируешь
5.подгоняешь в Т-моге
 
Jasana, я вот еще какой вопрос хотела задать.
Когда равняешь части предметы, какую часть к какой надо равнять, а то у меня тарелки в столе получились :lol:
Или это только методом тыка можно сделать?
 
knopa, если и есть правила, как равнять куски, я их не знаю :( пока все "на глаз".
 
Поделюсь идеей. :idia:
Может, я и последняя, кто до нее дошла, но все-таки...

Вас достало выравнивать части в трансмоге? (Меня - достало.)

Есть надежный способ борьбы!

В основание вашего предмета кладете квадрат размером с клетку (например, 100х100), толщиной 1.

Рендерите картинку два раза:
- первый раз - квадрат как есть
- второй раз - материалу квадрата поставить прозрачность 5% (или меньше :))

Рассказываю зачем.
Смещения для спрайтов определяются по какому-то из нижних краев картинки. Если низ объекта не соответствует размеру клетки в точности (может, это вообще картина, висящая в воздухе, и не на всю клетку шириной), то для каждого нового объекта смещения надо подгонять заново. Если же внизу лежит такой квадрат, то смещения всегда будут одинаковыми - либо нули, либо (+/-)64, (+/-)32. То, что квадрат совсем прозрачный, на числа не влияет, и это есть рулез :D

Итого, на спрайтах с непрозрачным квадратом равняем клетки, а потом (и для всех клонов - сразу же) используем прозрачный квадрат. Забудьте про выравнивание :D
 
Написала пару полезных программок. Они "двигают" предметы посредством трансмогового экспорта:
- первая программка сдвигает одну или все drawgroup-ы объекта (применение: вы выровняли все клетки, посмотрели на объект в игре и пришли к выводу, что все это еще бы на 4 пикселя левее сдвинуть:()
- вторая программка выравнивает координаты во всех масштабах по наибольшему масштабу (есть правило: координаты объекта в разных масштабах соотносятся как 1:2:4; исключения - если координаты не кратны или вообще меньше 4, тогда может понадобиться довыравнивать ручками или первой программкой)

1. Программки написаны на Перле. Чтобы их запустить, Перл должен быть установлен. Взять инсталляцию можно, например, здесь.
Перл должен прописать путь к себе в PATH, после этого, программки должны запускаться в командной строке "как есть", то есть
<имя программы> <аргументы>
Если это по каким-то причинам не работает (скорее всего, не обновился PATH), можно запустить их, написав в командной строке
<путь к Перлу>\bin\perl <имя программы> <аргументы>
2. Программки работают с экспорт-файлом от программы Transmogrifier. Их первый аргумент - это xml-файл, сгенерированный трансмогом. Теоретически, от опций экспорта ничего зависеть не должно, но, на всякий случай - я использовала программки на экспортах с опцией 'One Zoom, All Channels'.
Чтобы применить изменения, обработанный xml-файл надо импортировать трансмогом :D
3. Программки запускаются из командной строки. Чтобы увидеть список аргументов и пример, просто запустите их без аргументов. Минимальная обработка ошибок там есть, но лучше все-таки не отклоняться от образца.
4. На "всякий пожарный", копия необработанного файла сохраняется с расширением *.bak.

Если будут вопросы - в эту тему.
 
Ура! Нашла нужную тему.

У меня к уважаемым объект-мейкерам есть один интимный вопрос. Вы как координаты предметов подгоняете?

Ну, то, что в т-моге, это понятно. Но, может есть какая-нибудь система? Например, в туториале от 7ds говорится, что надо сфоткать объект в игре, потом в фотошопе посчитать количество пикселей, на который он сдвигается и потом исправить это в xml-файле.

В, принципе, чтобы с xml не париться, двигать можно и в т-моге, но как узнать на сколько двигать? Такую вещь, как стол или там стул можно сдвинуть на глазок и будет более или менее ничего, терпимо. Но вот с картинами, настенными и висячими лампами у меня совсем плохо.

В общем, написала я много, а вопрос сводится к одному, как наиболее эффективно подгонять координаты объекта в т-моге с наименьшей затратой на это времени? (Чтобы в фотошопе пиксели не считать и тд)
 
fendy, вопрос это, вообще говоря, очень интересный, даже можно сказать, болезненный (оо, как я выравнивала объект 4х4! :rolleyes:)

Опытным путем получено:
х - это координата крайнего левого непрозрачного пикселя, у - координата крайнего нижнего непрозрачного пикселя.
Только координаты эти не откуда вздумается, а от точки в центре клетки с высотой ноль. То есть, плоский квадрат-коврик, занимающий всю клетку, будет иметь координаты (-64, 32).

Как определить положение точки (0,0) для произвольной картинки - это вопрос, думаю, нерешаемый :loss:
Если же ты сама картинку делаешь из 3д-редактора, то не так уж и сложно отметить себе эту точку, чтобы посчитать чего надо.
В, принципе, чтобы с xml не париться, двигать можно и в т-моге
Имхо, в хмл-е двигать проще потому что это можно делать не руками :D Я некоторое время назад написала пару скриптиков на перле для этого дела - по крайней мере, задачи "сдвинем-ка все клетки на 5 пикселей влево" и "а теперь подгоним и меньшие масштабы" стали на-амного проще.
Скриптики в "Делаем предметы" я выкладывала, если что.
 
Назад
Сверху