Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

Modyfikacje - Edycja modeli

COLOBOT - 22-03-2008, 10:14
Temat postu: Edycja modeli
Znalazłem instrukcję edycji modeli do COLOBOTa (same modele dołączyłem do jednego z poprzednich postów). Niestety jest po angielsku, mógłby ktoś podjąć się przetłumaczenia tego na polski?

Edycja MODów

maro96 - 24-05-2008, 14:15
Temat postu: RE: Edycja modeli
p.s. możesz zmienić mod i przepakować colobot2.plik dat kiedy
gra biegnie i twoje zmiany będą zobaczone na jakimś przedmiocie NEW utworzonym
to używa, że MOD układa dokumenty!

Kod:
** Nagłówek :: 34h bajtów Wyrównało Opis Typu ---------------------------------------------------------- 00h Wersji Pliku DWORD Główna 04h Wersji Pliku DWORD Mniejsza 08h liczby DWORD definicji Trójkąta, które idą za 0Ch DWORD Nieznany - zawsze 0 10h DWORD Nieznany - zawsze 0 14h DWORD Nieznany - zawsze 0 18h DWORD Nieznany - zawsze 0 1Ch DWORD Nieznany - zawsze 0 20h DWORD Nieznany - zawsze 0 24h DWORD Nieznany - zawsze 0 28h DWORD Nieznany - zawsze 0 2Ch DWORD Nieznany - zawsze 0 30h DWORD Nieznany - zawsze 0


Kod:
** Point3D :: 0Ch Bajtów Zaważa: w przeciwieństwie do rzeczy większości, w grafice komputera świat jest narysowany w stosunku do ekranu nie "świat". ten sposób, że Y jest na nogach i na dół, X jest zostawiony do prawa i Z jest do i daleko od ekranu z Z idącym od ekranu INTO monitor. Y ^ | Z | ^ | / | / |/ .--------- > X Wyrównał Opis Typu ---------------------------------------------------------- 00h płynie X 04h płynąć Y 08h płynąć Z


Kod:
** PointUV :: 8h bajtów Tylko co jest UV, którego pytasz, to jest 2D punktu reprezentowany miejsce na budowa e.g. X, Y na obrazie. Ta forma zasięgów wartości 0.0 do 1.0 (tak tylko pomnóż U przez szerokość obrazu w pikslach, by dostać pozycję X - to sam dla V), kiedy wartości na zewnątrz ten zasięg są ważne dla najwięcej oddać i systemów nie zobaczył, jak colobot używa jakichś wartości na zewnątrz ta granica. Wyrównany Opis Typu ---------------------------------------------------------- 00h płynie U 04h płynąć V



Kod:
** Wierzchołek : 28h bajtów Wyrównało Opis Typu ---------------------------------------------------------- 00h Point3D Pozycji 0Ch Point3D Normalny Wektor (użył do obliczeń światła) 18h Budowy PointUV 1 UV (Zobrazować / sztuka) 20h Budowy PointUV 2 UV (Brudny Obraz - widzą PDF w poziomie robienie)



Kod:
** ColorRGBA : 10h bajtów Wyrównało Opis Typu ---------------------------------------------------------- 00h płynie Czerwony 04h płynie Zielony 08h płynie Niebieski 0Ch płynie Alfę (nieużywaną)



Kod:
** Materiał : 44h bajtów (To jest dobry jeden do google) Ten materiał jest odnieść się do wszystkich trzech wierzchołków trójkąta, dlatego do całej powierzchni trójkąta. Wyrównany Opis Typu ---------------------------------------------------------- 00h ColorRGBA Rozproszony Kolor 10h ColorRGBA Otaczający Kolor 20h ColorRGBA Lustrzany Kolor (nieużywany) 30h Koloru Emissive ColorRGBA 40h popłyń Lustrzaną Władzę (nieużywaną)



