March 28, 2024, 14:40
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: Splinter Cell HD 1,2  (Read 20291 times)
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #15 on: April 02, 2012, 01:33 »

ДА. Там там есть таблица адресов начала объектов.
Когда вырос размер файла - редактор начал искать все объекты по старым адресам, а их там тю-тю. поэтому ничего и не получилось.

Игровой редактор в Splinter Cell оказался неполноценный - с текстурами работать он не умеет. Сейчас думаю, что можно сделать.

1) Попробуйте впихнуть из PS-версии Texture4 и EHUDFont на место всех текстур и фонтов 256x256, не меняя размер файла. В смысле, впихнуть Texture4 из PC-версии на место Texture2 или Texture3 (любой из этих текстур) - у них длина совпадает в точности.

2) Затем заменить в РS3 - версии все 4 таблицы размещения букв на EHUDFont из PC-версии. И проверить в UTPT, что там за текстура оказалась в результате замены в таблице букв - насколько я понимаю, имя текстуры берется из таблицы имен.

Адреса начала и конца для каждого из этих объектов можно посмотреть в UTPT.
Я к сожалению, не умею менять в HEX-е большие куски текста, иначе бы сам попробовал.
« Last Edit: April 02, 2012, 02:39 by Reborn » Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #16 on: April 02, 2012, 02:17 »

сделал
получилась вот такая картина
http://www.imagepost.ru/?v=111_776.jpg

похоже, что некоторые буквы вырезаются некорректно почему-то

ну а вообще в основном эти шрифты мало используются игрой, основные EHUD и ETEXT и с ними как раз проблема
Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #17 on: April 02, 2012, 02:27 »

Ну хоть что-то работает.
Таки ура!

Можно попробывать изменить таблицы размещения букв вручную во всех шрифтах.
Я вам писал о структуре таблицы на прошлой странице.

В каждой таблице есть:
0x00: - порядковый номер буквы,
Texture25 - имя текстуры (вернее, не имя, а её номер)
(0,1) - координаты верхнего угла буквы
(12,14) - размер самой буквы в пикселях.

Всё это можно менять. Попытаться зациклить все шрифты на одну русифицированную текстуру.

Вырезать Hex-объект (его посмотреть в UTPT)
и экспотированную таблицу размещения букв (её тоже можно экспортировать из UTPT)
и попытаться понять, что там чему соответствует.

(Добавлено: я сейчас открыл ENGINE.U в HEX-редакторе и в UTPT, нашел начало шрифта, меняю по одной цифре и смотрю что получается. Координаты буковок движутся. Методом тыка разобраться можно, но долго).
« Last Edit: April 02, 2012, 02:41 by Reborn » Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #18 on: April 02, 2012, 02:41 »

Попытаться зациклить все шрифты на одну русифицированную текстуру.
А как это? Что можно попробовать сделать? Конфиги?
Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #19 on: April 02, 2012, 03:11 »

Есть!
Получилось!

Я открыл файл в UTPT, и смотрю шрифт.
Не ТЕКСТУРУ, а именно сам шрифт.

Вот для примера картинка:
http://dvnd.narod.ru/Test.gif

Самое начало фонта - допустим 00 01 40 52 40 - это имя текстуры.
В приведенном примере (Это ETextFont  в файле Engine.u для PS3) - Texture1

Заменив его на 00 01 49 52 40
мы изменим имя текстуры.

В приведенном примере я заменил ися текстуры с Texture1 на Texture4
Можно заменить текстуру во всех шрифтах на одну единственную текстуру с русскими буквами.

//======================

Далее мы видим список

00000000 00000000 00000000 00000000
00000001 00000001 00000008 0000000E
00000008 00000001 00000008 0000000E

и так далее. Это коордитаты текстур:
0x1F: Texture4 (0,0)-(0,0)
0x20: Texture4 (1,1)-(8,14)
0x21: Texture4 (8,1)-(8,14)

И так далее. Первые два инта соответствуют координатам угла буквы,
третий и четвертый - размеру на текстуре в пикселях.

Можно не париться, и взять всё из исходного шрифта (который был на РС и использовал импортированную вами оттуда текстуру)

//======================

Напоминаю, что всё это видно в UTPT.
//======================

Вроде, всё решено.
После этого все 4 шрифта должны отображаться одинаковыми буквами.
« Last Edit: April 02, 2012, 03:22 by Reborn » Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #20 on: April 02, 2012, 03:30 »

http://dvnd.narod.ru/Test.gif

EHUDFont =      Texture4 = 00 01 49 52 40 04
ETEXFont =       Texture1 = 00 01 40 52 40 04
ETitleFont =       Texture2 = 00 01 43 52 40 04
ETitleBoldFont = Texture3 = 00 01 46 52 40 04

И так делее.

Какая из этих текстур у вас теперь с русскими буквами?
Допустим, Texture2
Соответственно, в заголовке каждого шрифта нужно поменять на  00 01 43 52 40 04
Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #21 on: April 02, 2012, 03:35 »

то есть тогда игра будет ссылаться только на одну текстуру, а те которые не получается заменить просто будут лежать без дела
я правильно понимаю?
Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #22 on: April 02, 2012, 03:36 »

Да. Именно так. Все 4 шрифта будут использовать одну и ту же текстуру.
(а все остальные текстуры лежать без дела)

Иного решения я пока предложить не могу, разве что вы ещё где-нибудь русифицированных шрифтов подходящего вам размера, или сможете запихнуть в движок измененные.

Если данный прием будет работать, и не лень будет возиться - можно будет нагенерировать самых разнообразных шрифтов в редакторе UT2004, и попытаться запихнуть их в движок.
Но не факт, что формат сырых объектов Splinter Cell будет совпадать с форматом сырых объектов UT2004.

Короче, нужно сначала сначала проверить, работает ли то, что имеем, а уже потом замахиваться на большее.  
« Last Edit: April 02, 2012, 03:46 by Reborn » Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #23 on: April 02, 2012, 03:48 »

Так промежуточный результат. Изменения произошли - исчезли кракозябры, но появились обрывки букв, ну это потому что я забыл, сменить таблицу для проблемных шрифтов. Сейчас этим займусь

Ну вроде бы да. Что-то похожее на наш алфавит появилось. Теперь осталась проблема с поврежденными буквами
« Last Edit: April 02, 2012, 04:02 by Orbit » Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #24 on: April 02, 2012, 04:12 »

Что именно повреждено?
Текстура, или таблица размещения букв?

В версии для PC
Texture4 использует шрифт EHUDFont.

Нужно было взять Texture4 и EHUDFont для версии из PC,
затолкнуть эту текстуру на место Texture2 в PS3,
а затем таблицу размещения букв из EHUDFont из версии для PC - на место всех четырех шрифтов PS3.

Вы так и сделали? Не могло где-либо произойти ошибки или смещения?

Попытайтесь распаковать UTPT таблицы размещения букв (EHUDFont из версии для PC и всех 4 шрифтов PS3-версии), и сравнить их (они должны быть идеинтичны, кроме имен текстуры).
А так же распаковать Umodel все текстуры в обоих файлах, и тоже сравнить их.

Сорри, что даю глупые советы, но это первое, что приходит на ум.

« Last Edit: April 02, 2012, 04:20 by Reborn » Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #25 on: April 02, 2012, 04:23 »

Да-да я об этом подумал, сколько я уже ковыряю этот несчастный Engine.u, возможно где-то накосячил. Поэтому я сейчас взял оригинальный файл от пс3 и буду редактировать.

Хм, нет к сожалению все так же. Выглядит примерно вот так
http://www.imagepost.ru/?v=02042012390.jpg

Например внизу угадывается надпись НАЗАД В ГЛАВНОЕ МЕНЮ
Даже не знаю что это. Может буквы банально не влезают в отведенные места?

« Last Edit: April 02, 2012, 04:53 by Orbit » Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #26 on: April 02, 2012, 04:54 »

Очевидно, что для букв А и Г в таблице размещения букв неправильно указано положене на текстуре.

Нужно выяснять причину бага.

1) Приложите исправленный файл (Engine.u)
(я смогу посмотреть часа через 3)

2) Распечатайте (вместо главного меню) АБВГДЕЖЗИКЛМНОПРСТУХЦЧШЩЪЫЬЭЮЯабвгдежзиклмнопрстухцчшщъыьэюя
чтобы было видно какие буквы отображаются неправильно.

« Last Edit: April 02, 2012, 04:58 by Reborn » Logged
Orbit
Newbie
*
Posts: 28


View Profile
« Reply #27 on: April 02, 2012, 05:05 »

http://www.mediafire.com/?l5kmfum32qpzxm6

Хорошо. Спасибо большое за помощь.

Русский алфавит - новая редакция Smiley

http://www.imagepost.ru/?v=02042012391.jpg
« Last Edit: April 02, 2012, 05:26 by Orbit » Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #28 on: April 02, 2012, 05:11 »

Попробуйте точно так же (на место Texture2) импортировать фонт Verdana16 из этого файла.
Отпишитесь - получится или нет.

http://narod.ru/disk/44933655001.30a73d3141c96d3d8bcd74ddb77603c3/2k4Fonts.utx.html
« Last Edit: April 02, 2012, 05:13 by Reborn » Logged
Reborn
Full Member
***
Posts: 103


View Profile
« Reply #29 on: April 02, 2012, 05:27 »

Касательно того файла что вы приложили - смотрите картинку:

http://dvnd.narod.ru/Test2.gif

Движок по-прежнему видит Texture 2 как текстуру размером 256x256.
Хотя она 512x128

Те буквы, которые отображаются в леавой части текстуры (то есть в пределах размера 256x256), движок отображает правильно.
(Это английские заглавные буквы и большинство русских заглавных)

Те буквы, которые вылезли за этот размер, (то есть находятся в правой части текстуры) он не видит (не повезло АБВГДЕЖ)
Поэтому в слове ЗАГРУЗИТЬ буквы З..РУЗИТЬ видны, а А и Г нет.

Движок не удалось обмануть, подсунув ему текстуру другого размера.
По уму, следовало бы залезть в свойства, и заменить 256 на 512, но я ума не приложу, где этот параметр можно найти.

Поэтому я и подсунул вам "квадратный" шрифт из UT2004.
Есть некоторая отличная от нуля вероятность, что формат чистых обьектов в UT2004 и Пандоре совпадает. Это самый простой путь.

Если нет - придётся искать другие пути.
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS