April 18, 2024, 19:16
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: ukx модели в л2  (Read 40717 times)
Cheiser
Jr. Member
**
Posts: 49



View Profile
« Reply #90 on: April 16, 2009, 21:50 »

не знаю в общем что здесь решить, скажу пока что несколько вещей ! Не правда что пакеты на оаукх при взаимодействии с умоделом падают, давайте-ка посмотрим, эксперимент - берем пакет от л2, читает, берем пакет от л2 раскодированый л2 декодером от хейдера 111 - умодел не читает, таксь, берем пакет от оаукх - не читает, берем его кодируем в 111, тоже не читает, хм, но, не читает если создать пакет в 1 меш, если в 14 или в 16 - тоже не читает, но если закодировать к примеру пакет в 14 мешей в хейдер 111 - у модел начинает это читать, и ведет себя так, как будто это точно что л2 пакет, даже ЛОД модел левел конвертирует в нормальный формат ! Ладно, это то что я узнал, я хотел бы разобраться все таки с посталом, какую роль имеют актор классы ? И как они могут влиять на укх пакеты ?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #91 on: April 17, 2009, 11:58 »

Актёры на ukx никак не влияют. Это объекты, которые "живут" в игровом мире.
Logged
Alleras
Newbie
*
Posts: 31


View Profile
« Reply #92 on: April 17, 2009, 12:47 »

Cheiser:
Те скрипты, которые можно экспортировать из эдитора, практически никак не влияют на анимацию, поскольку вся анимация определяется файлами Core.dll и Engine.dll, код которых доступен только купившим лицензию на движок.

Собственно говоря, "Актор" классы, и объекты анимации вызываются ядром движка независимо друг от друга, и могут обращаться друг к другу лишь по названиям.
Анимация состоит не из актеров, а из нескольких С++ объектов, которые из эдитора не экспортируются.

Купив лицензию, разработчики получают от Эпиков некий "начальный" С++ код, который дальше могут менять как хотят. Достаточно поменять одну переменную в С++ коде, чтобы модель перестала открываться (полностью или частично).

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

Обладая соответствующим опытом, можно искусственно подогнать длину параметров, либо затереть их, передав в DLL "пустышку", но в этом случае модель откроется с глюками (или не откроется вообще).

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

Единственный правильный вариант - расшифровать все хранящиеся в Ukx-файле параметры, и редактитровать их либо в ukx-файле, либо в dll (насколько я понимаю, именно так сделал Gildor в своей утилите), но для этого нужна соответствуюшая база знаний, а её нету.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #93 on: April 17, 2009, 12:54 »

Совершенно верно - umodel по-честному читает все данные. И их количество сильно зависит от версии движка и от того, как программисты сторонних компаний меняли код под себя.
Logged
Print 
« previous next »
Jump to:  

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