Kod:
** Trójkąt :: 0E8h Bajty @@ To jest przedmiot twoje czekanie dla! @@ Wyrównany Opis Typu ---------------------------------------------------------- 000h DWORD, Jeżeli to ma 0 lat trójkąt nie jest pokazany 004h Wierzchołka Wierzchołka 1 02Ch Wierzchołka Wierzchołka 2 054h Wierzchołka Wierzchołka 3 07Ch Materialnego Materiału zewnętrzna 0C0h sprzątaczka[10h] Imię budowa (sztuki) układają dokumenty użyło - zanotuj ten plik jest zawsze TGA nawet, jeśli to mówi BMP 0D0h DWORD / popłynąć Nieznanego 0D4h płyną Geometrię Zasięgu; // Zobacz, jak Notatka 1 0D8h płynie Nieznany 1000000 dla rzeczy większości; 100 dla kryształów 0DCh DWORD / popłyń Nieznany 0E0h DWORD Brudną Budowę ustawiającą 0:NoDirt, 1:LevelCommanded, Inny: Koresponduje by "Brudny % d2.tga" 0E4h DWORD / popłyń Nieznany


Dobrze tam masz to, struktura pliku MOD.
----
Zanotuj 1:
Pole Geometrii Zasięgu jest użyte, by zmniejszyć liczbę trójkątów w scenie. To jest liczbą zmiennopozycyjną i będziesz widział komplety pokrywania geometrii z tym polem zmienionym. Co robi to znaczą? Pozwala powiedzieć, że znajdujesz model, który ma komplety geometrii zawierającej 0.0, 100.0 i 200.0 trójkąty znakowane z 0.0 będą oddane, jeżeli widz jest mniej niż 100.0 części daleko i trójkąty znakowane z 100.0 będą oddane, jeżeli widz jest między 100 i 200 częściami i, jeżeli to jest znakowane 200.0 wtedy trójkąt będzie oddany, jeżeli widz będzie więcej niż 200 częściami daleko.
W krótki przedmiot zawiera więcej niż jedna geometryczna reprezentacja zmieniania poziomów szczegółu.

mac1e7 - 13-08-2008, 21:16
Temat postu: RE: Edycja modeli
maro94 - co to za shit? Jakiś cholerny internetowy tłumacz? Zaraz wam tu przetłumaczę :P

------------------------------------

P.S. Możesz zmienić .mod i spakować plik colobot2.dat kiedy gra jest włączona a zmiany będą widoczne na każdym NOWYM stworzonym obiekcie który korzysta z pliku .mod który edytowałeś!

Kod:
** Header :: 34h bajtów

Offset Typ Opis
----------------------------------------------------------
00h DWORD Podrzędna wersja plików
04h DWORD Podrzędna wersja plików
08h DWORD Liczba definicji trójkątów pociągających za sobą akcje (?)
0Ch DWORD Nieznany - zawsze 0
10h DWORD Nieznany - zawsze 0
14h DWORD Nieznany - zawsze 0
18h DWORD Nieznany - zawsze 0
1Ch DWORD Nieznany - zawsze 0
20h DWORD Nieznany - zawsze 0
24h DWORD Nieznany - zawsze 0
28h DWORD Nieznany - zawsze 0
2Ch DWORD Nieznany - zawsze 0
30h DWORD Nieznany - zawsze 0


Kod:
** Point3D :: 0Ch Bajtów
Info.: inaczej niż w większości rzeczy, w komputerowej grafice świat jest zorientowany przeciwnie do świata. to znaczy że oś Y to góra i dół, oś X i lewo i prawo, a oś Z to bliżej i dalej od ekranu. Oś Z kieruje się do centrum monitora.

Y
^
| Z
| ^
| /
| /
|/
.---------> X

Offset Typ Opis
----------------------------------------------------------
00h float X
04h float Y
08h float Z


Kod:
** PointUV :: 8h Bajtów
PointUV to wyróżnione miejsce na teksturze tak jak X i Y na obrazku. Ta wartość może się zmieniać w zakresie od 0.0 do 1.0 (aby otrzymać wartość U wystarczy pomnożyć ją przez szerokość obrazu w pikselach - analogicznie V tylko że trzeba ją pomnożyć przez wysokość), używany na zewnątrz ten zakres jest uzasadniony przez większość programów graficznych. Nie widziałem aby colobot używał wartości spoza tego zakresu.

Offset Typ Opis
----------------------------------------------------------
00h float U
04h float V


Kod:
** Vertex : 28h bytes
Offset Type Description
----------------------------------------------------------
00h Point3D Position
0Ch Point3D Normalny wektor (używany do kalkulacji światła)
18h PointUV Tekstura 1 UV (Obrazek)
20h PointUV Tekstura 2 UV ("Brudny" obrazek - zobacz .pdf o tworzeniu poziomów)


Kod:
** ColorRGBA : 10h Bajtów
Offset Typ Opis
----------------------------------------------------------
00h float Red (czerwony)
04h float Green (zielony)
08h float Blue (niebieski)
0Ch float Alpha (przeźroczystość) (nieużywany)


Kod:
** Material : 44h Bajty
Ten materiał zostanie użyty na wszystkich trzech wierzchołkach trójkąta, a więc krótko mówiąc na całej powierzchni.

Offset Typ Opis
----------------------------------------------------------
00h ColorRGBA Rozproszony Kolor
10h ColorRGBA Kolor otoczenia
20h ColorRGBA Kolor odbicia lustrzanego (nieużywany)
30h ColorRGBA Wytwarzany kolor
40h float Siła odbicia lustrzanego (nieużywane)


Kod:
** Triangle :: 0E8h Bajtów

Offset Type Description
----------------------------------------------------------
000h DWORD Niewidzialny
004h Vertex Oś 1
02Ch Vertex Oś 2
054h Vertex Oś 3
07Ch Material Materiał powierzchni trójkąta
0C0h char[10h] Nazwa tekstury (plik) Uwaga - ten plik to ZAWSZE .tga mimo że może być wyświetlany jako .bmp
0D0h DWORD/float Nieznane
0D4h float Zasięg rysowania (wytłumaczone w notatce 1)
0D8h float Nieznany - 1000000 dla większości rzeczy, 100 dla kryształów (prawdopodobnie przeźroczystość)
0DCh DWORD/float Nieznane
0E0h DWORD Ustawienie "brudnej" tekstury - 0 = normalna (czysta), 1:"brudne", Other: równe "Dirty%d2.tga"
0E4h DWORD/float Nieznane


Cóż... więc to jest to! Format .mod!
----
Notatka 1:
Zasięg geometrii jest używany aby zmniejszyć ilość trójkątów na mapie. ?. Co to znaczy? Powiedzmy że znajdziesz modele które mają to ustawione na 0.0, 100.0, i 200.0 Trójkąty z 0.0 wyświetlą się jeśli będziesz minimum 100.0 jednostek (met colobotowy) od niego, trójkąty ze 100.0 pojawią się kiedy będziesz od 100 do 200 jednostek od niego, a w przypadku ustawienia na 200.0 pojawi się nawet jeśli będziesz 200 jednostek od niego!

---------------------------------

Cóż z tego co widzę jest to tylko CZĘŚĆ tekstu... samo Post Scriptum! A gdzie reszta? COLOBOT - załatwisz? :D

adiblol - 29-08-2008, 21:39
Temat postu: RE: Narzędzie do konwersji na obj.
Na początek przedstawię typy danych do Pascala:
Kod:

type
 float = single;
 TChar16 = array[0..15] of char;
 TModHeader = record
  MajorVersion: DWORD;
  MinorVersion: dword;
  TrianglesNum: dword;
  Unknown1: array[0..9] of DWORD;
 end;
 TPoint3D = record
  x, y, z: float;
 end;
 TPointUV = record
  u, v: float;
 end;
 TVertex = record
  Position: TPoint3D;
  NormalVector: TPoint3D;
  Texture: TPointUV;
  Dirt: TPointUV;
 end;
 TColorRGBA = record
  R, G, B, A: float;
 end;
 TMaterial = record
  Diffuse, Ambient, Specular, Emissive: TColorRGBA;
  SpecularPower: float;
 end;
 TTriangle = record
  Display: DWORD;
  Vertex: array[0..2] of TVertex;
  Material: TMaterial;
  TextureFile: TChar16;
  Unknown1: DWORD;
  Range: float;
  Crystal: DWORD;
  Unknown2: DWORD;
  Dirt: DWORD;
  Unknown3: DWORD;
 end;

Stworzyłem je na podstawie oryginalnego angielskiego tekstu.

Zrobiłem program do konwersji z plików MOD na Wavefront OBJ. Jest w załączniku.

