Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Город Мастеров _ Dragon Age Toolset _ Русификация

Автор: Ice Blade Oct 16 2010, 13:39

Цитата
Следовательно, игра откуда то ещё читает текстовую информацию. А откуда именно мне не ведомо.

А мне ведомо, вот только "не правильно" всё это - чувствую не так это должно работать wacko.gif . В целом к проблеме два подхода, один заставить игру воспринимать кастомный тлк (правильный), а второй заставить саму игру воспринимать русский (не правильный). Так вот вчера покопался в обоих направлениях: В первом случае - при экспорте вроде как создаются 3 файла файлы вида *_ru-ru.tlk, воспринимается из них почему-то только core-овский - да и то весьма странно, а самый нужный с дополнительными resref-ами (это который в *\module\overide...) почему-то игнориться. Вместо этого игра берёт данные прям с экспортнутой *.uti -шки, которая как вы наверное догадались создаётся прямяком из палитры, которая в свою очередь SQL с запретом на русский wacko.gif - от сюда и вопросительные знаки.
Идя же по второму пути в обход палитры - я попробовал обычным gff-editor-ом (валяется где-то в tools-ах тулсета), подредактировать саму *.utp-шку так вот сменив LOCSTRING на STRING или RESREF - или чего угодно, ему это судя по всему всё равно, открылся доступ к имени изменив которое, я вернул LOCSTRING и о чудо в игре имя таки наконец сменилось shok.gif , правда с русским этот фокус не прошел cray.gif - точнее не совсем, сами то символы сохраняются - только вот сам Шрифт не проходит, а по тому проходят только символы, а вместо букв...... XX нет не вопросительные знаки biggrin.gif, - теперь квадратики. Одним словом найти бы где эта скотина шрифты переключает.

Автор: Ghost Oct 16 2010, 14:11

Цитата(Ice Blade @ Oct 16 2010, 14:39) *
А мне ведомо, вот только "не правильно" всё это - чувствую не так это должно работать wacko.gif . В целом к проблеме два подхода, один заставить игру воспринимать кастомный тлк (правильный), а второй заставить саму игру воспринимать русский (не правильный). Так вот вчера покопался в обоих направлениях: В первом случае - при экспорте вроде как создаются 3 файла файлы вида *_ru-ru.tlk, воспринимается из них почему-то только core-овский - да и то весьма странно, а самый нужный с дополнительными resref-ами (это который в *\module\overide...) почему-то игнориться. Вместо этого игра берёт данные прям с экспортнутой *.uti -шки, которая как вы наверное догадались создаётся прямяком из палитры, которая в свою очередь SQL с запретом на русский wacko.gif - от сюда и вопросительные знаки.
Идя же по второму пути в обход палитры - я попробовал обычным gff-editor-ом (валяется где-то в tools-ах тулсета), подредактировать саму *.utp-шку так вот сменив LOCSTRING на STRING или RESREF - или чего угодно, ему это судя по всему всё равно, открылся доступ к имени изменив которое, я вернул LOCSTRING и о чудо в игре имя таки наконец сменилось shok.gif , правда с русским этот фокус не прошел cray.gif - точнее не совсем, сами то символы сохраняются - только вот сам Шрифт не проходит, а по тому проходят только символы, а вместо букв...... XX нет не вопросительные знаки biggrin.gif, - теперь квадратики. Одним словом найти бы где эта скотина шрифты переключает.

Да, у меня были подозрения что из uti берётся инфа. sad.gif Разбирал как то западные моды на шмот, и с удивлением обнаружл, что в них тлк вообще отсутствуют. Но уверенности не было, как и понимания почему и каким способом отучить игру (или тулсет) это делать.

Автор: Ice Blade Oct 17 2010, 18:03

Продолжаю копать во всех направлениях.
Выяснил экспериментальным путём - что причина по которой нельзя использовать русский и др. языки - это латиница в SQL, как заставить базу дружить с кириллицей увы не знаю - не специалист sad.gif, - что интерестно имена объектов она не содержит(только stringID и ещё некоторую мелоч), но при этом переваривает через себя данные из тулсета при создании любого вида GFF - потому и офильтровывается русский при сохранении. Кстати единственный способ удалить что либо из палитры тоже SQL (но это думаю уже известно).
Что до второго пути "почему не работают tlk" - то тут всё более туманно, к примеру core_ru-ru.tlk - всё таки работает, однако возможности запихнуть туда что-либо выше 68105 (не путать с StringID) на данный момент не нашёл, ни через левый DAOTlkedit, ни через врезанный Gffeditor. Однако всё что попадает в эти рамки отлично работает причём всё равно на чём ты напишешь хоть латиница, хоть кириллица, хоть обе сразу. Возможно сам tlk - содержит, что-то особенное, а может и туслету где-то сказано не смотреть выше не знаю, надо думать.

Автор: EqKeeper Oct 17 2010, 18:31

Если вся проблема в SQL-базе, то все что нам нужно сделать - изменить кодировку на UTF8. Другой вопрос - сможет ли она потом это считать... но если сможет - проблема будет решена!
Биовари рекомендуют пользоваться вот этой гадостью:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
или
MySQL Administrator'ом.
Попробуем? (увы, с базами тоже мало общался)

Хм... а должно помочь. Ведь он умеет даже работать с кастомными базами:
http://social.bioware.com/wiki/datoolset/index.php/ConfigureToolset.exe#Custom_Database_Settings

---

Тааакс... у них там Latin1 нам нужно либо cp1231 (виндовая русская), либо utf8. Голосую за вторую. Попытался изменить - не дали. Может, просто создать новую базу с кодировкой utf8 и их софтиной ткнуть в нее носом тулсет?

По идее, нам достаточно отправить запрос, вида:
ALTER DATABASE bw_dragonage_content CHARACTER SET utf8;
и всем будет счастье. Но у меня пока не получается. =\

Автор: denis0k Oct 17 2010, 20:39

Если я не ошибаюсь, важны не только чарсеты в базе. Помнится, запускал нвсервер на белорусском хосте, нвнх посылает ср1251, моя база в ср1251, а в полях - вопросики. И всё потому, что вход субд (утф8 кажется) не соответствовал выходу клиента. Решилось легко модификацией инициализации клиента, мускл позволяет настраивать кодировку каждой сессии.

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

В общем, пробуйте smile.gif Только если у вас вин хр, то надо ср1251 ставить по идее.

Автор: EqKeeper Oct 17 2010, 21:05

А по поводу этого умные люди советую делать еще и вот так:
mysql_query(”SET NAMES ‘utf8′”);
mysql_query(”SET collation_connection=’utf8_general_ci’”); // сортировка, думаю не обязательно
mysql_query(”SET collation_server=’utf8_general_ci’”); // сортировка, думаю не обязательно
// а вот из-за этого, скорее всего, у тебя и слетало
mysql_query(”SET character_set_client=’utf8′”);
mysql_query(”SET character_set_connection=’utf8′”);
mysql_query(”SET character_set_results=’utf8′”);
mysql_query(”SET character_set_server=’utf8′”);

Вот только заглянул я сейчас в MSDN - нету там в ALTER DATABASE чарсета. О_о А вот писимистический настрой не разделяю, в вики наткнулся на очень интересный абзац:

Also: For international users (If Your sql server 2005 uses different database collations by default):
When creating db_dragonage_content please remember to change collation from Your local one to:
SQL_Latin1_General_CP1_CI_AS
this is the only collation that guarantees You that those .sql batch scripts will work properly.
То есть предполагается, что сортировка будет в этой самой Latin1 (кажется, CP1252), а все остальное - в произвольной... во всяком случае мне хочется на это надеяться... А если выбирать кодировку то, по уму, вообще неплохо бы делать unicode

--------------
Мда, советы умных людей, видимо, не помогут, потому что использовать их полагается именно при подключении к базе. А это за нас сделает тулсет... Тогда остается руководствуясь статьями:
http://social.bioware.com/wiki/datoolset/index.php/Database
и
http://social.bioware.com/wiki/datoolset/index.php/Manual_database_installation
собрать свою базу с нормальной кодировкой и посмотреть - что из этого выйдет.

--------------
Увлекательное чтиво по смене кодировки на русском:
http://sqlinfo.ru/articles/info/2.html
И чуть менее увлекательное на английском:
http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html
и еще:
http://dev.mysql.com/doc/refman/5.0/en/dynamic-system-variables.html

Автор: denis0k Oct 18 2010, 00:39

Я знаю, что надо (было) делать (к слову, не так, как ты советуешь), я к тому, что делается это ИЗ КЛИЕНТА. А клиент в текущем случае - тулсет smile.gif

Цитата
нету там в ALTER DATABASE чарсета
А должен быть smile.gif Также ф-я работает на другие элементы, это базовая возможность sql.
Цитата
А если выбирать кодировку то, по уму, вообще неплохо бы делать unicode
По уму, надо было биоварям в юникоде всё делать. А в текущей ситуации надо выяснять, в чём тулсет выдаёт в базу и ставить там подходящую кодировку.

P.S. Вообще, это кажется киллер-фича тулсетов биоварей. Без правки таблиц в реестре (1250->1251) тулсет нвн1 не принимает кириллицу (аки какой-нить фотошоп 5.0), а без спецпатча даже не компилит скрипты из-за буквы "я". И это спустя года 4 активного патченья игры.

Автор: EqKeeper Oct 18 2010, 06:17

Верю. Мое общение с SQL всегда было специфично и далеко от традиционного. blush.gif Учитывая, что сортировка проводится в Latin1(cp1252) то, могу предположить, что и выкидывает он в ней же. Тогда что нам мешает перенаправить 1252 в Unicide? rolleyes.gif

Автор: denis0k Oct 18 2010, 09:26

Цитата
Тогда что нам мешает перенаправить 1252 в Unicide?
Например, отсутствие исходников тулсета smile.gif Важна не только кодировка в базе, нужно, чтобы мускл знал, в какой кодировке ему дают данные и (если надо) перекодировал на лету в формат базы.

Собсно, это уже начинает напоминать лечение цирроза по фотографии, у меня-то тулсета нет, и ставить его я не собираюсь особо smile.gif Так что пробуй то, что ты реально сможешь сделать, а именно:
- создай новую базу с утф8 и натрави на неё тулсет (думаю, это быстрее, чем перекодировать существующую)
- настрой мускл на утф8, в т.ч. и сопоставления (collation) не забудь
- если не прокатило, делай всё заново с ср1251
- не знаю как там с софтом от мс, но в mysql есть опции типа init-connect="SET NAMES <cp>" (на соединение выполняет настройку) и skip-character-set-client-handshake (не давать клиенту ставить кодировку при подключении), подобное тож можно поковырять

P.S. Меня очень смущает то, что прошёл уже год, и подобное шаманство уже скорее всего пробовали smile.gif

Автор: Griffon Oct 18 2010, 13:10

В свое время нашел вот такие советы:

In the toolset there is no tool to manage foreign languages (I read an answer from a Bioware guy explaining that the language tool they use was not implemented in the toolset for players). If you want to manage foreign languages, you have to create your own talktables.
Here is a nice tool done by anakin5 for that http://social.bioware.com/project/1586/#details

*************************************

- build your module/addin and use english as the core language because other languages do have display problems (like in german the umlauts)
- dialogues, item names and descriptions could use placeholders so that you are able to identify them later within the string editor
- after building your module/addin check in all your resources
- open up the string editor and check if all the needed resources are there
- export your module/addin and afterwards your talktable ("export talktable")
- you will get 3 talktables scattered around within the module's folders
- two of the 3 talktables have a suffix = _f and _c

i do believe that _f stands for foreign and _c is for core. the foreign language is always empty and can be deleted. the core talktable contains descriptions for skills, materials and so on. if you don't use custom ones this talktable can be deleted too. you just need the "your_modules_name_en-us.tlk"

- copy this tlk and rename it with the appropriate language suffix = e.g.: your_module_name_es-es.tlk for spanish
- drag'n drop this talktable within the toolset's window and it will open a node tree with all the string entries containing the english description
- rewrite all the entries and do the translation^^
- afterwards just save the tlk
- now place this tlk within the following folder:

your base tlk (modules_name_es-es.tlk) = my documents/bioware/dragon age/addins/modules_name/module/data/talktables

the core talktabe (modules_name_c_es-es.tlk, as said only useful if you are using custom skills and other custom core resources) = my documents/bioware/dragon age/addins/modules_name/core/data/talktables

- the last step is to push all your exported resources (like items, characters, dialogues and so on) through the flag patcher anakin5 provided and your are done
- now if you need other languages just grab your tlk, copy and rename it, drag'n drop within the toolset and rewrite all the entries

the tlktool is only needed if you are translating all the languages on the fly. i never used it and therefore it is not tested by me, although it may give you a more comfortable workflow. i like to do it manually biggrin.gif

within the toolset's options you could also switch to another language but it seems that the toolset was never designed to use other string characters then the english ones or i am just too stupid^^

*************************************

first you only need the tlk file located at your module/override folder. the others are not important if you only want to translate dialogues, item descriptions and so on. if your tlk file is empty then you propably have not checked in your resources. after the check in you could open the string editor and verify that all of the resources, that need a translation, are there.

to check in a resource you right click it and select "check in".

it is highly recommended that you build your module in english as the core language - with other languages there will pop up problems with special characters (like umlauts in german). after exporting your english talktable you should make a copy of it and drag'n drop it into the toolset and edit the strings of the entries line by line to the targeted foreign language. than you have to rename the tlk file to the appropriate language (e.g. german = de_de, russian = ru_ru... check the installed tlk files of the official dlc within your documents folder for the correct names).

now you have to use the flag patcher anakin5 made so that the talktables get recognized by the game engine. after all this hassle you successfuly made your first translation in dragon age: origins

anakin also made a great tool to easily create lots of talktables for different languages. give it a try


Автор: denis0k Oct 18 2010, 13:19

Цитата
I read an answer from a Bioware guy explaining that the language tool they use was not implemented in the toolset for players
БУ-ГА-ГА lol.gif

P.S. Не удержался.
P.P.S. Круче только близзы, банящие игроков за читы в сингле ск2 crazy.gif

Автор: Ghost Oct 18 2010, 13:20

http://social.bioware.com/project/1586/ собственно тулза Анакина5.
Усп, таки ссылк сверху есть.
Сам пробовал юзать, но как то не получилось (видимо не так использовал). =\

Автор: Griffon Oct 18 2010, 14:06

denis0k, пока не прочел что тулс обрезали, тоже удивлялся почему Био молчат на все запросы. biggrin.gif

Теперь по теме..... Возможно если скопировать экспортированный ТЛК, переименовать его и после редактирования сохранить в my documents/bioware/dragon age/addins/modules_name/core/data/talktables получаем 2 ТЛК файла - 1 в папке оверрайд и 2 в базе данных модуля. Затем используя flag patcher игра подцепит файлы диалога, предметов и т.п.?

Автор: Ice Blade Oct 22 2010, 19:23

Продолжаю копать.
Вопрос: в диалогах русский у всех работает ? - я имею виду файлы вида *.dlg. Или это меня уже глючит ?

Автор: EqKeeper Oct 23 2010, 17:10

Цитата(Ice Blade @ Oct 22 2010, 20:23) *
Продолжаю копать.
Вопрос: в диалогах русский у всех работает ? - я имею виду файлы вида *.dlg. Или это меня уже глючит ?

Хмм... С самого начала не работал. В принципе достаточно создать тот же диалог, сохранить и заново открыть модуль - на месте русского текста будут вопросики. И так со всем.

Автор: Ice Blade Oct 23 2010, 17:49

Интересная вещь получается, пишешь диалог - не сохраняя экспортишь = русский текст в игре работает, сохраняешь - не работает wacko.gif, - как выяснил если gff не сохранять - а прямо экспортить, то кириллица пишется прямо в gff-е. В диалогах при этом работает, а в названиях в виде квадратиков, а не "???" (следовательно лечится шрифтом - осталось его найти в ресурсах). Открывал gff - там к моему удивлению всё по русски, причём и сохраняется по русски biggrin.gif. Короче в принципе, метод работы с кириллицей есть, - только вот он мне совсем не нравится, уж больно неудобно. Всё таки надо как-то заставить работать через тлк. Щас вот думаю - либо попробовать как-то core_*.tlk разширить, либо более радикально - сделать "пересадку" мозг... - то естьамодуля в тело singleplayer-а - по крайне мере такой метод лечит глюк с водой, может и здесь прокатит ? - короче буду пробовать.

Автор: EqKeeper Oct 23 2010, 23:38

Здорово! Если будет время на выходны...ом... тоже присоединюсь! (хотя пользы от меня... >_>). Но все же! biggrin.gif

Автор: Ghost Oct 23 2010, 23:58

Расширять core_*.tlk (да и вообще синглплеер) это имхо извращение (но таки да, пока предложить всё ещё нечего). =\
з.ы. А что за глюк с водой?

Автор: Ice Blade Oct 24 2010, 21:12

Блин, не доберусь я сегодня до тулсета - ну да и ладно..
А про воду, есть один известный глюк - если просто экспортить левел в модуль, то waterplane-ы в итоге отображаются тулсетом в area, но совершенно исчезают в самой игре. Однако если экспортнуть левел в singleplayer, а потом перетащить соответствующие файлы/папки в свой модуль, по они прекрасно работают что в игре - что в тулсете. (столкнулся с этим когда собирал левел в теме Левел-дизайн). Одним словом ошибка происходит уже при сборке *.arl (или чего-то там связанного), - особо в подробности не вдавался (хотя надо бы), но почему-то думаю что с тлк похожая болезнь, - опять-же всё это домыслы, надо пробовать.
--------------------------------------------

Я таки добрался до тулсета biggrin.gif
И так, есть две новости по обоим направлениям:
ТЛК:
С самими тлк-шками всё нормально, глючат gff-ки создаваемые тулсетом. Проверил просто взял utp-шку из компании, переименовал в экспортнутую, а в тлк забил stringID первой - и как и ожидалось всё заработало. Короче тулсет при экспорте чего-то не так записывает в StringID wacko.gif

БД:
Кажется нашёл таки способ заставить БД понимать русский yahoo.gif Через SQL Server Managment Studio залез в Databases->bw_dragonage_content->Tables->System Tables->правой кнопкой на dbo.t_StringText->Modify поменял колонку text с text на ntext, сохранил (игнорируя матюки biggrin.gif ). И собственно всё отныне кириллица принимается тулсетом в плейсиблах в поле NAME biggrin.gif, на экпорте создаются utp-ки с кирилицей внутри, соответственно в игре нас ждут квадратики. Если у кого есть время большая просьба пошарьте по ресурсам (тулсет их может открывать *.erf *.rim и т.д ) и найдите эти вредные шрифты (вероятнее всего обычные *.ttf, может текстуры вида *.ddr/gfx а может и то и другое вместе или что-то ещё) search.gif
А то щас опять на неделю на работу, а там не до тулсета drag.gif

Автор: Ghost Oct 24 2010, 23:14

Это здорово, но всё равно выглядит как костыли калеки. smile.gif

Автор: Griffon Oct 25 2010, 09:25

Ghost, а тебе так и не удалось получить инфу от тех, кто переводил DLC?

Автор: Ghost Oct 25 2010, 09:32

Там всё банально и пошло, я сам так делал. Они переводили официальные ДЛЦ, а у них нет проблем с распознаванием тлк-файлов. Простое переименование en_en*.tlk в ru_ru*.tlk и перевод текста с помощью тлк эдитора. То есть тулсет не трогали вообще.

Автор: Griffon Oct 25 2010, 09:52

Тогда остается единственный путь, предлогаемый Айсом - подогнать БД под тулсет и найти шрифты.

Автор: EqKeeper Oct 25 2010, 18:26

Цитата(Ice Blade @ Oct 24 2010, 22:12) *
Блин, не доберусь я сегодня до тулсета - ну да и ладно..
А про воду, есть один известный глюк - если просто экспортить левел в модуль, то waterplane-ы в итоге отображаются тулсетом в area, но совершенно исчезают в самой игре. Однако если экспортнуть левел в singleplayer, а потом перетащить соответствующие файлы/папки в свой модуль, по они прекрасно работают что в игре - что в тулсете. (столкнулся с этим когда собирал левел в теме Левел-дизайн). Одним словом ошибка происходит уже при сборке *.arl (или чего-то там связанного), - особо в подробности не вдавался (хотя надо бы), но почему-то думаю что с тлк похожая болезнь, - опять-же всё это домыслы, надо пробовать.
--------------------------------------------

Я таки добрался до тулсета biggrin.gif
И так, есть две новости по обоим направлениям:
ТЛК:
С самими тлк-шками всё нормально, глючат gff-ки создаваемые тулсетом. Проверил просто взял utp-шку из компании, переименовал в экспортнутую, а в тлк забил stringID первой - и как и ожидалось всё заработало. Короче тулсет при экспорте чего-то не так записывает в StringID wacko.gif

БД:
Кажется нашёл таки способ заставить БД понимать русский yahoo.gif Через SQL Server Managment Studio залез в Databases->bw_dragonage_content->Tables->System Tables->правой кнопкой на dbo.t_StringText->Modify поменял колонку text с text на ntext, сохранил (игнорируя матюки biggrin.gif ). И собственно всё отныне кириллица принимается тулсетом в плейсиблах в поле NAME biggrin.gif, на экпорте создаются utp-ки с кирилицей внутри, соответственно в игре нас ждут квадратики. Если у кого есть время большая просьба пошарьте по ресурсам (тулсет их может открывать *.erf *.rim и т.д ) и найдите эти вредные шрифты (вероятнее всего обычные *.ttf, может текстуры вида *.ddr/gfx а может и то и другое вместе или что-то ещё) search.gif
А то щас опять на неделю на работу, а там не до тулсета drag.gif


Молодца! good.gif
Поковырялся. В файле \Dragon Age\packages\core\data\gui.erf нашел два шрифта - nogard.ttf и nofatd_text.ttf С названиями Nogard и Dragon Text.
Однако попробовал написать ими что-нибудь в офисе - прекрасно пишут и по-русски и латиницей. Возможно, есть и другие или в патчах\аддоне кто-то их замещает. Буду рыть дальше (но тоже работа =\)
---
Однако попытка закинуть Arial с такими же названиями в папку Override ни к чему ни привела - шрифт в игре не изменился...
---
Хех, первый же запрос по названию шрифта привел к ниппонцам:
Цитата
解析経過メモ
プログラムは完全ユニコード対応してるがデフォルトで日本語フォントが無い
文字表示システムはTTFから直表示してる
フォント実体はgui.erfの中にnogard.TTFとnogardーtext.TTFとして格納
ちなみにロシア語フォントも入ってる
マイドキュメントのoverrideに↑フォントに日本語フォント格納したTTFを入れたが読み込んでくれない
フォントファイルは作ったから後は読みこませれば日本語化できるはずなんだが、フォントファイル単体では読み込んでくれないみたい
アンパックはできてもリパック出来ないんで、ツールかくしかないかな


А вот и еще один сайтик на ниппонском:
http://ethelion.blog9.fc2.com/blog-entry-98.html
Можно покопаться. Увы, мои знания нихонго оставляют желать лучшего, так что придется довольствоваться гугловским промтом:

http://translate.google.ru/translate?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=ja&tl=ru&u=http%3A%2F%2Fethelion.blog9.fc2.com%2Fblog-entry-98.html

Если я все правильно понял, то нашей проблемой уже озадачились в корее, а за ней - в ниппонии. И ниппонский автор описывает, как при помощи Flash 7, имеющего схожий формат с fonts_*.gfx, можно заставить шрифты DA понимать нихонские иероглифы.
Цитата
▼ Scaleform GFX резюме формат шрифта

1. Flash7(AS2.0)でflaファイルを作成 1. Flash7 (AS2.0) FLA файл
2. フォントを登録 2. Регистрация шрифтов
3. フォントを埋め込む(リンケージ処理) 3. Вставить шрифта обработки (связь)
4. Flash7形式の圧縮SWFムービーとして書き出す 4. Flash7 Экспорт в SWF-формат сжатия фильма
5. swfmillでXML化 5. Swfmill из XML
6. 必要な情報を編集※ 6. ※ редактирования необходимой информации
7. swfmillでSWFに戻す 7. Swfmill обратно в SWF
8. バイナリエディタでヘッダ修正 8. Заголовок корректор редактор двоичных файлов
9. 拡張子をgfxに変更 9. Gfx расширение изменения


---

Помянутые автором fonts_*.gfx лежат в файле \Dragon Age\packages\core\data\guiexport.erf
Быть может, в нашем случае все будет проще, так-как наш ru-ru там тоже есть.

---

Фсё! Посильную лепту внес. Спать! smile.gif

Ghost
Пардон, а в чем костыли? Русские буквы в базе сохраняются. Осталось исправить шрифт и можно будет полноценно пользоваться тулсетом.

Автор: Leon PRO Oct 27 2010, 20:51

Цитата
Пардон, а в чем костыли? Русские буквы в базе сохраняются. Осталось исправить шрифт и можно будет полноценно пользоваться тулсетом.

Объявляем метод костылями и продолжаем ничего не делать, так как это не по пОцански - делать мод на костылях biggrin.gif

Автор: Ghost Oct 27 2010, 21:10

Леоно, брысь! smile.gif
Я понимаю что по другому пока никак, но меня не отпускает ощущение что это забивание гвоздей микроскопом. =\

Автор: denis0k Oct 27 2010, 22:50

А всё остальное на этом форуме конечно же не забивание гвоздей микроскопом smile.gif

Автор: Ghost Oct 28 2010, 00:24

Цитата(denis0k @ Oct 27 2010, 23:50) *
А всё остальное на этом форуме конечно же не забивание гвоздей микроскопом smile.gif

Всё остальное в меньшей степени имхо. smile.gif

Автор: Laajin Oct 28 2010, 08:42

микроскоп достаточно тяжелый для забивания гвоздей

Автор: EqKeeper Oct 28 2010, 17:26

Господа Leon PRO, denis0k, Ghost, Laajin, вы озверели? Особенно это касается Leon PRO. Что за флудильню вы здесь устроили?! Есть желание ковырять редактор - ковыряем. Нет желания и хочется потрепаться о кастылях и микроскопах - в другой раздел, лучше - в ПМ. rtfm.gif

Автор: Ice Blade Oct 28 2010, 19:00

Ладно я быстро и по делу:
GFX - идея интерестная, но увы это оказался всего лишь интерфейс - но не сам шрифт (кстати поддерживается просто swf ^) )
Nogard - пока не понял каким боком привязан, думаю...
А вот из интересного - arial12.dds из textures
http://radikal.ru/F/s007.radikal.ru/i301/1010/33/44b47966d9b5.jpg.html
Как видно они вообще иных языков не предусматривали crazy.gif
Буду потихоньку искать дальше...

PS. Что до забивания гвоздей.. - как по вашему был руссофицирован НВН1 ? И ведь ничего, устраивал. Кстати если у кого он под рукой, может гляните как выглядила эта руссификация ? За кроме dialog.tlk конечно, - а то я сомневаюсь что биовар чего-то там сильно нового выдумала, может всё же поможет найти искомое в ДА.

Автор: kiruhs Oct 28 2010, 23:12

Цитата(Ice Blade @ Oct 28 2010, 19:00) *
Кстати если у кого он под рукой, может гляните как выглядила эта руссификация ? За кроме dialog.tlk конечно, - а то я сомневаюсь что биовар чего-то там сильно нового выдумала, может всё же поможет найти искомое в ДА.


На этом и все. Диалог.тлк ну и, естественно, русские шрифты в овверайд

Автор: EqKeeper Oct 29 2010, 16:40

Цитата(Ice Blade @ Oct 28 2010, 20:00) *
Ладно я быстро и по делу:
GFX - идея интерестная, но увы это оказался всего лишь интерфейс - но не сам шрифт (кстати поддерживается просто swf ^) )
Nogard - пока не понял каким боком привязан, думаю...
А вот из интересного - arial12.dds из textures
http://radikal.ru/F/s007.radikal.ru/i301/1010/33/44b47966d9b5.jpg.html
Как видно они вообще иных языков не предусматривали crazy.gif
Буду потихоньку искать дальше...

PS. Что до забивания гвоздей.. - как по вашему был руссофицирован НВН1 ? И ведь ничего, устраивал. Кстати если у кого он под рукой, может гляните как выглядила эта руссификация ? За кроме dialog.tlk конечно, - а то я сомневаюсь что биовар чего-то там сильно нового выдумала, может всё же поможет найти искомое в ДА.


Одно "но" - в игре тексты рисуются не этим шрифтом... scratch_one-s_head.gif

Автор: Leon PRO Oct 30 2010, 14:07

EqKeeper, а почему это меня касается больше остальных? Я вообще тут только одно предложение написал! (предлагаю мое слово в этом споре сделать последним biggrin.gif )
А по сабжу - мне оч. интересно войдет ли тема в рамки программной модификации.

Автор: Ice Blade Oct 31 2010, 11:33

Был не прав - похоже это всё таки gfx-ина. На основе сведений добытых EqKeeper-ом у японцев, попробовал их fonts_en-us.gfx - действительно работает и вводит поддержку японского. К слову и весит он порядка 2-х Мб, наш же как и все остальные значительно меньше, видать дело в юникоде... Короче при переименовании fonts_en-us.gfx в fonts_ru-ru.gfx вместо квадратиков начинают проскальзывать японские иероглифы, а значит направление верное, вот только от flash -а, я человек ещё более далёкий чем от sql-а sad.gif

PS. Хто-нить в курсе в ДА2 - тулсета точно не будет ? - а то может зря мучаемся.

Автор: EqKeeper Oct 31 2010, 14:08

Не в курсе. Но могу предположить, что Toolset будет или они доработают существующий для совместимости. Иначе нелогично создание Wiki. Вот только до выхода самой игры еще полгода, еще полгода биовари будут озабочены исключительно выпуском DLC. Потом, когда фанаты их окончательно одолеют, они, может, и займутся редактором, вот только никто не гарантирует, что в нем не будет той же проблемы. Да и творить то хочется сейчас, а не когда-нибудь потом. smile.gif Тем более, что сценарий, модели, текстуры, звуки, большая часть скриптов - останутся неизменны. И намного проще будет освоить новый редактор (если он будет), умея пользоваться старым, чем начинать с нуля. smile.gif

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

Автор: Ice Blade Oct 31 2010, 14:32

Ну флешей так уж прямо не откроешь, в WIKI об это чего-то написано (в UI Tutorial) - там и декомпилятор понадобится и какие-то особенности перегонки gfx в swf - но я в общем в это особо не вдавался.

Автор: virusman Oct 31 2010, 16:50

Про тулсет сказали, что его в DA2 не будет, но есть вероятность, что можно будет использовать существующий с какими-то доработками, которые должно сделать коммьюнити (Bioware, похоже, ничего нового предоставлять не будет).
Ну очевидно - EA никогда особой поддержкой моддинг-коммьюнити не отличалась. smile.gif

Автор: Leon PRO Oct 31 2010, 17:33

дайте какой-нибудь минимально-весящий мод только для проверки русского текста, пожалста. А то у меня Тулсет не стоит.

Автор: Griffon Nov 1 2010, 11:38

Leon, а на фига он тебе без редактора? Свой тестовый удалил вместе в редактором более полугода назад.

Автор: Leon PRO Nov 1 2010, 11:53

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

Автор: Griffon Nov 1 2010, 14:28

Ради стремления решить проблему поставлю тулс вновь и создам локу с парочкой предметов и диалогом. biggrin.gif Завтра-послезавтра выложу минимод.

Автор: Leon PRO Nov 1 2010, 17:11

Проще (размером), ИМХО сделать мод кампании, просто добавив в локацию отдыха, например тестового непися с диалогом.

Автор: Griffon Nov 2 2010, 11:38

Тебе повезло smile.gif Нашел в папке Документы\Bioware\

http://rapidshare.com/files/428447767/Rus_lantest.rar 26кВ.


Автор: Lex Nov 2 2010, 13:50

Цитата(EqKeeper @ Oct 28 2010, 18:26) *
Господа Leon PRO, denis0k, Ghost, Laajin, вы озверели? Особенно это касается Leon PRO. Что за флудильню вы здесь устроили?! Есть желание ковырять редактор - ковыряем. Нет желания и хочется потрепаться о кастылях и микроскопах - в другой раздел, лучше - в ПМ. rtfm.gif

немного поспокойнее.
Цитата(Прафила Форума)
2.5. Не рекомендуется заниматься самомодерированием, т.е. делать замечания другим участникам форума (приравнивается к нарушению настоящих Правил, дополнительная санкция – персональная предмодерация сообщений). О своем несогласии с чьими-либо действиями на форуме лучше обратиться к его администрации.

Автор: Aiwan Nov 2 2010, 16:40

Если 100 мессаг флуда запустят тулсет ДА, я даю добро на сто мессаг. declare.gif

Автор: Ice Blade Nov 2 2010, 17:39

Цитата
http://rapidshare.com/files/428447767/Rus_lantest.rar 26кВ.

Сожалею, но это изначально бесполезная вешь. В gff-ах русского нет, а сам модуль невозможно запустить.
Так что Лео либо давай gfx-сину vava.gif - на растерзание, либо жди до завтра - попробую чего нить сварганить.

Автор: Leon PRO Nov 2 2010, 18:27

Не дам, ибо поковыряв Китайский GFX я почти уверен, что напортачил, а позориться не охота biggrin.gif
Я просто заменил ссылку внутри GFX на Arial.fft и TimesNewRomain.ttf а также на всякий случай включил файлы этих шрифтов в ERF. Оригинальные тексты в игре сразу стали квадратиками, и вот мне интересно, станут ли квадратики в новом моде нормальным текстом.

И, по-моему, просто заменой файлов шрифтов в GFX не обойтись =( кажется нужен еще "правильный" файл со шрифтами. Например те шрифты, что встроены в демонстрационный китайский мод содержат и английские и китайские символы (и еще и русские).

Мб, если мне сегодня включат интернет - найду как залить дамп БД в MS SQL без Enterprise Manager 2008.

Автор: Ice Blade Nov 2 2010, 19:12

Цитата
И, по-моему, просто заменой файлов шрифтов в GFX не обойтись =( кажется нужен еще "правильный" файл со шрифтами. Например те шрифты, что встроены в демонстрационный китайский мод содержат и английские и китайские символы (и еще и русские).

Ну это в принципе ожидаемо UTF-8, UTF - 16, UTF - 32 и х.з знает что ешё может быть. Даже вышеупомянутый Arial12 которым набивается консоль представлен в виде текстуры, да ещё и требует файла разметки. Так что могли чего угодно запихнуть в gfx, но ведь даже китаёзы разобрались - может и нам повезёт....
Хотя есть кое что интересное, к примеру то что в диалогах - русский то работает (ну если в наглую его записать конечно biggrin.gif ) правда мои познания (да и инструментарий sad.gif) не позволяют сравнить conversation.gfx с искомым fonts_en-us.gfx(fonts_ru-ru.gfx), но работают точно причём не через tlk.

Автор: EqKeeper Nov 2 2010, 20:01

Ммм... а банальная замена fonts_ru-ru.gfx на conversation.gfx не прокатывает? smile.gif

Автор: Leon PRO Nov 2 2010, 20:15

В conversation.gfx всего навсего 2 шрифта:
Один определяется как "$BodyFont" (возможно шрифт по умолчанию) а другой как "Dragon Text" и один из них только на английском.
А вообще этот файл - представляет функционал панели диалогов.

Замена естественно не подойдет. Это совершенно разные файлы с разными скриптами и функциональностью.

Автор: Ice Blade Nov 2 2010, 21:33

Обещанный минимод:
http://depositfiles.com/files/ti2k9d3eg
или
http://www.mediafire.com/?99x393ben92r8px
Установка - как и любой DLC закинуть в DAUpdater затем искать в "других компаниях" в игре, либо соответственно в ....документах....\BioWare\Dragon Age\AddIns\Rus_mod\ - если хочется посмотреть на gff-ки прийдётся распаковать erf из data. Плейсибл (в названии "Рус") и диалог содержат вшитый русский соответственно никаких тлк-шек нет. Area layout на основе Arena и как ресурс в мод не включён - потому хз. будет он у "не" обладателей тулсета или нет.

Автор: Leon PRO Nov 2 2010, 23:00

Брр, так что проверять то ? =)

Сейчас имеем: Диалог на русском, а табличка - квадратики, все верно?
Надо: табличка - читабельна ?

Спасибо Айс, но лучше б ты максимальное количество разных типов строк квадратиками забил smile.gif с полным набором Кириллицы.

UPD.1 У меня квадратики - квадратиками. Прдолжаю ковырять.
UPD.2 Попробую тулсет поставить =(
UPD.3 Установил тулсет, делаю первый модуль.
UPD.4 Слегка поосвоился с тулсетом, поковырял в HEX-редакторе .utp шки. К слову, вбивать текст можно прям через редактор и сохранять, не обязательно открывать GFF эдитором.
UPD.5 Иногда меня посещает ощущение, что копаем не в ту сторону, но пока что опыта слишком мало, чтобы предложить что-то другое.

Автор: Ice Blade Nov 3 2010, 17:11

Цитата
UPD.4 Слегка поосвоился с тулсетом, поковырял в HEX-редакторе .utp шки. К слову, вбивать текст можно прям через редактор и сохранять, не обязательно открывать GFF эдитором.

Что интерестно, да - вот только потом открыть в тулсете нельзя - но нут виновата БД, ибо сейв происходит в БД - а вот экспорт в gff. С диалогами то же самое, написал и тут же экспортнул - диалог русский, написал - сохранил/открыл и диалог уже "????? ???? ????". Можно конечно условно скажем "выличить БД" - но помогает только диалогам, в остальном у нас квадратики.

Цитата
UPD.5 Иногда меня посещает ощущение, что копаем не в ту сторону, но пока что опыта слишком мало, чтобы предложить что-то другое.

В общем-то другое направление см. выше это использование тлк. Там всё работает как надо, вот только сам тулсет экспортит неправильно gff-ки. Х.з почему unknw.gif. В gff-ках из компании (включая некоторые диалоги), вообще текста нет, но при этом правильно работают TlkString-и и соответственно нормально подключается модульная тлк-шка с локализацией. Кстати всё хотел попробовать с экспортнутым диалогом, может тоже работает ?!? , а то как-то подозрительно выглядит присутствие TlkString вместо LocString-а

Автор: Ice Blade Nov 4 2010, 21:31

Удалось запустить тлк !!!!!!!!!!! yahoo.gif yahoo.gif yahoo.gif
Короче верное оказалось предположение что тулсет глючит и записывает кое-что левое в gff-ку (ну не совсем левое скорее эхкммм.. немного лишнее)
Чуть позже попробую объяснить подробней. Но если в крацах, испльзуйте gff-editor скажем от Ведьмака, ну или НВН2 - костыли конечно но реально работающие good.gif

--------------------------------------------------------------
Краткий порядок действий:
Качаем любой "толковый" gff editor способный работать с gff v 3.2
К примеру этот сойдёт:
http://mods.starwarsknights.com/tk102/utils/nwn2gff_123.rar
Открываем экспортнутую gff-ку (в моём случае это была itp-шка)
Ищем ветки LocName, а так же LocPopup и удаляем к "чёртовой бабушке" все LocalString-и что к ним привязаны.
И о чудо mod_ru-ru.tlk - теперь работает.
Короче если подчищать всё gff-ки после экспорта - то с русским проблема решена, хоть и через большую Ж.

Автор: EqKeeper Nov 5 2010, 18:58

Цитата(Ice Blade @ Nov 4 2010, 22:31) *
Удалось запустить тлк !!!!!!!!!!! yahoo.gif yahoo.gif yahoo.gif
Короче верное оказалось предположение что тулсет глючит и записывает кое-что левое в gff-ку (ну не совсем левое скорее эхкммм.. немного лишнее)
Чуть позже попробую объяснить подробней. Но если в крацах, испльзуйте gff-editor скажем от Ведьмака, ну или НВН2 - костыли конечно но реально работающие good.gif

--------------------------------------------------------------
Краткий порядок действий:
Качаем любой "толковый" gff editor способный работать с gff v 3.2
К примеру этот сойдёт:
http://mods.starwarsknights.com/tk102/utils/nwn2gff_123.rar
Открываем экспортнутую gff-ку (в моём случае это была itp-шка)
Ищем ветки LocName, а так же LocPopup и удаляем к "чёртовой бабушке" все LocalString-и что к ним привязаны.
И о чудо mod_ru-ru.tlk - теперь работает.
Короче если подчищать всё gff-ки после экспорта - то с русским проблема решена, хоть и через большую Ж.

yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif
Сажусь за написание макроса для автоматизации очистки.
Дальнейшие изыскания продолжишь?

P.S. Кстати, как пользоваться tlk'шками? Как их подцеплять, как указывать в модуле на строки из них? smile.gif

Автор: Ice Blade Nov 5 2010, 19:58

Цитата
Дальнейшие изыскания продолжишь?

Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ? Темой интересуются от силы три с половиной человека, так что если и буду что-то разбирать - то очень "по настроению", но по вопросу руссификации попробую расписать что знаю, но позже.

Автор: EqKeeper Nov 5 2010, 22:00

Макрос нарисовал, осталось немножко стабилизировать. Племянник выгоняет из-за машины, так что итоговую версию скину уже ближе к ночи. После (видел исходники) примусь за написание более цивильной программки, которая будет сама сносить все лишнее, без использования чужих редакторов. Подскажите заодно - какие форматы файлов нужно вычищать? Помимо *.uti

Автор: Leon PRO Nov 5 2010, 22:22

Цитата
Удалось запустить тлк !!!!!!!!!!!

Пгастите, что я в танке, а в чем была проблема ? =D

Цитата
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ?

Тоже самое, просто мозги хочется размять. Слишком много человекочасов требуют современные игры для удовлетворительного рещультата модов. А золотое школьное время прошло )

Автор: Ghost Nov 5 2010, 22:25

Леончег танкист. smile.gif Трабл был в том, что кастомные тлк файлы были до лампочки. Не видела их игра. Теперь, благодаря шаманствам Айса, она вроде как их видит.

Автор: EqKeeper Nov 6 2010, 00:44

Собственно, как и обещал. Макрос для массового изничтожения. Две версии под x64 и x86.
Поддерживается формат *.uti. Если нужны другие - пишите.
Тестировалось на группе файлов, проблем не обнаружено. Тем не менее - делайте бэкапы на первых парах.
Обо всех проблемах сразу же сообщайте.
Чтобы пользователь не смог помешать работе макроса, на время его выполнения полностью блокируется ввод с клавиатуры. Если что-то пойдет не так, и понадобится остановить работу - нажмите Alt+Ctrl+Del. Это вернет управление. Далее в трее (рядом с часами) щелкните правой кнопкой на появившийся там значок макроса и выберите в контекстном меню Exit.

http://www.rapidshare.ru/1678800
http://www.megaupload.com/?d=C3FM0SFA
http://webfile.ru/4876507
http://zalil.ru/29923901

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

Автор: Arahna Nov 6 2010, 00:48

Цитата(Ice Blade @ Nov 5 2010, 19:58) *
вопрос надо ли кому это, кроме собственно "меня" самого ?

НАДА!!! good.gif
Моей моральной поддержки таким зубрам маловато будет, но ... как могу... angel.gif
Цитата(Ghost @ Nov 5 2010, 22:25) *
Леончег танкист. smile.gif

А наши ЛЕДчики отважества полны! yahoo.gif

Автор: Ice Blade Nov 6 2010, 10:02

Цитата
Собственно, как и обещал. Макрос для массового изничтожения. Две версии под x64 и x86.
Поддерживается формат *.uti. Если нужны другие - пишите.

Макрос пока не смотрел, но если по форматам - то это практически все gff-ки т.е: *.uti - предметы, *.utp - плейсиблы, *.utc (да и *.chr) - персонажи, *.are - локации, utm - торговцы - и ещё возможно много того с чем пока не сталкивались. В самих файлах как уже ясно надо надо чистить всё что имеет тип CEXLOCSTRING (LocString), в большинстве случаев это имя, описание и popup.
Правда есть ещё пара особых случаев это диалоги(*.dlg) и *.cif - первые вроде и так работают, а у второго несколько отличается формат - однако название, описание и пр. модуля ссылаются именно туда (в общем об этом ещё надо подумать, может и так всё неплохо работает Х.З вопросом сильно не занимался)

Автор: EqKeeper Nov 6 2010, 13:06

Добавил поддержку означенных форматов (но не тестировал), поправил попутно выявленный баг:

http://www.rapidshare.ru/1678980
http://www.megaupload.com/?d=UDEIBLTM
http://webfile.ru/4877104
http://zalil.ru/29924909


Поковырял сырцы. Понял, что а) Ненавижу перл, б) Легче будет написать с нуля. smile.gif
Сейчас пошарю в Вики на предмет описания формата.

