Ergebnis 1 bis 10 von 10
  1. #1 Zitieren
    Rookie
    Registriert seit
    Mar 2019
    Beiträge
    5
    First of all, huge thanks to Baltram for creating this awesome modding tool. It's truly amazing.

    https://forum.worldofplayers.de/foru...source-Manager

    I was always a massive Gothic/Risen fan and recently I finally decided to buy ELEX during a Steam sale. The game is fantastic.
    After beating it twice I wanted to mess around with modding. Primarily changing the soundtrack of the game as I feel like the basic Elex music, while not bad, isn't very engaging - so I've decided to replace it. Sadly I've got no previous experience so it's all a learning curve for me and I wonder if you guys could help me a bit as I'm currently stuck.

    I started by editing .elexsnd files located in ELEX\data\packed\c_1_na\Sound and replacing them with music from other games, primarily Gothic 3 and 2.
    This worked just fine however I quickly noticed a glaring issue: Elex music changes depending on the zone/area you enter, this works fine with the original music which is very minimal & barely distinguishable from track to track which means that "the transition" from zone to zone is very smooth and natural.

    This doesn't work as well when using custom music which can drastically & suddenly change in tone because you're suddenly in a different part of Edan woods or Goliet
    I then found out that all sectors as in EDAN, ABESSA, IGNADON etc. are using something called MUSIC ZONES which you can find in ELEX\data\packed\c_1_na\Sector in a file titled XXX_MusicZones.elexsec ie: EDA_MusicZones.elexsec
    Every single "zone" is a 3D sphere with a defined center and borders.
    I figured out that you can change the music played in each zone by simply changing two lines of text, highlighted in red.

    Code:
    "AreaZone_Mus_Berserker" {
                GUID = {EE16D2AC-DD8C-4B98-AA6D-02790972A6B8};
                Creator = {70259B64-682F-45E2-AD7C-55092BB9F91D};
                MatrixLocal = (mat 0.967088521 0 0.254433334 0 0 0.999999583 0 0 -0.254433334 0 0.967088521 0 -125008.359 35958.0117 -227959.672 0.99999994);
                MatrixGlobal = (mat 0.967088521 0 0.254433334 0 0 0.999999583 0 0 -0.254433334 0 0.967088521 0 -125008.359 35958.0117 -227959.672 0.99999994);
                Extents = (box -132583.469 30955.2871 -242418.844 -107692.422 50565.5859 -220043.719);
                Center = (vec -120137.945 40760.4375 -231231.281);
                Radius = 19395.709;
                Range = 100000;
                Unknown0 = <CA FD 00 7A 7E 6C 69 93>;
                Unknown1 = <05>;
                Unknown2 = <1D A4 00 00 01 00>;
                class eCArea_StringProperty_PS {
                    Version = 1;
                    Properties {
                        class bCBox AreaBox = (box -6678.46094 -5002.73047 -13194.1641 14433.9609 14607.5742 4387.91406);
                        class bCSphere AreaSphere = <00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42>;
                        bool UseBox = True;
                        class bTObjArray<class bCString> PropertyNameList = [
                            "mus_berserker"
    By swapping those two lines with other music files ie: "Mus_Beach" you can swap the song that's going to be played in each sector. I used the ELEX debug console to locate position of every single zone in Edan but that's where my pain truly started.

    It seems these zones are really "scuffed" and don't follow any logic or order. IE: The music that's played in Goliet titled "mus_berserker" only covers half of the actual town! The lower parts of the city around the plantations and main gate in fact play ruin & outdoor forest music which ruins the immersion as my city music suddenly gets replaced with a forest tune in the middle of a town...


    For example: You use the teleporter outside of bridge leading to main Goliet gate where you can meet Drog. The music played in that area is titled "mus_beach", you then enter the actual city of Goliet and you're met with... another musicarea which plays "mus_outdoor_forest", only once you reach the actual tavern/shop area of Goliet you're presented with "mus_berserker" which is played in the rest of the city.
    What's even more frustrating is the fact that the sector responsible for playing "mus_outdoor_forest" inside city of Goliet is nowhere near the actual city! It's a massive zone located in middle of valley of the damned, west to the city:

    Code:
    "AreaZone_Theme_Outdoor_Forest" {
                GUID = {52CF27D4-E95F-4014-9F48-8FBA0D66ED62};
                Creator = {70259B64-682F-45E2-AD7C-55092BB9F91D};
                MatrixLocal = (mat 1 0 0 0 0 1 0 0 0 0 1 0 -162912.219 28308.8223 -208476.063 1);
                MatrixGlobal = (mat 1 0 0 0 0 1 0 0 0 0 1 0 -162912.219 28308.8223 -208476.063 1);
                Extents = (box -339464.219 1531.52344 -330902.063 -73615.2188 82005.8203 -124769.25);
                Center = (vec -206539.719 41768.6719 -227835.656);
                Radius = 172946.906;
                Range = 100000;
                Unknown0 = <CA FD 00 7A 7E 6C 69 93>;
                Unknown1 = <05>;
                Unknown2 = <1D A4 00 00 01 00>;
                class eCArea_StringProperty_PS {
                    Version = 1;
                    Properties {
                        class bCBox AreaBox = (box -176552 -26777.2969 -122426 89297 53697 83706.8125);
                        class bCSphere AreaSphere = <00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42>;
                        bool UseBox = True;
                        class bTObjArray<class bCString> PropertyNameList = [
                            "thm_outdoor_forest"
    Center of that sphere is located in smack middle of valley of the damned, with a massive radius of 172 units in both X & Z axis (North/South & West/East on the map) meaning that if I try to replace music for that small area of Goliet I'll end up replacing music for basically entire valley of the damned.

    Which leads me to my current issue: I'm trying to either:


    1. Find a way to change the priority of each sector so by increasing the radius of the music area in Goliet I can cover the remaining part of the city, overwriting the music area for outdoor forest.
    2. Find a way to define and move borders of each music sector which I believe is defined by Extents, MatrixGlobal & MatrixLocal lines however I'm not exactly sure what MatrixLocal & MatrixGlobal do or how to define borders using Extents.
    3. Create new music zones in game (however again I'd struggle with defining their borders by using extents, matrixglobal & matrixlocal as I have no clue about these 3 lines)


    Anyone has any ideas?
    Kunzzi ist offline Geändert von Kunzzi (30.11.2021 um 18:18 Uhr)

  2. #2 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.157
    Zitat Zitat von Kunzzi Beitrag anzeigen
    I then found out that all sectors as in EDAN, ABESSA, IGNADON etc. are using something called MUSIC ZONES
    Music zones are used by the Genome engine since Gothic, afair.
    It seems these zones are really "scuffed" and don't follow any logic or order.
    A map as exists for Dangerzones would come in handy, wouldn't it?
    IE: The music that's played in Goliet titled "mus_berserker" only covers half of the actual town! The lower parts of the city around the plantations and main gate in fact play ruin & outdoor forest music which ruins the immersion as my city music suddenly gets replaced with a forest tune in the middle of a town...
    Hahaha, I've to admit that I never was aware of that!

    For example: You use the teleporter outside of bridge leading to main Goliet gate where you can meet Drog. The music played in that area is titled "mus_beach", you then enter the actual city of Goliet and you're met with... another musicarea which plays "mus_outdoor_forest", only once you reach the actual tavern/shop area of Goliet you're presented with "mus_berserker" which is played in the rest of the city.
    What the heck, I'll test this asap.


    1. Find a way to change the priority of each sector so by increasing the radius of the music area in Goliet I can cover the remaining part of the city, overwriting the music area for outdoor forest.
    2. Find a way to define and move borders of each music sector which I believe is defined by Extents, MatrixGlobal & MatrixLocal lines however I'm not exactly sure what MatrixLocal & MatrixGlobal do or how to define borders using Extents.
    3. Create new music zones in game (however again I'd struggle with defining their borders by using extents, matrixglobal & matrixlocal as I have no clue about these 3 lines)


    Anyone has any ideas?
    1. Priority of music zones? There is no variable, I guess (like FocusPriority for example).
    2. To change the position of a music zone entity here's the "command" Baltram introduced in his elexresman.
    (example: )
    NewPos = (vec -201000.0 41800.0 -68000.6);

    3: extends is just a bounding box, the coordinates of two diametral edges of it. They should be symmetric to the center (so some math required to increase a box).
    The center coordinates should be the same as the position of an object (entity), MatrixLocal = (mat 0.403553218 0 -0.914956152 0 0 0.999999642 0 0 0.914955914 0 0.403552592 0 -192471.781 37434.8008 -109674.266 1);

    Where position is -192471.781 37434.8008 -109674.266 (usually the same as in GlobalMartix, except it's a child of a parent entity, then it has relative coordinates).

    I have no idea why center is different from the object position (sometimes/always?).
    (You could use something like Blender to put a sphere of radius "Radius" at the position "Center" to see how it looks.)

    Creation of a zones should be simple, just create a copy of another one, change the names, use NewPos() AND
    don't forget to use a new GUID (while the Creator guid needs to be unchanged, of course).

    Happy modding!

    edit: Center_x= (extents_x1 + extents_x2) / 2
    Center_y= (extents_y1 + extents_y2) / 2
    Center_z= (extents_z1 + extents_z2) / 2
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (01.12.2021 um 10:10 Uhr)

  3. #3 Zitieren
    Rookie
    Registriert seit
    Mar 2019
    Beiträge
    5
    Zitat Zitat von tombom81 Beitrag anzeigen
    Music zones are used by the Genome engine since Gothic, afair.
    A map as exists for Dangerzones would come in handy, wouldn't it?
    Hahaha, I've to admit that I never was aware of that!

    What the heck, I'll test this asap.

    1. Priority of music zones? There is no variable, I guess (like FocusPriority for example).
    2. To change the position of a music zone entity here's the "command" Baltram introduced in his elexresman.
    (example: )
    NewPos = (vec -201000.0 41800.0 -68000.6);

    3: extends is just a bounding box, the coordinates of two diametral edges of it. They should be symmetric to the center (so some math required to increase a box).
    The center coordinates should be the same as the position of an object (entity), MatrixLocal = (mat 0.403553218 0 -0.914956152 0 0 0.999999642 0 0 0.914955914 0 0.403552592 0 -192471.781 37434.8008 -109674.266 1);

    Where position is -192471.781 37434.8008 -109674.266 (usually the same as in GlobalMartix, except it's a child of a parent entity, then it has relative coordinates).

    I have no idea why center is different from the object position (sometimes/always?).
    (You could use something like Blender to put a sphere of radius "Radius" at the position "Center" to see how it looks.)

    Creation of a zones should be simple, just create a copy of another one, change the names, use NewPos() AND
    don't forget to use a new GUID (while the Creator guid needs to be unchanged, of course).

    Happy modding!

    edit: Center_x= (extents_x1 + extents_x2) / 2
    Center_y= (extents_y1 + extents_y2) / 2
    Center_z= (extents_z1 + extents_z2) / 2
    Huge thanks for this! After making my original post I've figured out the purpose and the correct use of Center & Extents perimeters so no issues there.

    Radius & Matrix are more confusing, I understand the last 3 perimeters in MatrixLocal & MatrixGlobal which define XYZ but unsure about the rest of them (0.403553218 0 -0.914956152 0 0 0.999999642 0 0 0.914955914 0 0.403552592 in your example, sometimes they're even numbers like 1 0 0 0 0 1 0 0 0 0 1 0, sometimes they're decimals within range of 0 to 1).
    Radius distance doesn't seem to follow any logic or order as well but your post gave me a hint as I was wrongly thinking of these 3D shapes as ellipsoids with 3 coordinates in 3 dimensions, where in fact it might be just a 2d ellipse so I don't have to consider Y cords to define radius. I'll give it a try once I come back from work!
    Kunzzi ist offline

  4. #4 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.157
    Zitat Zitat von Kunzzi Beitrag anzeigen
    , I understand the last 3 perimeters in MatrixLocal & MatrixGlobal which define XYZ but unsure about the rest of them (0.403553218 0 -0.914956152 0 0 0.999999642 0 0 0.914955914 0 0.403552592 in your example, sometimes they're even numbers like 1 0 0 0 0 1 0 0 0 0 1 0, sometimes they're decimals within range of 0 to 1).
    It's just a rotation matrix which defines 3 euler angles, afaik.

    1.000000 0.000000 0.000000 0.000000
    0.000000 1.000000 0.000000 0.000000
    0.000000 0.000000 1.000000 0.000000

    Then the position follows:
    x y z 1.000000

    Angles are not that important for music zones, I guess, but here's Baltram's "command" to change them:
    NewRot = (euler 3.141593 0.000000 0.000000);

    It's radians to be used (in degrees it's 180°, 0°, 0° for the NewRot example).
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (01.12.2021 um 17:52 Uhr) Grund: typo

  5. #5 Zitieren
    Rookie
    Registriert seit
    Mar 2019
    Beiträge
    5
    Me again All I've got to say is that it's extremely difficult and misleading.

    Extents, Center & Radius don't actually seem to do anything at least for background music. I think they're basically restrictions which define borders beyond which you can't have the music for specific zone so as long as you're working within these parameters you're good to go, still can't comprehend how the game calculates its Radius. They also might have something to do with SFX ie: ambiance, sound of wind etc.

    The parameter that actually defines center of the music area is MatrixLocal & MatrixGlobal as changing these two is what actually made the difference and allowed me to reallocate music in Goliet.

    In terms of actual borders: toying with class bCBox AreaBox seems to be the option that works and allows you to shape the rectangle within which you play the music itself (or perhaps quadrangle?)

    Still it's a very time consuming trial and error process, as trying to calculate borders of each music zone doesn't seem to match the numbers shown in the document. Sometimes it does, sometimes it doesn't.

    And I'm not even going to mention the issue of understanding the priority of which musicarea gets played if you have two AreaBoxes overwriting each other.

    EDIT: Just few quick notes for each parameter in the MusicArea file:

    MatrixLocal & MatrixGlobal = Your actual physical centre from which you build your bCBox, unsure how euler angles impact music areas atm.
    Extents = just make sure it matches MatrixLocal/Global POS + bCBox cords
    Center = self explanatory, derive from Extents, just do x1 + x2 /2, same for Y & Z cords.
    Radius = Unknown at the time, I might be too stupid to do math but I just don't see it.
    Range = Leave it at 100000;
    class bCBox AreaBox = this defines actual music area and has to match extents and vice versa. Calculated from MatrixLocal/Global pos.
    Kunzzi ist offline Geändert von Kunzzi (02.12.2021 um 22:20 Uhr)

  6. #6 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.157
    Well, that's really strange, I increased an entities y position (height) by 100 (37355.5039 -> 37455.5039) and the bounding box increased in all directions (bug?)

    Code:
                NewPos= (vec -194880.016 37455.5039 -102631.234);
                MatrixLocal = (mat 0.0475930683 0 -0.998866856 0 0 1 0 0  0.998866856 0 0.0475930683 0 -194880.016 37355.5039 -102631.234 1);
                MatrixGlobal = (mat 0.0475930683 0 -0.998866856 0 0 1 0 0  0.998866856 0 0.0475930683 0 -194880.016 37355.5039 -102631.234 1);
                Extents = (box -195772.266 37080.5508 -103300.102 -193746.078 38337.9961 -102006.664);
                Center = (vec -194759.172 37709.2734 -102653.383);
                Radius = 1356.42773;
    Result of NewPos:
    as expected:
    MatrixLocal = (mat 0.0475930683 0 -0.998866856 0 0 1 0 0 0.998866856 0 0.0475930683 0 -194880.016 37455.5039 -102631.234 1);
    MatrixGlobal = (mat 0.0475930683 0 -0.998866856 0 0 1 0 0 0.998866856 0 0.0475930683 0 -194880.016 37455.5039 -102631.234 1);

    unexpected:
    Extents = (box -196115.594 36452.8438 -104009.813 -193402.75 39165.7031 -101296.953);
    differences (x_new - x_old, etc.): -343.3 -627.71 -709.7 343.25 827.7 709.7

    (Center y moved correctly)
    Center = (vec -194759.172 37809.2734 -102653.383);

    Radius = 1356.42773;

    edit: from the sources (latest?) it looks like a known problem:
    // ToDo: Better bounding box approximation
    stream3D << ( vecCenter - mCVec3( fRadius, fRadius, fRadius ) ) << ( vecCenter + mCVec3( fRadius, fRadius, fRadius ) );
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (03.12.2021 um 01:59 Uhr)

  7. #7 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.157
    Da ich meinen E-Checker schon ewig erweitern wollte, hier ein Log der Positionen Musikzonen in ABE_MusicZones.elexsec (dist(ance) einfach ignorieren):

    Code:
    0x2b3 2. AreaZone_Theme_Highlands -119211.539063 44184.312500 -77124.031250 -> dist 141000
    0x4fb 3. AreaZone_Mus_Converter2 -81728.554688 40964.113281 -60220.867188 -> dist 101000
    0x743 4. AreaZone_Mus_Converter2 -118617.343750 47399.050781 -23367.732422 -> dist 120000
    0x98b 5. AreaZone_Mus_Relict -191324.218750 36385.460938 -82229.492188 -> dist 208000
    0xbcb 6. AreaZone_Theme_Highlands -13667.873047 52132.773438 10727.726563 -> dist 10k20k, 17000
    0xe13 7. AreaZone_Mus_Dungeon3 -65881.437500 55806.250000 11829.212891 -> dist 60k70k, 66000
    0x1057 8. AreaZone_Mus_Homebase -123717.312500 48616.734375 -104836.726563 -> dist 162000
    0x129b 9. AreaZone_Mus_Homebase -52069.656250 41163.460938 -40011.875000 -> dist 60k70k, 65000
    0x14df 10. AreaZone_Mus_Dungeon -64067.898438 43541.285156 -80990.304688 -> dist 103000
    0x1721 11. AreaZone_Mus_Ruins -73714.000000 44644.437500 -114720.101563 -> dist 136000
    0x195f 12. AreaZone_Mus_Beach -90666.484375 48644.425781 -91568.367188 -> dist 128000
    0x1b9d 13. AreaZone_Mus_Dungeon3 -130008.148438 42295.101563 -46218.023438 -> dist 137000
    0x1de1 14. AreaZone_Mus_Homebase -87258.593750 45138.398438 -44455.285156 -> dist 97000
    0x2025 15. AreaZone_Mus_Ruins -37378.070313 47530.445313 -82758.812500 -> dist 90000
    0x2263 16. AreaZone_Mus_Beach -99300.437500 41802.050781 -54560.179688 -> dist 113000
    0x24a1 17. AreaZone_Mus_Dungeon3 -69210.531250 47094.371094 -9117.346680 -> dist 60k70k, 69000
    0x26e5 18. AreaZone_Mus_Dungeon -33565.976563 42845.414063 -106167.171875 -> dist 111000
    0x2927 19. AreaZone_Mus_Dungeon3 -25333.208984 41421.750000 -119270.546875 -> dist 121000
    0x2b6b 20. AreaZone_Mus_Dungeon -90486.992188 49597.273438 -7412.129883 -> dist 90000
    0x2dad 21. AreaZone_Mus_Dungeon3 -155535.000000 49302.988281 -23559.468750 -> dist 157000
    0x2ff1 22. AreaZone_Mus_Beach -149160.093750 43438.164063 -44399.625000 -> dist 155000
    0x322f 23. AreaZone_Mus_Ruins -152275.218750 44607.531250 -63627.359375 -> dist 165000
    0x346d 24. AreaZone_Mus_Homebase -187371.375000 44478.804688 -55173.234375 -> dist 195000
    0x36b1 25. AreaZone_Mus_Beach -224729.375000 17459.093750 -73338.796875 -> dist 236000
    0x38ef 26. AreaZone_Mus_Homebase -189588.531250 32544.503906 -129243.234375 -> dist 229000
    0x3b33 27. AreaZone_Mus_Ruins -171980.953125 33935.589844 -139641.406250 -> dist 221000
    0x3d71 28. AreaZone_Mus_Beach -135103.437500 41892.640625 -138926.109375 -> dist 193000
    0x3faf 29. AreaZone_Mus_Beach -107328.289063 35544.632813 -146728.546875 -> dist 181000
    0x41ed 30. AreaZone_Mus_Dungeon -185507.437500 43230.875000 -65338.765625 -> dist 196000
    0x442f 31. AreaZone_Mus_Dungeon -42542.414063 49525.753906 18828.269531 -> dist 40k50k, 46000
    0x4671 32. AreaZone_Mus_Dungeon -111371.484375 37504.652344 -95447.335938 -> dist 146000
    0x48b3 33. AreaZone_Mus_Ruins -181393.015625 44090.066406 -39934.765625 -> dist 185000
    0x4af1 34. AreaZone_Mus_Converter2 -171188.609375 33870.347656 -53878.152344 -> dist 179000
    0x4d39 35. AreaZone_Mus_Dungeon3 -150188.718750 29581.417969 -86665.593750 -> dist 173000
    0x4f7d 36. AreaZone_Mus_Homebase -197749.953125 22299.667969 -102300.203125 -> dist 222000
    0x51c1 37. AreaZone_Mus_Dungeon -152858.625000 43938.234375 -111025.984375 -> dist 188000
    0x5403 38. AreaZone_Mus_Ruins -172592.375000 39072.933594 -92165.375000 -> dist 195000
    0x5641 39. AreaZone_Mus_Ruins -173851.390625 41438.128906 -80121.437500 -> dist 191000
    0x587f 40. AreaZone_Mus_Homebase -162235.078125 36503.414063 -78097.882813 -> dist 180000
    0x5ac3 41. AreaZone_Mus_Outdoor_Forest -170360.687500 32572.242188 -112138.281250 -> dist 203000
    0x5d13 42. AreaZone_Mus_Converter -166308.359375 32925.390625 -41428.949219 -> dist 171000
    0x5f59 43. AreaZone_Mus_Converter -191568.312500 38239.324219 -112966.648438 -> dist 222000
    0x619f 44. AreaZone_Mus_Converter2 -162456.484375 36026.027344 -48397.183594 -> dist 169000
    0x63e7 45. AreaZone_Mus_Dungeon -186874.296875 49857.886719 -29314.298828 -> dist 189000
    0x6629 46. AreaZone_Mus_Beach -118502.054688 57493.328125 -87466.726563 -> dist 147000
    0x6867 47. AreaZone_Mus_Dungeon -141284.578125 47406.953125 -81861.132813 -> dist 163000
    0x6aa9 48. AreaZone_Mus_Dungeon -125052.578125 42985.652344 -60391.980469 -> dist 138000
    0x6ceb 49. AreaZone_Mus_Ruins -135960.328125 43384.957031 -62465.148438 -> dist 149000
    Ich habe die Zonen zur besseren Übersicht einfach mal willkürlich mit weißen Linien verbunden (besser wäre natürlich die Anzeige der bounding boxes):

    Spoiler:(zum lesen bitte Text markieren)


    Edan:

    Spoiler:(zum lesen bitte Text markieren)


    Nachtrag: wenn man für die erste entity AreaZone_Theme_Highlands (nach der root entity) die Strecke zwischen
    center -132971,000000 57644,164063 -70620,156250
    und extents ("eins") -300593,437500 17407,015625 -124773,671875
    berechnet, kommt für den Radius tatsächlich ziemlich genau 180690,1 raus.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (03.12.2021 um 17:08 Uhr) Grund: Nachtrag

  8. #8 Zitieren
    Rookie
    Registriert seit
    Mar 2019
    Beiträge
    5
    I think you figured it out Tombom.

    Extents = (box -339464.219 1531.52344 -330902.063 -73615.2188 82005.8203 -124769.25);
    Center = (vec -206539.719 41768.6719 -227835.656);
    Radius = 172946.906;

    Matches https://www.omnicalculator.com/math/distance

    [Bild: B4J6vjB.png]

    Great find! I'll give it a try. Last thing to do is use something like Blender and add a photo of Elex Map on as X plane and then model a simple UV Sphere mesh which you can transform to your liking until you get your euler angles which you can get from rotation tab using Quaternion format.
    [Bild: B4J6vjB]
    [Bild: B4J6vjB]
    Kunzzi ist offline

  9. #9 Zitieren
    Rookie
    Registriert seit
    Mar 2019
    Beiträge
    5
    Me again, I've done it! Adjusted it all manually as I didn't want to just move the center.

    Goliet is now fixed, playing the mus_berserker across the whole city including northern, western and eastern gates.

    Old code:

    Code:
    "AreaZone_Mus_Berserker" {            GUID = {EE16D2AC-DD8C-4B98-AA6D-02790972A6B8};
                Creator = {70259B64-682F-45E2-AD7C-55092BB9F91D};
                MatrixLocal = (mat 0.967088521 0 0.254433334 0 0 0.999999583 0 0 -0.254433334 0 0.967088521 0 -125008.359 35958.0117 -227959.672 0.99999994);
                MatrixGlobal = (mat 0.967088521 0 0.254433334 0 0 0.999999583 0 0 -0.254433334 0 0.967088521 0 -125008.359 35958.0117 -227959.672 0.99999994);
                Extents = (box -132583.469 30955.2871 -242418.844 -107692.422 50565.5859 -220043.719);
                Center = (vec -120137.945 40760.4375 -231231.281);
                Radius = 19395.709;
                Range = 100000;
                Unknown0 = <CA FD 00 7A 7E 6C 69 93>;
                Unknown1 = <05>;
                Unknown2 = <1D A4 00 00 01 00>;
                class eCArea_StringProperty_PS {
                    Version = 1;
                    Properties {
                        class bCBox AreaBox = (box -6678.46094 -5002.73047 -13194.1641 14433.9609 14607.5742 4387.91406);
                        class bCSphere AreaSphere = <00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42>;
                        bool UseBox = True;
                        class bTObjArray<class bCString> PropertyNameList = [
                            "mus_berserker"
    New code:

    "AreaZone_Mus_Berserker" { GUID = {EE16D2AC-DD8C-4B98-AA6D-02790972A6B8};
    Creator = {70259B64-682F-45E2-AD7C-55092BB9F91D};
    MatrixLocal = (mat 1 0 0 0 0 1 0 0 0 0 1 0 -125008.359 35958.0117 -227959.672 1);
    MatrixGlobal = (mat 1 0 0 0 0 1 0 0 0 0 1 0 -125008.359 35958.0117 -227959.672 1);
    Extents = (box -132870.563 33679.7305 -245307.203 -102455.359 46128.7695 -210812.281);
    Center = (vec -117662.961 39904.25 -228059.734);
    Radius = 23822.0625;
    Range = 100000;
    Unknown0 = <CA FD 00 7A 7E 6C 69 93>;
    Unknown1 = <05>;
    Unknown2 = <1D A4 00 00 01 00>;
    class eCArea_StringProperty_PS {
    Version = 1;
    Properties {
    class bCBox AreaBox = (box -7862.20117 -2278.28174 -17347.5273 22552.998 10170.7578 17147.3926);
    class bCSphere AreaSphere = <00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42>;
    bool UseBox = True;
    class bTObjArray<class bCString> PropertyNameList = [
    "mus_berserker"

    It's far from perfect, the music area clips outside of the city gates in some places but still an improvement nonetheless. I think the obvious limitation of this system is the fact that you try to use spherical shapes to define 3D spaces which means that you can't really confine triangular shapes and areas in game to perfectly match the music area.

    There are certain ways to improve this: a) you could start messing about with euler angles to have more control over your ellipsoids as using the basic 1 0 0 0 0 1 0 0 0 0 1 0 vector means that everything is aligned in parallel to the X & Y axis.

    Other method is to create more, smaller music zones which could help you to create more refined shapes.

    What I basically did atm is slapping one massive ellipse over the entire city.

    But you could create 2 smaller music areas and rotate them to fit the city layout, something closer to this: https://imgur.com/a/yh8BFQ7
    Kunzzi ist offline

  10. #10 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.157
    Great! (It's a little bit funny that you were the first to notice this music zones "mismatch", 4 years after release.)

    Here's a graphical "representation" (haha) of the vanilla music zones of ABE (was too lazy using math for AreaBox rectangles so chose circles at position [center] and "radius").
    Since my monitor has changed (different screen solution) the radius of circles is estimated (maybe to small?).
    Spoiler:(zum lesen bitte Text markieren)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (04.12.2021 um 22:45 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •