[G2NK] Hełm - model 3D nie leży na głowie przy animacji 869 6

O temacie

Autor Khantor

Zaczęty 7.04.2019 roku

Wyświetleń 869

Odpowiedzi 6

Khantor

Khantor

Użytkownicy
posty37
Propsy7
Profesjabrak
  • Użytkownicy
Witam,
Dodałem do Gothica hełmy i wszystko jest w porządku, hełm zachowuje się tak jak należy, także przy wykonywaniu oryginalnie-gothicowych animacji (przede wszystkim postawa bojowa i walka). Problem pojawił się, kiedy dodałem do gry także tarcze i animacje do nich (połączone animacje z L'Hivera i USWT), mając włączone animacje dla tarczy z hełmem na głowie, zaczynają dziać się cuda i przestaje on ładnie leżeć na głowie.


(Góra - zwykłe - gothicowe animacje (np. postawa bojowa gothicowa). Dół - dodane animacje tarczy i fruwający hełm.)

Ponieważ problemu tego nie ma w przypadku zbroi z wbudowanym hełmem (np. pancerz paladyna) to stwierdziłem, że problem leży w braku sił trzymających model hełmu z kością głowy. Chciałem dodać hełm jako ASC z przypisaną siłą do gości głowy - niestety jak można się domyślić nic z tego nie wyszło, bo Gothic jako hełmy widzi tylko meshe. Dodanie podmiany ASC w skryptach po założeniu hełmu też nic nie daje, bo ASC podmienia całe ciało, wliczając w to założoną zbroję. Idąc dalej tokiem rozumowania, że winnym takiego stanu rzeczy jest brak sił, rozpakowałem ASC. głowy, nałożyłem na niego w programie 3D hełm, scaliłem je w 1 model i w skryptach ustawiłem przy zakładaniu hełmu zmianę głowy z oryginalnej na głowę z wbudowanym w nią hełmem.
I na tym etapie się zatrzymałem. Teraz niby działa i hełm razem z głową trzymają się kości głowy tak jak ma być, ale jak widać na 1 rzut oka takie rozwiązanie ma masę wad - przede wszystkim głowa staje się statycznym obiektem pozbawionym animacji (robienie ręcznie kompletu animacji dla każdej głowy - hełmu z osobną mija się z celem bo roboty więcej niż to jest warte). Ponadto traktując hełm jako pancerz
mainflag = ITEM_KAT_ARMOR;
wear = WEAR_HEAD;
i tak na głowę zakładany jest dodatkowo model 3D, bez linijki "wear" hełmu nie można w ogóle użyć.

I tutaj moja prośba i pytanie - czy można te hełmy naprawić w jakiś prostszy sposób tylko ja kombinuję jak koń pod górę?
A jeśli nie i jestem skazany na głowę bez animacji - jak mogę wyłączyć nakładanie modelu 3D na głowę przy nakładaniu hełmu? Próbowałem np. zrobić 2 model hełmu z przezroczystą teksturą i dodać linijkę
visual_change = "TRANSPARENT.3ds";ale Gothic ma chyba wywalone na "visual_change" w hełmach.
Ostatecznie zmieniłem hełmowi mainflagę z "ITEM_KAT_ARMOR" na "ITEM_KAT_MAGIC" a flagę na "ITEM_THROW", co po dodaniu warunków w skryptach powinno działać (żeby nie zakładało 107 hełmów naraz), ale czy można to zrobić w jakiś prostszy sposób? Zależy mi także na pewnej estetyce a to spowoduje bajzel w kolejności ułożenia itemów w ekwipunku. Flagę "ITEM_THROW" chciałem wykorzystać do pierścieni (a wtedy hełmy z pierścieniami pewnie w ogóle się wymieszają). Robienie ręcznie wszystkich możliwych kombinacji hełmów i zbroi też sensu nie ma. :P

Także po wyczerpaniu chyba wszystkich pomysłów proszę o pomoc starszych i mądrzejszych.  ;( Tym bardziej mnie to zastanawia, bo w takim Returningu hełmy działają dobrze, a w skryptach nie widzę tam żadnych udziwnień w tym kierunku.
 

Splash

Splash

Moderator
posty4097
Propsy3299
ProfesjaNierób
  • Moderator
Wydaje mi się, że wina leży w animacjach. Najwyraźniej powodują one zmianę pozycji kości ZS_HELMET.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...

Khantor

Khantor

Użytkownicy
posty37
Propsy7
Profesjabrak
  • Użytkownicy
A jak to stwierdzić i przede wszystkim naprawić? Bo z tego co patrzyłem w programie 3D, to w oryginalnie gothicowych animacjach kość głowy także się rusza, czy to w ogóle nie o to chodzi? Bo szczerze mówiąc na animacjach znam się dosyć średnio...
 

Gother

Gother

Użytkownicy
Nieskromny Mistrz Gothica
posty447
Propsy246
ProfesjaScenarzysta
  • Użytkownicy
  • Nieskromny Mistrz Gothica
Jak będziesz miał pewność, że błąd występuje w USWT to poinformuj o tym jego twórcę. Problemy z nim związane naprawia w trymiga.
 

Khantor

Khantor

Użytkownicy
posty37
Propsy7
Profesjabrak
  • Użytkownicy
Większość animacji pochodzi z L'hivera (w tym walka i postawa bojowa) więc to raczej nie wina USWT  ;( . Sprawdziłem to w L'hiverze (na fryzurach bo hełmów tam nie ma) i tam jest ten sam problem po wyciągnięciu tarczy.
 

Khantor

Khantor

Użytkownicy
posty37
Propsy7
Profesjabrak
  • Użytkownicy
Chyba udało mi się to naprawić. Problem leżał dokładnie w tym na co naprowadził mnie Splash, z jakiegoś powodu animacje zarówno w USWT, jak i w L'hiverze powodowały przesunięcie hełmu (kość ZS_HELMET) pomimo, że po samym otwarciu animacji w programie 3D tego nie widać.

Dla przyszłych pokoleń - jeśli ktoś chciałby wykorzystać animacje walki tarczą z USWT lub L'hivera jednocześnie z hełmem, należy każdą jej animację otworzyć w programie 3D i przesunąć w niej kość ZS_HELMET (hełm) o poniższe wartości:

L'hiver
X: +0,15
Y: +4.5
Z: +1.2

USWT
X:  0.0
Y: +4.3
Z: +0.5

Powyższe wartości są wyznaczone przeze mnie eksperymentalnie, więc w 100% doskonałe nie są, ale różnice między podaną przeze mnie korektą a właściwym położeniem w praktyce są niezauważalne. Jak ktoś zna, niech poda dokładniej.  :trollface:

Dzięki za pomoc Splash a temat można chyba zamknąć.  :D
 

Czudak

Czudak

Użytkownicy
posty62
Propsy17
ProfesjaSkrypter
  • Użytkownicy
Ożywiam ten temat.

Wartości o których pisze Khantor są poprawne, ale nie podał precyzyjnego sposobu kalkulacji.

Mianowicie, wartości X i Y będą zazwyczaj po przecinku, a Y jeszcze na minusie, tak więc np. Y: -0,07625. Dlatego też logiczne i proste dodanie +4.3 wytworzy potworka w animacji, bo autor miał na myśli dodanie 0,043. Tak więc dokładniejsza matematyczna zmiana w animacji, w tym konkretnym tutaj przypadku animacji tarcz z UWST, żeby hełmy nie przenikały się z modelem głowy:

-0,07625 + 0,043 = -0,33 jako ostateczna wartość "Location Y" w zakładce "Transform" w Blenderze dla kości ZS_HELMET. Tak samo kalkuluje się dla Location X i Z, gdzie wartości są bezwzględne, ale po przypasowaniu ich do przecinka.

Od siebie dodam, że wygląda na to, że ta operacja przesunięcia jest potrzebna we *wszystkich* animacjach, które są oparte na tej paczce oryginalnie zdekompilowanych (z 200X roku), których chyba każdy używa, bo musiałem zrobić to samo dla nowych animacji, które pobrałem z WoGa.de (opieranie się o ściany, picie z beczki, dodatkowe animacje czarów itd.).
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry