[C++]Regen Wetter / Rain Weather

03/18/2022 01:32 Endless.#1
Guten Morgen zusammen :)


Ich habe mich ein wenig mal mit der Source des Clients auseinander gesetzt und etwas interessantes gefunden. Ich habe sowas bislang noch auf keinem Server gesehen. Bislang nur provisorische Methoden wie z.B Bilder in Dauerschleife anzeigen lassen durch Python oder Effekte durch MSE Dateien die am Ende an unsichtbare Monster gebunden werden.. sieht beides nicht sonderlich elegant aus, deswegen bin ich etwas überzeugter von meiner Methode :)

Probieren wir doch einfach mal was Anderes. Anstatt immer nur Schnee in Metin2, könnte man genau so gut Regen ins Spiel packen, welcher auch gut aussieht. Und dazu müssen wir in unsere Binary Source.

Dort werden wir dann in GameLib und schauen uns mal die
SnowEnvironment.cpp an.

Als erstes werden wir den Schneefall ersteinmal beschleunigen, weil langsam fallende Regentropfen mal überhaupt nicht echt und cool aussehen :D

Dazu verändern wir in der SnowEnvironment.cpp folgender Teil der Funktion:

Code:
float fElapsedTime = float(lcurTime - s_lLastTime) / 1000.0f;

---- Die 1000.0f habe ich verändert zu 75.f ----------
Nun sollte der Schneefall schnell genug vom Himmel fallen, damit er wie Regen aussieht.. doch leider ist es damit nicht getan.
Wenn wir ins Spiel gehen, haben die Schneeflocken zu viel Distanz voneinander und wir wollen natürlich mehr!

Dazu verändern in der SnowEnvironment.cpp

folgende Funktion:

Code:
for (int p = 0; p < min(10, m_dwParticleMaxNum -m_kVct_pkParticleSnow.size()); ++p)

-- min(10 ersetzen wir mit z.B 100 oder 200) ---
Damit haben wir erreicht mehr Regentropfen in der Zeit vom Himmel fallen zu lassen.

€: Ganz vergessen!
Wir wollen den Regen noch etwas näher zu uns holen, weil es so aussieht, wie wenn wir von der schönen Dusche nichts abbekommen würden!

Auch dazu verändern wir in der SnowEnvironment.cpp folgende Funktion:
Code:
D3DXVECTOR3 v3ChangedPos = c_rv3View * 3500.0f + c_rv3Pos;

-- 3500.0f habe ich zu 500.0f geändert und damit ist der Regen näher am Bildschirm.
Wenn ich die Binary nach den Änderungen compile sieht es im Spiel so aus:

[Only registered and activated users can see links. Click Here To Register...]

Gut, da es ein Foto ist, kann man schwer sehen, wie der Effekt wirklich aussieht :D Natürlich sollte man dafür auch eine geeignete Textur verwenden. Man kann auch beides ins Spiel einbauen, dass es Schnee und Regen gibt, doch man muss dafür auch noch Serverseitige Änderungen vornehmen und daher bevorzuge ich lieber 2 verschiedene Binarys.

Dieses Tutorial sollte etwas neue Ideen für die optische Gestaltung des Servers bringen. Ich hoffe es kann hier irgendjemand gebrauchen.

Mit freundlichen Grüßen, Endless :)
03/20/2022 20:37 MaxChri#2
Einfache aber gute Lösung. Im Winter die Schnee-Binary und ansonsten halt Regen. :D
03/23/2022 15:25 MilkingCow#3
Joa okay, hart scuffed.
Das SnowEnvironment als Basis zu nutzen wenn mann keine Ahnung hat wie man sowas machen kann ist aight, aber dennoch geht da noch n bissle mehr.
03/23/2022 20:05 xTryx#4
Quote:
Originally Posted by MilkingCow View Post
Joa okay, hart scuffed.
Das SnowEnvironment als Basis zu nutzen wenn mann keine Ahnung hat wie man sowas machen kann ist aight, aber dennoch geht da noch n bissle mehr.
[Only registered and activated users can see links. Click Here To Register...]
das sieht echt nice aus bei dir
03/24/2022 18:17 Endless.#5
Quote:
Originally Posted by MilkingCow View Post
Joa okay, hart scuffed.
Das SnowEnvironment als Basis zu nutzen wenn mann keine Ahnung hat wie man sowas machen kann ist aight, aber dennoch geht da noch n bissle mehr.
[Only registered and activated users can see links. Click Here To Register...]
Ähm ja ich habe auch später bemerkt, dass eig nur die SnowEnvironment.cpp den Einfluss hat :D Aber ich denke auch, dass man den Regen je nach Textur dann etwas anpassen muss, damit er ordentlich aussieht. Ich habe dunkelblau/graue Regentropfen verwendet, daher sieht es bei mir anders aus.

Übrigens, schickes Client Design.
03/24/2022 18:47 RauschGiftx3#6
Quote:
Originally Posted by MilkingCow View Post
Joa okay, hart scuffed.
Das SnowEnvironment als Basis zu nutzen wenn mann keine Ahnung hat wie man sowas machen kann ist aight, aber dennoch geht da noch n bissle mehr.
[Only registered and activated users can see links. Click Here To Register...]

wie hast du das mit den boden effekt gemacht? das die tropfen beim berühren des bodens aufplatschen?
03/24/2022 22:53 MilkingCow#7
Quote:
Originally Posted by RauschGiftx3 View Post
wie hast du das mit den boden effekt gemacht? das die tropfen beim berühren des bodens aufplatschen?
Splash Effekt auf XYZ der Kollision zwischen dem Partikel und dem Terrain erstellen.
Das Video ist schon etwas älter hatte weitere Effekte für Partikel kontakt mit Wasser eingefügt.