Автор: Ice Blade Nov 6 2010, 15:56

Так ладно обещал в крацах рассказать о русификации, рассказываю (само собой для неподготовленых непонятно, но у меня щаз у самого каша в голове)

И так первое что надо - это проверить какую Foreign Tlk экспортит тулсет, смотреть в tools->options->general->Foreign Tlk Table to Export, там должно стоять Russian - Russia.

Далее просто делаем скажем плейсибл:
И вот тут уже надо решать что делать с полем Name (..Popup text).Если БД модифицирована - то можно попробовать записать чего-нить по русски, если нет то по барабану (хотя конечно стоит написать чего нить по английски, что бы в дальнейшем упростить себе жизнь).

Далее просто сохраняем (Save) и ставим плейсибл в area, можно кстати уже экспортить и плейсибл и area, а так же подчищать их на предмет наличия LocString-ов gff-editor-е.

Вот дальше как раз начинается самое интересное, а именно экспорт Foreign Talk table.:
По идее всё просто делаем Tools->Export->Export Foreign Talk table - и получем рабочую русскую тлк-шку (а точнее их несколько и одна из них на английском - но об этом потом).

В общем как раз "Великая проблемма №2" и заключается в содержимом этой самой тлк-шки. - это связанно в частности с механизмом Check In (Check Out). Как я понял он то и создаёт записи в тлк, а точнее список tlkString-ов для них. Русский не переваривает ни в каком виде, забивая всё на ??? ??? ?????? и чихать ему на модификацию ntext-а. Глюк вероятнее всего кроется где-то в имопрте/экспорте БД - но там сам чёрт ногу сломит. Потому пока могу предложить несколько вариантов действий:

1. Локализовывать собственный Мод - по средством внешнего тлк редактора. Главный недостаток - в тулсете прийдётся всё писать на латинице. - Что "censored" само по себе. Но зато с минимумом глюков. Механизм работы подробно описывать смысла нет: но если в крацах - внешним тлк редактором, ищем в тлк-шке нужные strRer-ы и переписываем их на русский, кстати DAOTlkEdit умеет брать strRer-ы прямо из экспортнутых Gff - что весьма сильно упрощает работу. Однако в нагрузку ко всему этому способу прийдётся переписывать и диалоги, ибо руский текст в *.dlg - уже не прокатит.

2. Отказаться вообще от механизма Check In (Check Out). Это вынуждает писать тлк-шку фактически с нуля, забивая в неё свои strRer-ы (с вышеупомянутым DAOTlkEdit не такая уж проблема).
А потому можно использовать модификацию text на ntext в БД. После чего Тулсет начнёт переваривать русский в именах, названиях, описаниях, диалогах (а может и почти везде). *.dlg файлы будут внутри содержать русский текст, так что необходимость в тлк-шке для диалогов - отпадёт сама по себе. Ну и конечно всё это можно сохранять и загружать ( главное обходить стороной Check In). Что интересно: как я уже упоминал проблема подчистки русского всплывает при передаче данных тулсетом в БД механизмом Check In, если в БД заменить полученные от тулсета ????? на что-то более русское, то оно даже экспортится в тлк.


Автор: Ghost Nov 6 2010, 16:14

Второй вариант действий представляется особо непонятным. 0_о Прочитал несколько раз, но понимание пока смутно...
А первый способ таки смотрится съедобным. smile.gif

Автор: Ice Blade Nov 6 2010, 17:00

Разница в том что во втором способе, ты работаешь в тулсете на русском, включая написание диалогов и имён, и палитра у тебя на русском. Как итог в выходную тлк-шку прийдётся забивать самому не только текст но и tlkString-и от названий и описаний, а вот зато диалоги к примеру будут экспортиться прямо с тулсета в исходном виде.
В первом же, ты полностью работаешь с тулсетом на английском, включая диалоги и всё прочее. Как следствие имеешь уже забитую tlk-шку, со стрингами - в которой просто меняешь английское написание на русское, но в нагрузку к именам и описаниям, - получаешь ещё и все диалоги.
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ????

ЗЫ. Что касается конкретных, действий - то конечно могу описать поподробней, - но вся эта идея с починкой тулсета и тлк, пока на грани скорее "удавшегося эксперимента", - нежели конкретного патча. Уж больно много ещё всего неясно.

Автор: Arahna Nov 6 2010, 17:48

Цитата(Ice Blade @ Nov 6 2010, 17:00) *
во втором способе, ты работаешь в тулсете на русском, включая написание диалогов и имён, и палитра у тебя на русском.

Не поняла насчет палитры... Точнее, просто поверить боюсь. Получается, что тулсет может заговорить со мной по-русски, как бабулька Аврора?
Цитата(Ice Blade @ Nov 6 2010, 17:00) *
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой.

Уточняю вопрос: в меню вместо "area" будет "область" вместо "new" - новая и т. д. Так получается?
Цитата(С.А.Есенин)
Из всех земных языков признаю только русский, и, если кому надобно со мной разговаривать, пусть учит русский язык.


Автор: Leon PRO Nov 6 2010, 22:27

Цитата
Уточняю вопрос: в меню вместо "area" будет "область" вместо "new" - новая и т. д. Так получается?

Я думаю, Айс имел в виду что все "русскописные" модульные строки будут на русском, а не тулсет.

Кстати, для просмотра и редактирования всех полей в GFF структурах намного удобнее пользоваться вот http://www.wrg.ru/download.php?view.135программой.
Просто незаменима со времен NWN1
Например, там отображается то самое поле "LocPopupText", которое содержит "поп ап" текст и не выводится GFF редактором DA. Хотя, скорее всего редактор просто неверно интерпретирует тип этого поля, и вместо STRING выставляет LOCSTRING, хотя поле и содержит введенное в тулсете значение.

К сожалению GFF версии 4.0 она не открывает.

UPD. 1 Кстати в папочке tools вместе с тулсетом есть COM коспонента которая предоставляется интерфейсы для открытия, чтения и записи v4.0 GFF структур и ресурсных файлов (ERF, TLK и т.д.) и даже, кажется позволяет компилить скрипты. В компоненте есть .NET обертка. Странно, что ещё никто об этом не писал. По крайней мере гугл молчит.
UPD. 2 Кстати, теоретически, через этот интерфейс можно подключить любой внешний компонент для обсчета света по цепочке.
"DA COM Interface.3DMeshData(VertexData, IndexData)" -> ".NET or C++ COM Connector" и далее например -> "3DS Max mesh Importer" -> раcсчет света -> сохранение ресурсов рассчета (карт освещения).

Автор: Arahna Nov 7 2010, 01:53

Цитата(Leon PRO @ Nov 6 2010, 22:27) *
Я думаю, Айс имел в виду что все "русскописные" модульные строки будут на русском, а не тулсет.

По всей видимости так и есть. Досадно, но не смертельно. Будем учиться по-басурмански. vava.gif
Да и не надо мне все меню! Только кнопочку "Help" по-русски бы... angel.gif
Цитата
Кстати, для просмотра и редактирования всех полей в GFF структурах намного удобнее пользоваться вот http://www.wrg.ru/download.php?view.135программой.

Спасибо, с WGR много чего натаскала, а именно эту прогу прогдядела. Точнее, просто не поняла, что она умеет. good.gif
Цитата
Кстати в папочке tools вместе с тулсетом есть COM коспонента которая предоставляется интерфейсы для открытия, чтения и записи v4.0 GFF структур и ресурсных файлов (ERF, TLK и т.д.) и даже, кажется позволяет компилить скрипты. В компоненте есть .NET обертка. Странно, что ещё никто об этом не писал. По крайней мере гугл молчит.

Действительно странно. Если Вы имели ввиду GffEditor, то я им ковыряла авроровские файлы (от DA пока боюсь напортачить). Открывает *.are, *.uti, *.itp - проще сказать, чего он НЕ открывает, это именно скриптовые *.nss и *.nсs -файлы. Но и их, если закатать в ерефку, отлично видит ErfEditor DA-тулсета. Вот только как компилировать, пока неясно. Сам тулсет их тоже видит, и экспортировать к себе предлагает, но... без проверки? sad.gif

Автор: Leon PRO Nov 7 2010, 03:45

Цитата
Если Вы имели ввиду GffEditor

Нет, этот абзац относился к программистам, понимающим что дает COM+ компонента rolleyes.gif

P.S. Айс, а какую таблицу в БД ты редактировал, что он аначала рус. буквы записывать ?
P.P.S. Поменял collation столбца Text на Cyryllic в r_StringText, все также записывает в BD вопросы.

Автор: Ice Blade Nov 7 2010, 10:53

Ладно, подробный план действий:
1. Качаем SQL Service Managment Studio 2005 (ну или аналог)
2. Открываем БД, и ищем таблицу dbo.t_StringText (Databases->bw_dragonage_content->Tables->dbo.t_StringText)
3. Жмём правой кнопкой на табице и выбераем Modyfy

4. В открывшейся панели, в поле Text меняем Data Type - text на ntext (Кстати в Description - тоже можно поменять)

5. Сохраняем таблицу (Правая кнопка мышы на Table - dbo.t_StringText и собственно Save t_StringText), появившиеся "матюки" игнорируем нажимая на всё ОК (там ничего серьёзного).

--------------------------------------------------------------------------
Всё теперь тулсет бутет переваривать руский, но не в механизме Check In.

Примечание:
В принцепе думаю и это можно починить, т.к если открыть эту таблицу (Open Table - вместо Modify) и забить в стринг что нибудь русское, то оно принимается БД и даже экспортится в тлк-шку

Соответственно в тулсете в Sting Editor-е (и соответственно в тлк-шке) имеем:

Отсюда вывод что глюк происходит при Check In. В БД довольно много скриптов да и самих таблиц - где может чего-то быть, но и есть вероятность что сам тулсет руку приложил. Х.З. Если эту проблему удастся решить, то тулсет фактически получит поддержку русского (с учётом подчистки gff-ок конечно). Впрочем даже в таком виде, всё довольно работоспособно - и при желании создать модуль на русском уже не проблема.

PS.

Цитата
P.P.S. Поменял collation столбца Text на Cyryllic в r_StringText, все также записывает в BD вопросы.

На collation - БД похоже сугубо чихать, в том смысле что текстовые стринги собственно не с чем не сравниваются и ни чем не ишутся. Правда в БД зачем-то есть скрипт на конверт text в ntext и наоборот, так что возможно есть ещё какие-то действия кроме простой передачи.

Автор: Leon PRO Nov 7 2010, 12:16

Цитата
На collation - БД похоже сугубо чихать, в том смысле что текстовые стринги собственно не с чем не сравниваются и ни чем не ишутся.

Хм, почему-то в некоторых (под некоторыми я имею в виду MySql) БД для поддержки русского достаточно выставить для таблиц Collation в Unicode или Cyrillic вместо Latin.
---
Кстати, вчера возникла мысль, что все записи в БД производятся только через хранимые в БД процедуры. Например через хранимки "SetString" "CheckIn" и "CheckOut" (названия примерные, т.к. не помню точные уже, а БД на другом компе). Как правило в крупных проектах в большинстве случаев не используется запись в таблицы напрямую из-за связанности таблиц.
Понять бы еще как отдебажить хранимые процедуры в MSSQL, никаких аналогов для тестирования, (как в Oracle) чтобы можно было подать на вход параметры и отследить изменения в процессе трансформации и записи я пока не нашел =(
Надо написать программку, чтобы попробовать вызвать эти процедуры и передать им текстовый параметр. Если в итоге запишется как ????? ??, то у нас будет еще одна надежда, что сам тулсет обрабатывает и передает в БД кириллицу корректно, а во всем виновата только хранимка.
---
И ещё, я никак не могу взять в толк, чего к этому CheckOut CheckIn прикопались smile.gif ? Это же просто функции для эмуляции системы версии через БД. Как правило во время создания тестового модуля, за все время жизни объект просто создается один раз и далее модифицируется без всяких чек-аутов.
---
Спасибо за мануал. Попробую только сменить text на ntext, но, знаешь, у меня при конвертации этого столбца в collation = Cyrillic "ntext" там и так выставился.
Ой, кстати добавлю, что использую SQL 2008

Автор: Ice Blade Nov 7 2010, 12:50

Цитата
. Как правило во время создания тестового модуля, за все время жизни объект просто создается один раз и далее модифицируется без всяких чек-аутов.

Я уже по-моему говол, что Check In - нужен только когда формируется тлк-шка. Впрочем это понятно, - т.к Х.З почему в StringText - пишется много мусора см.предпоследний скрин ID 1595937473 повторяется несколько раз. Мне вообще не очень понятно, почему Биовар вместо отдельной таблицы для каждого модуля (ведь тлк-шки то отдельные) сделали общую свалку для всего на свете, и это касается не только техт стрингов.

Цитата
Надо написать программку, чтобы попробовать вызвать эти процедуры и передать им текстовый параметр. Если в итоге запишется как ????? ??, то у нас будет еще одна надежда, что сам тулсет обрабатывает и передает в БД кириллицу корректно, а во всем виновата только хранимка.

Может я не так понял - но так и происходит, - как только забьешь имя в плейсибле и засейвишь - оно с кирилицей и появлется в БД, однако функции Check In это не касается там всё сразу забивается ??????.



Автор: EqKeeper Nov 7 2010, 19:03

На дружественном (надеюсь) форуме, некоторые уверяют, что для корректного отображения русских букв достаточно "пропатчить" реестр патчиком от NWN. Есть те, кто говорят, что им это не помогло, но есть и такие, что божатся - у них все нормально.

Код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="c_1251.nls"


Ну или сам фикс: http://data.virusman.ru/nwn/toolset/cp1252_fix.rar

Кстати, неплохо бы изучить что у товарищей уже раскопано по этому поводу, активно занимаются переводами и созданием своих модов.
http://da-world.ru/forum/10

Автор: Ice Blade Nov 7 2010, 19:43

Старый добрый глюк с Cp хмм... наврятли, даже если шрифт примет русский, его не примет БД - а следовательно тлк, но... как показала практика на тлк в определёных условиях можно вообще чихать, так что стоит попробовать.
----------------------------------
Попробовал: nea.gif
Как и ожидалось - не работает, всё таки тлк пока остаётся единственным способом. cray.gif

Автор: Leon PRO Nov 8 2010, 01:50

Блин, объясните мне, пожалста, как связать текст в к.л. кастомном ресурсе с ТЛК ???
Например я создал плейсибл, в нем есть PopUp text.

Как сделать, чтобы там был текст из ТЛК?
Повбивал несколько строк туда, сделал Export Foreign Talk table и просто Export Talk table, судя по логу создаются только "LNG01_en-us.tlk", заюитый моими русскими строками и "LNG01_c_en-us.tlk" в core - пустой.

Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

В принципе, сейчас, раз все в тулсете сохраняется-загружается, пишется и отображается, а также сохраняется в файлы с русскими буквами, как положено - хочу покопать ТЛК.

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

В данный момент, я так понял проблема с использованием кириллицы именно в UI тулсета полностью решена через БД? Все строки пишутся по русски, сохраняются и снова загружаются корректно.

Автор: Ghost Nov 8 2010, 02:37

Леоно, ты об этом?

Цитата
In the toolset there is no tool to manage foreign languages (I read an answer from a Bioware guy explaining that the language tool they use was not implemented in the toolset for players). If you want to manage foreign languages, you have to create your own talktables.
BUT, there is a bug with items you create (or modify I suppose). When you export them, the files generated contain an information saying to the game to not use foreign talktables ... so in game you will have the names and descriptions fulfilled in the toolset.
Here is a post (in french) about this problem and how to solve it (you have to handle files with an hexadecimal editor) http://social.bioware.com/forum/3/topic/50/index/1247210

unsure.gif

(откопано на формах Биовара)

И таки да, в шапке не помешал бы список достигнутого.

Автор: Leon PRO Nov 8 2010, 03:37

Да, именно это, НО, оказалось, что Гриффон уже описывал это на первой странице:
http://www.city-of-masters.ru/forums/index.php?showtopic=6206&st=0#

Для помещения всего текста, нуждающегося в локализации в ТЛК надо просто напросто сделать чек-аут объекта. Строки сразу появятся в стринг эдиторе, и дальнейшая их правка там сразу отобразится и на связанных объектах.
В итоге весь русский текст попал в ТЛК, и после применения метода айса по включенияю ТЛК в игре все заработало!
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

Что имеем, значит на данный момент:
1. Ввод-вывод локализованных строк в UI тулсета сделан через модификацию БД.
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.
Ну, значит получается, что всего-навсего осталось:
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И первое полноценное решение готово.
Поправьте меня если я не прав?

Автор: Ice Blade Nov 8 2010, 06:53

Цитата
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.

А вот это интерестно, у меня кирилица в тлк так и не попадает. При Check In выбрасывает ???? ???? ????. Хм... Collation ? - Поподробней Лео. scratch_one-s_head.gif

-----------------
ААААа понял, причина в том что тестил на уже созданых плейсиблах, если плейсибл новый то проблемма с Check In отпадает good.gif - видать БД помнит, в каком виде были созданы стринги.

Короче остался только пункт 3:
Цитата
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И про рус. проблему можно вообще забыть.

Цитата
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

См. пункт 1 - того списка где я описывал изменения в БД, - т.е Foreign Talk table в опциях, и должен будет будет использовать ru-ru, хотя на деле разницы особой нет.

Автор: Griffon Nov 8 2010, 13:50

Благодарность Айсу, Леону и Киперу за титанический труд. thank_you.gif

Цитата(Ice Blade @ Nov 5 2010, 19:58) *
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ?

Надо. Интересующихся редактором ДА, на самом деле, очень мало, но они есть.

Цитата(Ice Blade @ Nov 6 2010, 17:00) *
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ????

ИМХО, патч, скорее всего, будет один и окажется последним. По идее, Био должны его выложить после выхода ДА2 и на этом их помощь сообществу успешно завершится.

Цитата(Leon PRO @ Nov 8 2010, 01:50) *
Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

Думаю эту строку создавали для последующего переписывания ткш-ных файлов на языки локилизаций, но насколько я понял из форумных сообщений она не работает. Вернее, работает не совсем правильно.

Пока не до конца въехал в суть решения русификации, видно придется восстановить редактор и пробовать. В связи с этим есть вопрос - при сносе тулса, также подтвердил снос SQL...... и какую версию мне теперь ставить?

Автор: Leon PRO Nov 8 2010, 14:21

Пофиг какую. Можешь тулсетную вообще не ставить.

У айса вон 2005, у меня 2008 стояла, и я в нее залил дамп и пользовался, а тулсетную 2005 не ставил (отключил галку во время установки).
Если будешь модифицировать базу (для русификации) - понадобится еще и MS SQL management Studio подойдет Express версия для той версии БД что ты поставишь.

Но, если ничего не стоит вообще - ставь тулсетную, наверное. Меньше гимора будет с установками. Правда там какая-то мегапроблема была, если вин ХП не пропатчен до СП3, так что аккуратнее.

UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)

Автор: virusman Nov 8 2010, 15:53

Вполне вероятно, что те же французы тоже нашли решение и тоже на подобном форуме, но не отпостили на биоваревском. smile.gif

Автор: Leon PRO Nov 8 2010, 16:44

Я французский не знаю, но единственное, что понял по скринам, что там копали HEX-ы, и явно не те что мы.

Автор: Ice Blade Nov 8 2010, 17:51

Цитата
Благодарность Айсу, Леону и Киперу за титанический труд.

Цитата
UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)

Как бы так или иначе - всё в этом топипе руку приложили. Тут не с каждого перепою догадаешься что проблема может быть в двух-трёх и более местах. Однако она в нормальном виде ещё не решена см. вышеописанный пункт №3 - макрос EqKeeper - конечно очень замечательно, но хочется чего-то более быстрого и стабильного, НУ - есть тут у нас кто-нибудь "добрый дядька программист". GFF как формат вроде давно неплохо расписан.

Что про SQL, русификацию, тлк и прочее - то ДА, - уже чувствуется необходимость в F.A.Q-е, и в принципе есть что туда записать, надо только мыслями собраться (у меня последнее время это не очень получается wacko.gif )
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".

Автор: Leon PRO Nov 8 2010, 18:35

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

Автор: EqKeeper Nov 8 2010, 20:56

Сейчас отпуск и огромное количество проектов, но, возможно, удастся выкроить один денек.
http://social.bioware.com/wiki/datoolset/index.php/GFF#Differences_between_GFF_V4.0_and_GFF_V3.2
Ткните пальчиком, какие типы полей неугодны и их надо убивать?

Автор: Leon PRO Nov 8 2010, 21:12

Нене, это Eclipse GFF, а надо работать с Aurora GFF. Его структура тут:
http://nwn.bioware.com/developers/Bioware_Aurora_GFF_Format.pdf

Там в корне списка в грязном файле ноды выглядят вот так (для наглядности написал в XML формате):

Neverwinter Script
<cexolocstring name="LocName" strref="991556708">
      <phrase language="english">werwerwe</phrase>
      <phrase language="english">werwerwerwerwerew</phrase>
</cexolocstring>
<cexolocstring name="LocPopupText" strref="991556709">
      <phrase language="english">фыфвфв</phrase>
      <phrase language="english">вфывфы</phrase>
</cexolocstring>

Так вот, у нод с именем "LocName" и "LocPopupText" (это конкретно у UTP GFF), а возможно просто у всех нод (универсальное решение, требующее проверки на разных типах GFF) с типом "cexolocstring" надо удалить дочерние элементы.

Тоже сел за проектик, на на Managed C# парсинг структурных файлов - занятие весьма унылое smile.gif

Автор: EqKeeper Nov 9 2010, 00:00

Хм... только дочерние? А сами ноды оставлять?
Ну да, на С++ это на порядок удобнее, хотя и на шарпе уже делал. smile.gif (а вот кто такой Managed C# не знаю >_>)

Автор: Leon PRO Nov 9 2010, 00:49

Да, сами ноды оставлять без изменения.
C# он как бы Managed по умолчанию biggrin.gif

Автор: EqKeeper Nov 9 2010, 00:58

А я этого термина не понимаю. smile.gif Самоучка. smile.gif Так что теория у меня на нуле + немного MSDN. smile.gif

P.S. Ой... мы опять оффтопим. х_х

Автор: kelamor Nov 9 2010, 05:44

За темой слежу давно, но, так как сказать было нечего, молчал.
Я к тому, что в необходимости решения этой проблемы сомневаться не надо smile.gif

Я решал проблему кардинально(на примере предмета):
1. Экспортировал и редактировал Foreign tlk.
2. В GFF-редакторе удалял текст из строк Name и Description.

После этого игра начинала читать текст из tlk-файла.

А так как вы тут уже почти решили всё, я с нетерпением жду smile.gif

Автор: Griffon Nov 9 2010, 10:50

Цитата(Ice Blade @ Nov 8 2010, 17:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".

Поддерживаю идею. Тогда на выходных ставлю редактор и возьму создание двух локаций - внутренняя и внешняя. Правда, много времени уделить не смогу..... 2-3 часа по выходным. Попутно буду изучать создание ролика при помощи катсцен (покосился в сторону Леона biggrin.gif ).

Автор: Leon PRO Nov 10 2010, 02:05

GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа wacko.gif
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.
День 3. Добавил еще обработчиков на внутренние структуры GFF. Дошел как раз до CExoString и CExoLocString, которые нужны для исправления. Занялся оптимизацией классов чтения файла. Все разобрал, ничего не работает, собрать не успел )

--------------------------------------------------------------------------
Текущий статус - все разобрано, ничего не работает crazy.gif
--------------------------------------------------------------------------

Автор: kelamor Nov 10 2010, 02:41

Цитата(Griffon @ Nov 9 2010, 16:50) *
Попутно буду изучать создание ролика при помощи катсцен
http://social.bioware.com/wiki/datoolset/index.php/Cutscene_tutorial/ru Griffon: Спасибо за ссылку. Почисть почту... не смог ПМ-ку отправить. smile.gif

Цитата(Ice Blade @ Nov 8 2010, 23:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.

Автор: Ice Blade Nov 10 2010, 06:55

Цитата
Лег в 4 утра. опоздал на работу на 3 часа

Ты это.. аккуратней, ты нам живой-здоровый нужен good.gif ( ..само собой пока тулсу не доделаешь biggrin.gif )

Цитата
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
Ну кроме множества болезней лок, ещё скрипты, VO и опять же сама БД - вызывают некоторые опасения. Да и с более глубокими модификациями вроде шаренья по 2да - есть проблемы с теми же придельными стрингами. В общем проблемы есть, только степень их пока не определена, да и настораживает сам факт того что даже англоязычные, не шибко-то взялись за написание полноценных модулей.

Автор: Leon PRO Nov 10 2010, 10:53

Кстати, я столкнулся с проблемой, что при попытке удалить ресурс, даже если ссылки наи него не остались нигде (плейсибл удален из локи и с него снят конверсейшн тэг) все равно пишет, что ссылка на него осталась в локе и на конверсейшне.

Если эти ссылки хранятся в БД, то вылечить можно, т.к. действительно, все (не уверен, конечно, но, может почти все smile.gif ) манипуляции с БД тулсет делает через хранимые в БД процедуры, которые можно править!!!

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

Цитата
Туториал на русском

Клево. Большой объем работы сделан!

Автор: EqKeeper Nov 10 2010, 14:06

Цитата(Leon PRO @ Nov 10 2010, 03:05) *
GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа wacko.gif
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.


Имеем FileStream с доступом на чтение Stream. Имеем структуру data класса SData.
Код
Stream.Position = 0; // С какого места будем читать
byte[] buffer = new byte[Marshal.SizeOf(typeof(SData))];
int i = 0;
while (i < buffer.Length) { i += Stream.Read(buffer, i, buffer.Length - i); }
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
data = (SData)Marshal.PtrToStructure(handle.AddrOfPinnedO
bject(), typeof(SData));
handle.Free();


Запись аналогичным образом. crazy.gif

Автор: Leon PRO Nov 10 2010, 14:49

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

Код
22     byte[] buff = _br.ReadBytes(Marshal.SizeOf(typeof(T)));
23     GCHandle handle = GCHandle.Alloc(buff, GCHandleType.Pinned);
24     T resultStruct = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T));
25     handle.Free();

