Animals config Ladeverhalten

Eure Foren für alle Diskussionen rund ums Thema Modding.
Schmölle
Posts: 2
Joined: Fri Jan 29, 2010 3:03 pm
Contact:

Animals config Ladeverhalten

Post by Schmölle »

Guten Tag,

ich habe aktuell Probleme damit eine benutzerdefinierte animals.xml richtig ans Laufen zu bekommen.
Hintergrund ist, dass ich gerne den Mod Enhanced Animal System auf der karte nutzen möchte, nur mit eigenen Werte für die verschiedenen Tiere.
Damit das richtig funktioniert bedarf es auch einer eigenen Datei für die Tierställe. Bsp. Kühe: animalsHusbandryCow.xml, usw.
Diese kann man dann in der animals.xml angeben, z.B. so:

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no" ?>

<animals doNotOverrideAnimals="true" > <!-- doNotOverrideAnimals ist vom EAS Mod -->
    <animal type="COW" statsBreeding="breedCowsCount" clusterClass="AnimalCluster" >
        <configFilename>maps/animals/cow/husbandryAnimalsCow.xml</configFilename>
Diese wiederum verweist auf Assets Dateien im EAS Mod. So zum Beispiel:

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no" ?>

<animalHusbandry>
    <animals milkRobotSoundGroup="milkRobot" milkRobotDoorSoundGroup="milkRobotDoor">
        <!-- Calf  -->
        <animal radius="0.3" handleThreats="false" threatAwarenessRadius="5" slowingDistance="0.5" allowMilkingPlace="false" headOffset="0.8" canEat="true" canDrink="true" canSleep="true" canEatDuringNight="true" canBeCleaned="true" interessDistance="10.0">
            <statesTimers idleMin="6666" idleMax="19998" sleepMin="120000" sleepMax="180000" restMin="12000" restMax="26666" grazeMin="26666" grazeMax="39999" chewMin="9000" chewMax="18000" eatMin="66665" eatMax="93331" wanderMin="5000" wanderMax="10000" />
            <assets filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/calf/calf.i3d" filenamePosed="../FS22_EnhancedAnimalSystem/animals/domesticated/cow/calf/calf_posed.i3d" animation="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/calf/animations/calfAdultAnimations.i3d" skeletonIndex="0" meshIndex="1" proxyIndex="2" shaderIndex="1|0" headIndex="0>0|1|0|0|0|0" >
                <texture multi="true" tileUIndex="0" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BLACK/WHITE -->
                <texture multi="true" tileUIndex="0" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BROWN/WHITE -->
                <texture multi="true" tileUIndex="1" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Angus BLACK -->
                <texture multi="true" tileUIndex="1" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Limousin BROWN-->
                <texture multi="true" tileUIndex="1" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
                <texture multi="true" tileUIndex="0" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
            </assets>
            <locomotion filename="calfLocomotion.xml"/>
            <audio eatSoundGroup="eat" yellSoundGroup="yellCalf" yellMinInterval="20000" yellMaxInterval="40000" yellTimerCrowdScale="0.2" />
        </animal>

        <!-- Heifer -->
        <animal radius="1.2" handleThreats="false" threatAwarenessRadius="5" slowingDistance="0.5" allowMilkingPlace="true" headOffset="0.8" canEat="true" canDrink="true" canSleep="true" canEatDuringNight="true" canBeCleaned="true" interessDistance="10.0">
            <statesTimers idleMin="6666" idleMax="19998" sleepMin="120000" sleepMax="180000" restMin="12000" restMax="26666" grazeMin="26666" grazeMax="39999" chewMin="9000" chewMax="18000" eatMin="66665" eatMax="93331" wanderMin="5000" wanderMax="10000" />
            <assets filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/heifer/heifer.i3d" filenamePosed="../FS22_EnhancedAnimalSystem/animals/domesticated/cow/heifer/heifer_posed.i3d" animation="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/heifer/animations/heiferAdultAnimations.i3d" skeletonIndex="0" meshIndex="1" proxyIndex="2" shaderIndex="1|0" headIndex="0>0|1|0|0|0|0" >
                <texture multi="true" tileUIndex="0" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BLACK/WHITE -->
                <texture multi="true" tileUIndex="0" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BROWN/WHITE -->
                <texture multi="true" tileUIndex="1" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Angus BLACK -->
                <texture multi="true" tileUIndex="1" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Limousin BROWN-->
                <texture multi="true" tileUIndex="1" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
                <texture multi="true" tileUIndex="0" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
            </assets>
            <locomotion filename="heiferLocomotion.xml"/>
            <audio eatSoundGroup="eat" yellSoundGroup="yell" yellMinInterval="8000" yellMaxInterval="20000" yellTimerCrowdScale="0.2" />
        </animal>

        <!-- Cow -->
        <animal radius="1.8" handleThreats="false" threatAwarenessRadius="5" slowingDistance="0.5" allowMilkingPlace="true" headOffset="0.8" canEat="true" canDrink="true" canSleep="true" canEatDuringNight="true" canBeCleaned="true" interessDistance="10.0">
            <statesTimers idleMin="6666" idleMax="19998" sleepMin="120000" sleepMax="180000" restMin="12000" restMax="26666" grazeMin="26666" grazeMax="39999" chewMin="9000" chewMax="18000" eatMin="66665" eatMax="93331" wanderMin="5000" wanderMax="10000" />
            <assets filename="$dataS/character/animals/domesticated/cow/holstein/cattleHolstein.i3d" filenamePosed="$dataS/character/animals/domesticated/cow/holstein/cattleHolstein_posed.i3d" animation="$dataS/character/animals/domesticated/cow/animations/adult/cattleAdultAnimations.i3d" skeletonIndex="0" meshIndex="1" proxyIndex="2" shaderIndex="1|0|0" headIndex="0>0|0|0|0|0|0|0|0" >
                <texture multi="true" tileUIndex="0" tileVIndex="1" numTilesU="2" numTilesV="2" mirrorV="false" /> <!-- Holstein BLACK/WHITE -->
                <texture multi="true" tileUIndex="1" tileVIndex="1" numTilesU="2" numTilesV="2" mirrorV="false" /> <!-- Holstein BLACK/WHITE -->
				<texture multi="true" tileUIndex="0" tileVIndex="0" numTilesU="2" numTilesV="2" mirrorV="false" /> <!-- Swiss -->
                <texture multi="true" tileUIndex="1" tileVIndex="0" numTilesU="2" numTilesV="2" mirrorV="false" /> <!-- Swiss -->
            </assets>
            <locomotion filename="$dataS/character/animals/domesticated/cow/locomotion.xml"/>
            <audio eatSoundGroup="eat" yellSoundGroup="yell" yellMinInterval="8000" yellMaxInterval="20000" yellTimerCrowdScale="0.2" />
        </animal>

        <!-- Bull -->
        <animal radius="1.2" handleThreats="false" threatAwarenessRadius="5" slowingDistance="0.5" allowMilkingPlace="true" headOffset="0.8" canEat="true" canDrink="true" canSleep="true" canEatDuringNight="true" canBeCleaned="true" interessDistance="10.0">
            <statesTimers idleMin="6666" idleMax="19998" sleepMin="120000" sleepMax="180000" restMin="12000" restMax="26666" grazeMin="26666" grazeMax="39999" chewMin="9000" chewMax="18000" eatMin="66665" eatMax="93331" wanderMin="5000" wanderMax="10000" />
            <assets filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull/bull.i3d" filenamePosed="../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull/bull_posed.i3d" animation="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull/animations/bullAdultAnimations.i3d" skeletonIndex="0" meshIndex="1" proxyIndex="2" shaderIndex="1|0" headIndex="0>0|1|0|0|0|0" >
                <texture multi="true" tileUIndex="0" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BLACK/WHITE -->
                <texture multi="true" tileUIndex="0" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Holstein BROWN/WHITE -->
                <texture multi="true" tileUIndex="1" tileVIndex="0" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Angus BLACK -->
                <texture multi="true" tileUIndex="1" tileVIndex="1" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Limousin BROWN-->
                <texture multi="true" tileUIndex="1" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
                <texture multi="true" tileUIndex="0" tileVIndex="2" numTilesU="2" numTilesV="4" mirrorV="false" /> <!-- Swiss -->
            </assets>
            <locomotion filename="bullLocomotion.xml"/>
            <audio eatSoundGroup="eat" yellSoundGroup="yellBull" yellMinInterval="8000" yellMaxInterval="20000" yellTimerCrowdScale="0.2" />
        </animal>

        <!-- Cow -->
        <animal radius="1.8" handleThreats="false" threatAwarenessRadius="5" slowingDistance="0.5" allowMilkingPlace="true" headOffset="0.8" canEat="true" canDrink="true" canSleep="true" canEatDuringNight="true" canBeCleaned="true" interessDistance="10.0">
            <statesTimers idleMin="6666" idleMax="19998" sleepMin="120000" sleepMax="180000" restMin="12000" restMax="26666" grazeMin="26666" grazeMax="39999" chewMin="9000" chewMax="18000" eatMin="66665" eatMax="93331" wanderMin="5000" wanderMax="10000" />
            <assets filename="$dataS/character/animals/domesticated/cow/angus/cattleAngus.i3d" filenamePosed="$dataS/character/animals/domesticated/cow/angus/cattleAngus_posed.i3d" animation="$dataS/character/animals/domesticated/cow/animations/adult/cattleAdultAnimations.i3d" skeletonIndex="0" meshIndex="1" proxyIndex="2" shaderIndex="1|0|0" headIndex="0>0|0|0|0|0|0|0|0" >
                <texture multi="true" tileUIndex="0" tileVIndex="0" numTilesU="2" numTilesV="1" mirrorV="false" /> <!-- Angus BLACK -->
                <texture multi="true" tileUIndex="1" tileVIndex="0" numTilesU="2" numTilesV="1" mirrorV="false" /> <!-- Limousin BROWN-->
            </assets>
            <locomotion filename="$dataS/character/animals/domesticated/cow/locomotion.xml"/>
            <audio eatSoundGroup="eat" yellSoundGroup="yell" yellMinInterval="8000" yellMaxInterval="20000" yellTimerCrowdScale="0.2" />
        </animal>
    </animals>
    <sound>
        <soundGroup name="walk" volume="1" indoorVolume="0.1" range="12" innerRange="0.4">
            <sample filename="$data/sounds/animals/pig/pig_step_grass_1.wav"/>
            <sample filename="$data/sounds/animals/pig/pig_step_grass_2.wav"/>
            <sample filename="$data/sounds/animals/pig/pig_step_grass_3.wav"/>
            <sample filename="$data/sounds/animals/pig/pig_step_grass_4.wav"/>
            <sample filename="$data/sounds/animals/pig/pig_step_grass_5.wav"/>
            <sample filename="$data/sounds/animals/pig/pig_step_grass_6.wav"/>
        </soundGroup>
        <soundGroup name="eat" volume="0.9" indoorVolume="0.03" range="20" innerRange="1">
            <sample filename="$data/sounds/animals/cow/cow_eat_loop.wav" />
        </soundGroup>
        <soundGroup name="milkRobot" volume="0.8" indoorVolume="0.1" range="40" innerRange="8">
            <sample filename="$data/sounds/tools/milkrobot/milkrobot_work_loop.wav" />
        </soundGroup>
        <soundGroup name="milkRobotDoor" volume="0.8" indoorVolume="0.1" range="40" innerRange="8">
            <sample filename="$data/sounds/tools/milkrobot/milkrobot_door_01.wav" />
        </soundGroup>
        <soundGroup name="yell" volume="2.0" indoorVolume="0.3" volumeRandMin="-0.1" volumeRandMax="0.1" range="50" innerRange="1" pitch="1" pitchRandMin="-0.1" pitchRandMax="0.1">
            <sample filename="$data/sounds/animals/cow/cow_01.wav" />
            <sample filename="$data/sounds/animals/cow/cow_02.wav" />
            <sample filename="$data/sounds/animals/cow/cow_03.wav" />
            <sample filename="$data/sounds/animals/cow/cow_04.wav" />
            <sample filename="$data/sounds/animals/cow/cow_05.wav" />
            <sample filename="$data/sounds/animals/cow/cow_06.wav" />
            <sample filename="$data/sounds/animals/cow/cow_07.wav" />
            <sample filename="$data/sounds/animals/cow/cow_08.wav" />
            <sample filename="$data/sounds/animals/cow/cow_09.wav" />
            <sample filename="$data/sounds/animals/cow/cow_10.wav" />
            <sample filename="$data/sounds/animals/cow/cow_11.wav" />
            <sample filename="$data/sounds/animals/cow/cow_12.wav" />
            <sample filename="$data/sounds/animals/cow/cow_13.wav" />
            <sample filename="$data/sounds/animals/cow/cow_14.wav" />
        </soundGroup>
        <soundGroup name="yellCalf" volume="2.0" indoorVolume="0.2" range="20" innerRange="1">
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/calfMoo1.wav" />
        </soundGroup>
        <soundGroup name="yellBull" volume="2.0" indoorVolume="0.3" volumeRandMin="-0.1" volumeRandMax="0.1" range="50" innerRange="1" pitch="1" pitchRandMin="-0.1" pitchRandMax="0.1">
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_01.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_02.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_03.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_04.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_05.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_06.wav" />
            <sample filename="../../../../FS22_EnhancedAnimalSystem/animals/domesticated/cow/bull_07.wav" />
        </soundGroup>
    </sound>
</animalHusbandry>
Das Problem daran ist nun, dass für Ställe versucht wird diese Datei (animalsHusbandryCow.xml) nicht aus der Karte sondern aus dem jeweiligen Ort zu laden, wo der Stall abgelegt ist. Bedeutet, dass für einen Stall aus einem Mod der folgende Pfad versucht wird aufzulösen.

Code: Select all

2023-08-15 10:32 Error: Failed to open xml file 'maps/animals/cow/husbandryAnimalsCow.xml'.
2023-08-15 10:32 Error: Can't load animal husbandry XML file 'maps/animals/cow/husbandryAnimalsCow.xml'.
2023-08-15 10:32   Error: Could not create animal husbandry!
2023-08-15 10:32 E:/Data/FS22_ModDir/FS22_Fed_Mods_Pack/models/cowBarnBigSNK.i3d (95.48 ms)
2023-08-15 10:32 E:/Data/FS22_ModDir/FS22_Fed_Mods_Pack/models/navi/navigationMesh.i3d (0.14 ms)
2023-08-15 10:32 Error: Failed to open xml file 'E:/Data/FS22_ModDir/FS22_Fed_Mods_Pack/maps/animals/cow/husbandryAnimalsCow.xml'.
2023-08-15 10:32 Error: Can't load animal husbandry XML file 'E:/Data/FS22_ModDir/FS22_Fed_Mods_Pack/maps/animals/cow/husbandryAnimalsCow.xml'.
2023-08-15 10:32   Error: Could not create animal husbandry!
Allerdings liegt diese Datei ja in der Karte und nicht in dem anderen Mod.. Für die Ställe von Giants selbst sucht er diese Datei natürlich nichtmal im Mod Ordner, sondern im Installationsverzeichnis vom LS.
Die Möglichkeit einer Variable funktioniert hier auch nicht:

Code: Select all

<configFilename>$moddir$FS22_MY_MAP/maps/animals/cow/husbandryAnimalsCow.xml</configFilename>
Wie ist hier die gewünschte Art und Weise eigene Konfigurationsdateien zu verlinken, sodass diese im Spiel auch funktionieren?

Zusätzliche habe ich versucht über einen weiteren externen Mod - Extended Filenames - diese Datei geladen zu bekommen.
Jetzt wird es allerdings interessant:
Ich habe damit es geschafft, dass die Tiere richtig geladen werden mittels:

Code: Select all

<configFilename>$FS22_MY_MAP$maps/animals/cow/husbandryAnimalsCow.xml</configFilename>
Allerdings hat der Test auf einem anderen Rechner mit den gleichen Mods und der selben Spielversion nicht funktioniert.
Da konnten die assets aus der husbandryAnimalsCow.xml nicht geladen werden..

Kann es sein, dass es hier eventuell einen Bug gibt? Wie das Spiel den Pfad von <configFilename/> ausliest scheint anders zu sein wie an anderen Stellen, wo man das über ein Attribut angeben kann: <tag fileName="path/to/file.xml" />
log.txt
Versionsinformationen
(6.12 KiB) Downloaded 48 times
Schmölle
Posts: 2
Joined: Fri Jan 29, 2010 3:03 pm
Contact:

Re: Animals config Ladeverhalten

Post by Schmölle »

Der einzige (bewusste) Unterschied zwischen den beiden Installationen war einmal die reguläre LS Version von Giants direkt und einmal die Steam Version. Allerdings gehe ich einfach mal davon aus, dass das nicht der Grund sein kann.
Post Reply