INSTRUKCJA OBSŁUGI (C oznacza konwerter - mój program, B blendera):
1. Kopiujemy zawartość katalogu z rozpakowanym colobot1.dat (tekstury) do folderu textures w katalogu do którego będziemy eksportować
2. Ściągamy program z załącznika, rozpakowujemy, uruchamiamy
3. Ściągamy, instalujemy i uruchamiamy Blendera.
4. (C) Wybieramy zakres widoczności (Geometry Range) (jest o tym mowa w tekście). Można zostawić domyślny. Potem klikamy Convert.
5. (C) Wyświetla się wybieranie pliku mod. Wchodzimy w katalog gdzie rozpakowaliśmy plik colobot2.dat. Wybieramy interesujący nas model.
6. (C) Wyświetla się zapisywanie pliku. Przechodzimy do folderu w którym będziemy zapisywać pliki OBJ. Zostawiamy domyślną nazwę pliku lub ją zmieniamy i klikamy "Zapisz".
7. (C) Otrzymamy komunikat czy konwersja się powiodła czy nie.
8. (B ) Na ekranie będzie widoczny sześcian (w postaci kwadratu :P ). Naciskamy Del (na klawiaturze) a następnie Enter. Sześcian zostaje wykasowany.
9. (B ) Z menu File wybieramy Import, następnie Wavefront (.obj). Korzystając z dosyć topornej przeglądarki plików wyszukujemy katalog z naszymi plikami OBJ. Wybieramy plik z rozszerzeniem obj (są jeszcze mtl). Klikamy w prawym górnym rogu na "Import a Wavefront obj". Następnie wyłączamy opcję Material w sekcji "Seperate objects ..." i klikamy OK.
10. (B ) Naciskamy zero na klawiaturze numerycznej. Teraz lepiej widać obiekt. Możemy włączyć tekstury klikając na brązowy sześcianik z jakimiś odnogami (pod widokiem 3D) i wybierając Textured.
11. (B ) Można spróbować renderingu (klawisz F12) ale mogą się wtedy porypać tekstury.

Postaram się dopisać jak można oglądać obiekt ze wszystkich stron. Ale to później.


NIE PONOSZĘ ODPOWIEDZIALNOŚCI ZA TO CO CI TEN PROGRAM ZROBI I NIE DAJĘ NA NIEGO ŻADNEJ GWARANCJI.

mac1e7 - 29-08-2008, 23:04
Temat postu: RE: Edycja modeli
Cytat:
Postaram się dopisać jak można oglądać obiekt ze wszystkich stron. Ale to później.


Używając klawiatury numerycznej ;) Jak dla mnie fajne bo w blenderze sporo robię no ale... co to nam daje? Można ten .obj jakoś na .mod zmienić używając twojego konwertera? :)

adiblol - 30-08-2008, 10:27
Temat postu: RE: Edycja modeli
Na razie nie. Ale będzie można. Zrobię konwerter z OBJ na MOD. Tylko że format OBJ nie zawiera niektórych parametrów (np. zakresu widoczności) które zawiera format MOD. Także nie wiadomo jak z tymi wartościami "Unknown" (to znaczy "Nieznany").


A teraz co zrobić żeby oglądać obiekt ze wszystkich stron (dla nieznających Blendera):
Klikamy na nasz model PPM. Powinien się zaznaczyć. Teraz pod widokiem 3D klikamy na niebieskie kółko. Na modelu pojawiają się krzywe. Klikamy LPM na niebieską krzywą i przeciągamy myszkę w lewo i prawo, obracając w ten sposób model. Po puszczeniu LPM model zostaje obrócony. Teraz możemy trochę lepiej go obejrzeć (bez przeszkadzających krzywych) klikając na ikonę obrazu (pierwsza po prawo na tym pasku pod widokiem 3D).

W załączniku znajduje się tekst dotyczący formatu MOD (konkurencyjne tłumaczenie) i parę innych drobiazgów.

Przykłady jak wygląda model fabryki robotów: z daleka, z bliska (chodzi o ten zakres widoczności)

krzys_h - 12-12-2010, 20:31

Będzie ten donwerter z OBJ do MOD ???
adiblol - 13-12-2010, 18:20

krzys_h napisał/a:
Będzie ten donwerter z OBJ do MOD ???
Nie bo tak.
Korniszon - 16-12-2010, 19:19

krzys_h napisał/a:
donwerter

Chyba "KONWERTER".

Bartek c++ - 18-12-2010, 16:04

Gdzieś miałem program konwersji do modeli na Serious engine i tam było dużo formatów. Jedyni nie zmieniało moving markerow przez co nie ruszał sie model i musiałem wszystko sam robić ;)
krzys_h - 11-03-2011, 14:43

adiblol, a masz może kopię tego oryginalnego angielskiego tekstu spod adresu
modformat.txt napisał/a:
http://www.deagol.net/colobot/viewtopic.php?p=1787#1787

:?: Bo ten link jest już niestety nieaktualny :(

adiblol - 11-03-2011, 15:58

Wystarczy zmienić yoyo.pl na cba.pl z pierwszego postu.
http://www.colobot.cba.pl/viewpage.php?page_id=3

krzys_h - 11-03-2011, 16:35

Oj, sorki, nie pomyślałem
0judge0 - 01-09-2011, 13:40

Witam po długiej nieobecności. W wolnych chwilach pobawiłem się tymi modelami i napisałem konwerter z mod na obj i z obj na mod.

Minusy:
-nie obsługuje jeszcze poprawnie tekstur ani w jedną, ani w drugą stronę
-sprawdzałem go tylko na wingsie więc na raczej na pewno może mieć problemy z innymi programami, ale właśnie dlatego daje go do testów by móc dokonać poprawek
Plusy:
+działa w miarę sprawnie :) na dowód screen. Po lewej nowy model fabryki robotów w grze, a po prawej w programie wings

Do paczki z programem dorzucam model owej fabryki w obj i mod

Jak to podmieniać pliki chyba nie trzeba mówić, zresztą gdzieś kiedyś ktoś tu opisał to.

Komentarze mile widziane. Dzięki nim będę mógł usprawnić program oczywiście jeśli będzie jakiekolwiek zainteresowanie.

Aha, bym zapomniał konwerter napisany w javie więc wymaga maszyny wirtualnej.



Link

Raptor - 01-09-2011, 19:46

0judge0 napisał/a:
konwerter z mod na obj i z obj na mod

Jestem pod wrażeniem. A jak faktycznie działa, to pod jeszcze większym.

Kiedyś adiblol rzekomo zrobił podobny konwerter, ale podobno nie działało w nim OBJ :arrow: MOD.

krzys_h - 03-09-2011, 09:42

Raptor napisał/a:
Kiedyś adiblol rzekomo zrobił podobny konwerter, ale podobno nie działało w nim OBJ :arrow: MOD.

Ten konwerter jest w tym temacie i nawet z niego korzystałem (wzór modeli do Colonization).

A konwerter 0judge0 przetestuję w najbliższym czasie.
@0judge0 Życzę szybkiego dodania funkcji konwersji tekstur! Może adiblol udostępni źródła swojego konwertera (który obsługuje tekstury) żebyś mógł zobaczyć jak napisać taką konwersję?

0judge0 - 03-09-2011, 16:53

Zajmę się tym jeśli okaże się że program ma racje bytu, bo jeśli nie to po co dalej to rozwijać. Co nie :)
adiblol - 05-09-2011, 14:58

Źródła chyba dałem (na licencji BSD bodajże) w temacie ze wszystkimi moimi narzędziami.

[ Dodano: 05-09-2011, 15:20 ]
Jednak nie ma.
Proszę: http://storage.1tbps.org/...od2obj.tar.lzma

Copyright (c) 2008 adiblol
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0judge0 - 11-09-2011, 15:37

EDIT: To co pod dołem to na razie nieaktualne, po wrzuceniu programu przypomniałem sobie o czymś co muszę jeszcze poprawić zanim go udostępnię. Postaram się jak najszybciej to poprawić.

Ok udało mi się uporać z teksturami w obie strony. Jak już wcześniej pisałem program sprawdziłem tylko na plikach wyeksportowanych przez wings 3d więc z innymi programami może mieć problemy. Tak więc poprosił bym o jakieś modele z blendera czy maxa, oczywiście oteksturowane (tekstury w rozdzielczości 256x256, wiadomo chyba dlaczego. Oczywiście model może składać się z wielu tekstur.). Może te modele z Colonization czy jakoś tak (ten remake colobota co robicie), oczywiście w formacie obj muszą być. Poza tym program nie obsługuje jeszcze cieni i brudnych tekstur, aha i każdy model musi się składać z "trójkątów" fachowo to chyba się nazywa triangulate czy jakoś tak i kompletnie oteksturowany musi być żeby konwerter poprawnie z niego plik mod zrobił. No dobra to chyba tyle na razie, program w załączniku.


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group