Archiwum kategorii 'Tutoriale'

Szybsza praca z RasMaker2

Przedstawię szybki i prosty sposób na pracę z RasMaker’em, bez zbędnego męczenia się w : ‘Wierszu polecenia’!

Tworzymy plik *txt, wpisujemy w nim dwa polecenia :

rasmaker2 -a [nazwa folderu z modem] [plik wyjściowy.mp2m]

Dzięki temu poleceniu RasMaker2 utworzy naszego moda.

copy [plik wyjściowy.mp2m] ["ścieżka folderu z grą Max Payne 2"]

To polecenie skopiuje naszego moda do folderu z grą.

Po wpisaniu tych komend zmieniamy rozszerzenie naszego pliku tekstowego na *.bat, następnie umieszczamy go w folderze z RasMakerem2.

Teraz za każdym razem gry odpalimy nasz plik, RasMaker2 utworzy naszego moda, po czym skopiuje go do folderu z grą. Oszczędzamy mnóstwo czasu :)

Bullet time od podszewki

Mówiłem już o kontroli bullet time’u  w edytorze, omawiałem wtedy jak uruchomić ‘zwolnienie’; teraz czas na zmianę w opcjach podstawowych. Będziemy potrzebowali pliku : globalconfig.txt(należałoby zrobić kopię zapasową), szukamy w nim sekcji : [slowmotion]“. Widzimy coś takiego :

[slowmotion]
{
[general]
SlowMotionTime = 60.0;
RegenerationTime = 5.0;
Threshold = 5%;
TurnOffPenalty = 0%;
ShootDodgePenalty = 0%;
ShootDodgeThreshold = 0.01%;

MusicVolume = 1.0;
MusicVolumeFadeTime = 0.2;
HeartbeatSoundMessage = “maxpayne_gamemode->A_PlaySound( misc, slow_motion_heartbeat );”;
HeartbeatSoundInterval = 1.1;

EfficiencyIncreasePerKill = 100%;
EfficiencyDecreaseDelayAfterKill = 5.0;
EfficiencyDecreaseSpeed = 0%;

MinEfficiencyGameSpeedMultiplier = 0.5;
MaxEfficiencyGameSpeedMultiplier = 0.01;

// MinEfficiencyPlayerTimeMultiplier is always 1.0
MaxEfficiencyPlayerTimeMultiplier = 100.0;

InBlendTime = 0.1;
OutBlendTime = 0.1;
EfficiencyIncreaseBlendTime = 0.1;

Teraz wyjaśnię ważniejsze opcje…

EfficiencyIncreasePerKill – O ile procent zmniejszy się prędkość gry po każdym zabiciu przeciwnika.
EfficiencyDecreaseDelayAfterKill – Po jakim czasie spadnie szybkość gry do poprzedniego poziomu.
EfficiencyDecreaseSpeed – Jak bardzo efektywność byllet time’u będzie spadać po upływie 1 sekundy.
MinEfficiencyGameSpeedMultiplier - Minimalna wartość spowolnienia.
MaxEfficiencyGameSpeedMultiplier - Maksymalna wartość spowolnienia.

SlowMotionTime – Jak długo można pozostać w bullet time bez zabijania przeciwników.
RegenerationTime – Czas regeneracji bullet time, od zera
Threshold – Minimalna ilość bullet time potrzebna do aktywacji tej opcji..
TurnOffPenalty – Cena za wyjście z bullet time.
ShootDodgePenalty – Ilość bullet time używanego podczas spowolnionego skoku.
ShootDodgeThreshold – Ilośc bullet time potrzebna do wykonania spowolnionego skoku.

Deszczowa powierzchnia

Stworzenie powierzchni, która częściowo odbija światło, czy to przez nasiąknięcie wodą, lub przez swoją fakturę nie jest trudne i sprowadza się do kilku prostych czynności…

Tworzymy kategorię mirror_water (odbicie kategorii ‘mirror_glass’ jest niemalże niewidoczne). Wrzucamy tam texture z kategorii szklanych (znajdziesz takowe w: ‘plain_glass i ‘window’). Umieszczamy siatkę na podłodze i dokładnie ja obrysowujemy. Kończąc rysownie przytrzymujemy klawisz Shift, aby uzyskać obiekt 2D. Zmniejszamy siatkę do minimalnej wielkości i w trybie F5 podnosimy, nowo utworzony obiekt, do góry, tak aby nie kolidował z podłogą. We właściwościach obiektu wyłączamy kolizje.

Gotowe, mamy lśniącą podłogę…

Przejście do drugiego poziomu

Załóżmy, że stworzyliśmy dwa levele. Teraz chcemy, aby w pewnym momencie podczas 1. z nich wczytał się drugi. Należy oba levele eksportować do :

MaxPayne2Dev\RasMaker2\Data\DataBase\Levels\Work.

Potem kopiujemy plik z :

MaxPayne2Dev\Game\Data\DataBase\Levels o nazwie levels.txt

do :

MaxPayne2Dev\RasMaker2\Data\DataBase\Levels

dodajemy własne dane, przykładowo levele mają nazwy : alfa i beta…

[Properties]

LevelName = “alfa”;

Directory = work;

Level = alfa.ldb;

LoadingScreen = “\data\sharedtextures\pleasewait.dds”;

PlayerSkinName = “maxpayne”;

Tworzymy niżej podobny wpis :

[Properties]

LevelName = “beta”;

Directory = work;

Level = beta.ldb;

LoadingScreen = “\data\sharedtextures\pleasewait.dds”;

PlayerSkinName = “maxpayne”;

Teraz podmieniamy stworzony plik levels.txt do katalogu : Game\Data\DataBase\Levels\
Następnie  w levelu  alfa tworzymy triggera z komedą:

MaxPayne_GameMode->GM_Init(beta);

Gotowe :)

Dodawanie własnych dźwięków

Proces dodawania własnych dżwięków do gry składa się z trzech etapów. Na samym początku należy zrobić kopie zapasowe plików które zamierzamy edytować (tak na wszelki wypadek). W pierwszym etapie należy poddać komwersji pliki, które chcemy ‘wpakować’ do gry. Najlepiej jest to zrobić w programie, który posiada każdy – Rejestrator dźwięków. Uruchamiamy program. Klikamy na : Plik -> Otwórz… i wczytujemu plik dźwiękowy. Teraz wybieramy : Plik -> Właściwości…

Pojawia się okno…

Wybieramy opcję : Konwertuj teraz… Określamy atrybuty pliku – najlepiej jest wybrać(tak mi się wydaje) takie właściwości:

Rozmiar próbki audio : 16 bitów

Kanały : 2 (stereo)

Częstotliwość próbkowania audio : 44kHz

Plik musi posiadać obowiązkowo jeden z formatów : PCM lub Microsoft ADPCM! Konwertujemy plik…

Drugim krokiem jaki musimy wykonać jest dodanie naszego pliku do edytora. W tym celu kopiujemy prze konwertowany plik do folderu(*) : X:\MaxPayne2Dev\Game\data\database\music\files\

(*)Teraz zależy jaki plik chcemy dodać : zwykły dźwięk, czy podkład muzyczny. Proces pokaże na przykładzie muzyki. Jednakże dla zwykłych dźwięków wygląda to podobnie!

Otwieramy plik : X:\MaxPayne2Dev\Game\data\database\music\music.txt… Schodzimy na sam dół pliku i kopiujmy ostatnie 4. linijki; wklejamy je pod spodem. Całość powinna wyglądać mniej więcej tak :

I tu wyjaśniam…

Zmieniamy nazwę pliku w edytorze oraz ścieżkę dostępu do pliku (zmieniamy tylko jego nazwę). Powinno to wyglądać tak :

Teraz dodajemy plik do naszego moda. Kopiujemy plik dźwiękowy, który chcemy dodać, do folderu :
X:\MaxPayne2Dev\RasMaker2\data\database\music\files\

A plik tekstowy, który edytowaliśmy (music.txt) kopiujemy do folderu :
X:\MaxPayne2Dev\RasMaker2\data\database\music

Teraz wystarczy sprawdzić, czy wszystko gra! Najpierw w edytorze… Dodajemy naszą muzykę :

Eksportujemy level, tworzymy moda… Powinno chodzić, jednakże mogą wystąpić błędy :

Taki błąd oznacza, iż nie skopiowaliśmy pliku dźwiękowego lub pliku music.txt do moda!

Tak to wygląda w przypadku dodawania podkładu muzycznego, a co w przypadku zwykłego dźwięku? Ano wygląda to podobnie… Proponuje wszystkie dodawane dźwięki dodawać do kategorii : generic. Proces wygląda mniej więcej tak…

Odnajdujemy plik : X:\MaxPayne2Dev\Game\data\database\sounds\generic.txt; kopiujemy ostatnią ‘pozycję’ dźwięku.

Zajmujemy się teraz tym co skopiowaliśmy. Edytujemy nazwę pliku w edytorze (to pomiędzy nawiasami kwadratowymi) oraz zmieniamy w linijce : Filename = generic\wood_panel_slam.wav; nazwę : wood_panel_slam.wav na nazwę pliku, który chcemy dodać. Powinno to wyglądać tak :

Kopiujemy plik, który chcemy dodać do edytora. W tym celu w folderze :

X:\MaxPayne2Dev\Game\data\database\sounds\generic; umieszczamy nasz plik. Teraz wystarczy tylko dodać nasz plik do moda, czyli kopiujemy plik dźwiękowy, który dodaliśmy do edytora do folderu :

X:\MaxPayne2Dev\RasMaker2\data\database\sounds\generic; oraz kopiujemy plik generic.txt do folderu :

X:\MaxPayne2Dev\RasMaker2\data\database\sounds

Jeśli wszystko wykonaliśmy, to sprawdzamy, czy w edytorze widoczny jest nasz plik :

Jeśli tak to sprawdzamy, czy działa to w modzie! Powodzenia…