Ну, запись там не очень аналогичным образом идет, но тоже через указатели.

Меня раньше передергивало от любого Unsafe конента, собственно я С# выбрал именно из-за того, что не надо работать напрямую с указателями, ссылками и памятью, но без этого слишком долго управляемый десериализатор писать придется =(

Автор: EqKeeper Nov 10 2010, 16:42

Хмм... подводные камни именно из-за способа чтения или вообще? (у самого проблем не было)

---

Да, и кто есть _br? smile.gif А то у FileStream я .ReadBytes не вижу =\

Автор: Leon PRO Nov 13 2010, 12:18

Ну что, бандерлорги, проблему решили и вся активность закончилась на этом?
Ну ка быстро модули делайте!!!!!!!!!!!! biggrin.gif

Вчера прогнал то, что получилось по GFF файлу, все отработало на ура. Т.е. в альфа-версии программа уже работает. Однако я в затруднении в каком виде ее делать? То ли просто экзешник который будет чистить все GFFv3.2 структуры в своей папке, то ли еще в каком виде. У меня не так много времени (работа и учеба началась) чтобы делать так, а потом еще и эдак. Нужен человек который на практике озабочен массовой чисткой, чтобы с начала подобрать оптимальный способ "обслуживания" таких файлов. а потом оттестить. В идеале нужно мнение нескольких моддеров о том, как она должна работать по их предпочтению, чтобы сделать оптимальный вариант.
Я могу, конечно, закинуть файл в social.bioware.com и там уже каменты почитать.

Цитата
Хмм... подводные камни именно из-за способа чтения или вообще? (у самого проблем не было)

Проблемы заключались в том, что PtrToStructure, если в структуре определено поле String с атрибутом [MarshalAs(UnmanagedType.ByValTSt)], при выполнении кушает последнюю букву строки.
Цитата
Да, и кто есть _br? smile.gif А то у FileStream я .ReadBytes не вижу =\

_br - приватный статический экземпляр BinaryReader

Автор: EqKeeper Nov 13 2010, 21:36

Оу! А я их все считывал массивами байтов произвольной длины. А кушакет, видимо, в поисках терминирующего нуля?

Понял.

Что касается проги.
Первое предложение - распространять как угодно, но с исходниками. biggrin.gif
Второе - если поделишься исходниками, то скидывай (в сеть или лично мне). Сделаю все три варианта. Консольный по имени файла. Консольный по всем файлам в папке. WinForm по всем файлам в выбранных каталогах. rolleyes.gif

Автор: Ice Blade Nov 14 2010, 16:41

Цитата
Ну ка быстро модули делайте!!!!!!!!!!!!

Ну ну.... Если бы кто тебя слышал, - то ли от лени, то ли от незнания - но делать никому ничего не хочется, либо все шифруются - что впрочем сомнительно. biggrin.gif В общем этого и следовало ожидать. Ладно лучше не болтать, а чего-нить сделать - так и быть на неделе попробую заставить себя сделать чего-нить "несбыточного", - так сказать "проектик для себя любимого". crazy.gif


Что до всей нашей "русфикации", - как закончите надобы ФАК написать по этому делу, в связи с чем интересуюсь - есть ли способ внести необходимые изменения в БД, без танцев с бубном и SQL Management-а - так сказать для примитивных слоёв общества ? Или же есть только вариант раздачи готовой БД или ручной модификации ?

Автор: EqKeeper Nov 14 2010, 19:17

Можно. Цепляемся из самописной софтины к этой самой базе и делаем тоже самое, но в автоматическом режиме. Правда, в SQL-базы я никогда не использовл, но, когда вопрос станет ребром, сделаю, если других желающих не найдется. В итоге, я так понимаю потребуется "патч" с одной кнопкой? smile.gif В общем, реализуемо (правда, при моем исполнении он будет требовать .NET Framework 3.5/4 smile.gif).

Что касается творения, то я только из-за этого и начал ковыряться в DA Toolset. Правда, никогда я не умел делать что-то маленькое, так что у меня долгострой. smile.gif

Автор: kelamor Nov 15 2010, 03:19

Есть два модуля:
1. Руны и свитки - маленький, пара десятков предметов.
2. Project Iona - большой, пока в основном диалоги.

Могу потестить smile.gif


Насчёт утилитки - WinForm, ну естественно, с выбором один файл чистить, несколько или все.

Цитата(EqKeeper @ Nov 15 2010, 01:17) *
Можно. Цепляемся из самописной софтины к этой самой базе и делаем тоже самое, но в автоматическом режиме. Правда, в SQL-базы я никогда не использовл, но, когда вопрос станет ребром, сделаю, если других желающих не найдется. В итоге, я так понимаю потребуется "патч" с одной кнопкой? В общем, реализуемо (правда, при моем исполнении он будет требовать .NET Framework 3.5/4 ).


У нас на работе Инет упал, так что утилите с одной кнопкой я был бы рад smile.gif

Автор: Leon PRO Nov 15 2010, 14:19

+1 Подправить БД можно нажатием 1 кнопки в самописной софтинке.

2 EqKeeper
А зачем так ограничивать сферу пользователей только .NET 3.5+ фреймворком? Это можно и на 2.0 сделать.

2 kelamor
Мнение учтено, спасибо =)

Автор: EqKeeper Nov 15 2010, 15:02

Ммм... да, наверное ты прав. smile.gif Вот только с XP, насколько я помню, шел 1.1. smile.gif Так что не все ли равно? Впрочем, чем ниже тем лучше... Кстати, попробую сейчас. Глядишь что и получится. smile.gif

Автор: Leon PRO Nov 15 2010, 15:13

Не, 1.1 слишком старый, думаю его уже нет почти нигде.
Могу и ошибаться, но, кажется с WinXP SP2 уже шел .NET 2.0

Автор: denis0k Nov 15 2010, 15:55

Как правило, на деле пользователь уже имеет ведро дотнет-программ и фреймворк 3.5+, эта штука довольно-таки популярна, на ней ща пишется всё - от контрол центров драйверов до игр. Ну а если так важно 100%-е покрытие, портаните на с++, это не так сложно. Хотя имхо время гораздо дороже и оперативки, и пары мегабайт трафика.

Автор: EqKeeper Nov 15 2010, 16:14

Патч нарисовал, осталось заставить его работать. rolleyes.gif

Цитата
Cannot alter column 'Text' to be data type ntext.

Сейчас пойму, что ему не нравится и можно будет юзать. rolleyes.gif

Блин, напрямую не хочет. Говорят - придется создать новую колонку, перенести в нее старые данные и старую удалить... Попробую еще погуглить. Не получится - сделаю так...

Еще момент, я так понял, вместо ntext лучше использовать nvarchar(max)?
http://www.rsdn.ru/forum/db/2755764.flat.aspx

Уррра! С ним заработало! smile.gif Мелкомягкие - борцы за передовые технологии! (чтоб их). smile.gif

В общем, патч для превращения text в nvarchar(max) готов. Я пока сделаю обработку исключений и всячески его приукрашу, а вы (в первую очередь вопрос к Айсу, как к изобретателю технологии) расскажите - будет ли это (nvarchar(max)) корректно работать. Или ntext - принципиально важен.

Автор: Ice Blade Nov 15 2010, 17:30

Цитата
В общем, патч для превращения text в nvarchar(max) готов. Я пока сделаю обработку исключений и всячески его приукрашу, а вы (в первую очередь вопрос к Айсу, как к изобретателю технологии) расскажите - будет ли это (nvarchar(max)) корректно работать. Или ntext - принципиально важен.

Х.З. надо тестить под рукой щас есть база но нет тулсета biggrin.gif, по идее всё равно. Но есть некоторые опасения, например в базе присутствуют самописные функции вида TextEquals и nTextEquals - где и насколько используются так же пока несмотрел. Да и смысл в длинючем nvarchar(max)-е мы же вроде не китайцы ? - БД вообще по умолчанию использует укороченный Text, - впрочем опять же х.з - я не специалист может быть и действительно удобней как тип данных.

Автор: Lex Nov 18 2010, 16:21

дальнейшее обсуждение и отладка полученного решения идет в отдельной теме: http://www.city-of-masters.ru/forums/index.php?showtopic=6214

Автор: Leon PRO Nov 23 2010, 23:16

Почти доделал чистилку для GFF структур. Уже прикручиваю к мозгам ей графический интерфейс.
Делаю паузу на 4 дня - ибо контрольные на носу в ВУЗе.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)