Custom Attacher erstellen

Eure Foren für alle Diskussionen rund ums Thema Modding.
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Custom Attacher erstellen

Post by Kevin_J_Barton »

Hallo zusammen,
ich arbeite nun schon seit 2013 an einem Mod, der es noch nie ins Spiel geschafft hat. Ich finde langsam wird es Zeit. Es lief auch soweit ganz gut, obwohl einige Dinge in 22 schon sehr anders sind als in 17, als ich das letzte mal gemoddet habe. Aber nun bin ich mit meinem Latein am Ende und benötige Hilfe zu einem eigenen Attacher. Zur Erläuterung erstmal ein Bild:

Image

Also mein kleiner Einachsschlepper funktioniert soweit einwandfrei und fehlerfrei. Aber da er alleine keinen Sinn macht, hat er natürlich ein paar Geräte. Hier im Bild einen Pflug. Nun dachte ich eigentlich das das so ziemlich das simpelste Gerät sein sollte, aber falsch gedacht. In 2015 hat er damals noch funktioniert.
Das Problem ist zunächst einmal der Attacher. Der muss ja eigentlich ein neuer Attacher-Typ sein, weil der Holder ja nix anderes ankuppeln können sollte, als seine eigenen Geräte, und die Geräte ebenfalls nicht an andere Schlepper, außer dem Holder. Dazu hatte ich früher mal ein LUA-Script um den zu erstellen. Das funktioniert leider nicht mehr. Allerdings habe ich auch keine Ahnung von LUA und kann das Script nicht anpassen. So sah das damals aus:

Code: Select all


-- Spezialisation for Holder ED II
-- Script by Kevin J Barton
-- © 06.02.2015

HolderEDII = {};

function HolderEDII.prerequisitesPresent(specializations)
    AttacherJoints.registerJointType("HolderATT");
    print("register joint type: HolderATT");
    return true;
end

function HolderEDII:load(xmlFile)
end;

function HolderEDII:delete()
end;

function HolderEDII:readStream(streamId, connection)
end;

function HolderEDII:writeStream(streamId, connection)
end;

function HolderEDII:mouseEvent(posX, posY, isDown, isUp, button)

end;

function HolderEDII:keyEvent(unicode, sym, modifier, isDown)

end;

function HolderEDII:update(dt)

end;

function HolderEDII:onAttach(attacherVehicle)

end;

function HolderEDII:onDetach()

end;

function HolderEDII:draw()

end;

function HolderEDII:validateAttacherJoint(HolderATT, jointDesc, dt)
    return true,
end;
Ich habe mir sagen lassen, das man das auf

AttacherJoints.registerJointType("HolderATT");

reduzieren könne, aber dann behandelt das Spiel den Attacher leider vollkommen falsch. Als wäre es eine normale 3-punkt-aufhängung. Also wenn ich den Pflug senken will, rotiert er über den Kopplungspunkt, was nicht erwünscht ist. Der Attacher muss vollkommen starr sein. Der Pflug senkt sich durch eine Kurbel an seinem Träger. Und das würde ich gerne auch so haben.

Ich hoffe ihr versteht was ich meine.

Vielen Dank schonmal fürs Lesen
Gruß Kevin
goodN8JohnBoy
Posts: 1454
Joined: Wed Dec 01, 2021 6:51 pm

Re: Custom Attacher erstellen

Post by goodN8JohnBoy »

Ja - es reicht die Zeile
AttacherJoints.registerJointType(name)

Das Verhalten des Attachers musst du dann in der jew. XML festlegen durch die <attacherJoint> Attribute.
Als Ausgangsbasis nimmst du einen Attacher von Radlader, Frontlader oä.
Sämtliche Attacher Attribute findest du in der gameSource/dataS/scripts/vehicles/specializations/AttacherJoints.lua in 'registerAttacherJointXMLPaths'
User avatar
da-hoffi
Posts: 519
Joined: Fri Aug 15, 2014 8:47 am
Contact:

Re: Custom Attacher erstellen

Post by da-hoffi »

Warum so kompliziert?

Man braucht nur folgendes in der modDesc

<jointTypes>
<jointType name="DEIN_NEUER_JOINTTYPE_NAME"/>
</jointTypes>
goodN8JohnBoy
Posts: 1454
Joined: Wed Dec 01, 2021 6:51 pm

Re: Custom Attacher erstellen

Post by goodN8JohnBoy »

Geht wohl auch. Aber da müsste es dann heissen
<jointType name="JOINTTYPE_{name}"/>
gemäss AttacherJoints.lua

Code: Select all

function AttacherJoints.registerJointType(name)
    local key = "JOINTTYPE_"..string.upper(name)
    if AttacherJoints[key] == nil then
        AttacherJoints.NUM_JOINTTYPES = AttacherJoints.NUM_JOINTTYPES+1
        AttacherJoints[key] = AttacherJoints.NUM_JOINTTYPES
        AttacherJoints.jointTypeNameToInt[name] = AttacherJoints.NUM_JOINTTYPES
    end
end
Bleibt letztlich Geschmackssache, was man anwendet. ;)
User avatar
joker301069
Posts: 238
Joined: Thu Mar 05, 2015 5:35 pm
Contact:

Re: Custom Attacher erstellen

Post by joker301069 »

Na Hoffi hat schon Recht warum und wofür? und so ist der Mod dann auch Konsolentauglich was er bei der Lua Variante nicht ist.
goodN8JohnBoy
Posts: 1454
Joined: Wed Dec 01, 2021 6:51 pm

Re: Custom Attacher erstellen

Post by goodN8JohnBoy »

Ganz einfach: will ich den Mod evtl. veröffentlichen? oder nur für mich privat?
Im 1. Fall muss ich natürlich Multiplay- oder Konsolentauglichkeit berücksichtigen.
Im 2. Fall ist mir das egal. Je einfacher und kürzer, desto besser. ;)
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: Custom Attacher erstellen

Post by Kevin_J_Barton »

Danke euch schon mal, das funktioniert jetzt wie gewünscht.
Als Attribut reichte da schon hardattach="true"

Wieder einen Schritt weiter, man sieht sich beim nächsten Problem :P
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: Custom Attacher erstellen

Post by Kevin_J_Barton »

Ok war dann doch nur ein kleiner Schritt
da-hoffi wrote: Tue Mar 22, 2022 11:41 am Warum so kompliziert?

Man braucht nur folgendes in der modDesc

<jointTypes>
<jointType name="DEIN_NEUER_JOINTTYPE_NAME"/>
</jointTypes>
ich hab das so in die Moddesc eingefügt und der Attacher funktioniert, wie gesagt. Allerdings nicht ohne Fehler:

Missing schema overlay attacherJoint 'vehicle.attacherJoints.attacherJoint(0)'!

da bin ich wieder total ratlos, weil ich die overlays ja difinitiv drin habe.

modDesc

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<modDesc descVersion="63">
    <author>Kevin_J_Barton</author>
    <version>0.1.0.0</version>
     <title>
        <en>Holder ED II</en>
        <de>Holder ED II</de>
    </title>
    <description>
		<en>The single-axe-tractor for small farms</en>
		<de>Der Einachsschlepper für kleine Hoefe</de>
    </description>
    <iconFilename>textures/icon_Holder_EDII.dds</iconFilename>
    <multiplayer supported="true"/>
	
	<l10n filenamePrefix="translations/l10n"/>

	<brands>
        <brand name="KJB" title="Kevin J Barton" image="textures/brand_kjb.dds"/>
    </brands>
	<!--axisIcons>
		<icon name="WHEELBARROW_UNLOAD_ROTATION" filename="wheelbarrow_rotate.png"/>
	</axisIcons-->
    <!--extraSourceFiles>
        <sourceFile filename="scripts/HolderATT2.lua" />
    </extraSourceFiles-->
	
	<jointTypes>
		<jointType name="HolderATT"/>
	</jointTypes>
	
	<vehicleSchemaOverlays filename="vehicleSchemas/vehicleSchemas.dds" imageSize="256 256">
		<overlay name="HOLDER" 		uvs="0px 14px 64px 50px" 	size="26px 20px"/>
		<overlay name="PLOW" 		uvs="0px 96px 32px 32px" 	size="13px 13px"/>
		<overlay name="EGGE" 		uvs="0px 96px 32px 32px" 	size="13px 13px"/>
		<overlay name="HOLDERATT" 	uvs="0px 96px 32px 32px" 	size="13px 13px"/>
	</vehicleSchemaOverlays>
	
	
	<vehicleTypes>
		<type name="pushableWheelBarrow" parent="baseDrivable" filename="$dataS/scripts/vehicles/Vehicle.lua">
			<!--specialization name="fillVolume" /-->
			<!--specialization name="dischargeable" /-->
			<specialization name="turnOnVehicle" />
			<specialization name="foldable" />
			<!--specialization name="animatedVehicle" /-->
			<specialization name="cylinderedFoldable" />
			<!--specialization name="bunkerSiloInteractor" /-->
			<!--specialization name="shovel" /-->
			<specialization name="groundReference" />
			<specialization name="workArea" />
			<specialization name="testAreas" />
			<specialization name="pushHandTool" />

		</type>
		<type name="plow" parent="baseGroundTool" filename="$dataS/scripts/vehicles/Vehicle.lua">
       		<specialization name="plow" />

    	</type>
		<type name="cultivator" parent="baseGroundTool" filename="$dataS/scripts/vehicles/Vehicle.lua">
			<specialization name="cultivator" />

		</type>
	</vehicleTypes>
	
	<storeItems>
        <storeItem xmlFilename="Holder_EDII.xml"/>
		<storeItem xmlFilename="holder_plow.xml"/>
		<storeItem xmlFilename="holder_egge.xml"/>
    </storeItems>
</modDesc>
Schlepper.xml

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<vehicle type="pushableWheelBarrow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../shared/xml/schema/vehicle.xsd">
    <storeData>
        <name>$l10n_shopItem_holder-single-axe-tractor</name>
        <specs>
			<power>10</power>
            <maxSpeed>10</maxSpeed>
        </specs>
        <functions>
            <function>$l10n_function_tractor</function>
        </functions>
        <image>textures/store.dds</image>
        <price>35</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
		<brand>KJB</brand>
        <category>tractorsS</category>
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_holder</typeDesc>
        <filename>Holder_V2_classic.i3d</filename>
		<sounds filename="sounds/Holder_sound.xml"/>
		<supportsRadio>false</supportsRadio>
		<canBeReset>true</canBeReset>
        <size width="1" length="2" lengthOffset="0"/>
        <components>
			<component centerOfMass="0 0.46 0.383" solverIterationCount="10" mass="500" />
            <!-- <component centerOfMass="0 0.378 0.175" solverIterationCount="10" mass="50" /> -->
        </components>
        <schemaOverlay attacherJointPosition="0 0" name="HOLDER"/>
		<mapHotspot type="TRACTOR" />
    </base>

    <wheels>
        <wheelConfigurations>
            <!--wheelConfiguration>
                <wheels autoRotateBackSpeed="10.0" speedDependentRotateBack="false">
                    <wheel hasParticles="true" hasTireTracks="true">
                        <physics rotSpeed="1" restLoad="0.6" repr="r_wheel"  showSteeringAngle="false" radius="0.3" width="0.3" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
					<wheel hasParticles="true" hasTireTracks="true">
                        <physics rotSpeed="1" restLoad="0.6" repr="l_wheel"  showSteeringAngle="false" radius="0.3" width="0.3" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
					
                    <wheel hasParticles="false" hasTireTracks="false">
                        <physics tipOcclusionAreaGroupId="1" rotSpeed="1" restLoad="0.6" repr="r_wheel_2"  showSteeringAngle="false"  radius="0.3" width="0.27" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
                    <wheel hasParticles="false" hasTireTracks="false">
                        <physics tipOcclusionAreaGroupId="1" rotSpeed="1" restLoad="0.6" repr="l_wheel_2"  showSteeringAngle="false"  radius="0.3" width="0.27" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
                </wheels>
            </wheelConfiguration-->
			<wheelConfiguration name="$l10n_configuration_valueDefault" price="0" brand="KJB" saveId="KJB_DEFAULT">
                <wheels autoRotateBackSpeed="2.2">
                    <wheel filename="holder_wheels.xml"  isLeft="true" hasTireTracks="true" hasParticles="true" >
                        <physics rotSpeed="0" restLoad="0.1" repr="l_wheel" useReprDirection="true" forcePointRatio="0.3" initialCompression="10" suspTravel="0.15" spring="8" damper="20" showSteeringAngle="false"/>
                        <outerRim filename="-"/>
                    </wheel>
                    <wheel filename="holder_wheels.xml"  isLeft="false" hasTireTracks="true" hasParticles="true">
                        <physics rotSpeed="0" restLoad="0.1" repr="r_wheel" useReprDirection="true" forcePointRatio="0.3" initialCompression="10" suspTravel="0.15" spring="8" damper="20" showSteeringAngle="false"/>
                        <outerRim filename="-"/>
                    </wheel>
					<wheel hasParticles="false" hasTireTracks="false">
                        <physics tipOcclusionAreaGroupId="1" rotSpeed="1" restLoad="0.6" repr="r_wheel_2"  showSteeringAngle="false"  radius="0.3" width="0.27" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
                    <wheel hasParticles="false" hasTireTracks="false">
                        <physics tipOcclusionAreaGroupId="1" rotSpeed="1" restLoad="0.6" repr="l_wheel_2"  showSteeringAngle="false"  radius="0.3" width="0.27" forcePointRatio="0.5" initialCompression="25" suspTravel="0.09" spring="20" damper="3" frictionScale="2.5" mass="0.01"/>
                        <tire tireTrackAtlasIndex="4" />
                    </wheel>
                </wheels>
                <objectChange node="wheels_tensionBeltMesh" scaleActive="0.9 0.85 0.92"/>
            </wheelConfiguration>
			<wheelConfiguration name="$l10n_configuration_valueSpikedRoller" price="200" brand="LIZARD" saveId="LIZARD_DEFAULT">
                <wheels baseConfig="KJB_DEFAULT">
                    <wheel filename="$data/shared/wheels/tires/aebi/spikes/300_R26.xml">
                        <physics widthOffset="0.15" maxWheelSink="0.02"/>
                        <outerRim filename="-"/>
                    </wheel>
                    <wheel filename="$data/shared/wheels/tires/aebi/spikes/300_R26.xml">
                        <physics widthOffset="0.15" maxWheelSink="0.02"/>
                        <outerRim filename="-"/>
                    </wheel>
					<wheel/>
                    <wheel/>
                </wheels>
                <objectChange node="wheels_tensionBeltMesh" scaleActive="1.25 1 1"/>
            </wheelConfiguration>
			<wheelConfiguration name="$l10n_configuration_valueSpikedRollerBroad" price="300" brand="LIZARD" saveId="LIZARD_BROAD">
                <wheels baseConfig="KJB_DEFAULT">
                    <wheel filename="$data/shared/wheels/tires/aebi/spikes/450_R26.xml">
                        <physics widthOffset="0.225" maxWheelSink="0.02"/>
                        <outerRim filename="-"/>
                    </wheel>
                    <wheel filename="$data/shared/wheels/tires/aebi/spikes/450_R26.xml">
                        <physics widthOffset="0.225" maxWheelSink="0.02"/>
                        <outerRim filename="-"/>
                    </wheel>
					<wheel/>
               		<wheel/>
                </wheels>
                <objectChange node="wheels_tensionBeltMesh" scaleActive="1.55 1 1"/>
            </wheelConfiguration>
        </wheelConfigurations>

        <ackermannSteeringConfigurations>
            <ackermannSteering rotSpeed="70" rotMax="20" rotCenter="0 0"/>
        </ackermannSteeringConfigurations>
    </wheels>
	

	<attacherJoints>
    	<attacherJoint node="HolderATT" jointType="HolderATT" hardattach="true"/>
		<schema position="1 0" rotation="0" invertX="false" />
    </attacherJoints>


	<enterable enterText="$l10n_enterText_wheelBarrow">
        <enterReferenceNode node="enterReferenceNode" interactionRadius="2.0"/>
        <exitPoint node="enterReferenceNode"/>
		<nicknameRenderNode node="playerNode" offset="0 2 0"/>
        
		<cameras>
            <camera node="outdoorCamera" rotatable="true" rotateNode="outdoorCameraTarget" limit="true" useWorldXZRotation="true" rotMinX="-1.4" rotMaxX="1" transMin="2" transMax="20">
                <raycastNode node="cameraRaycastNode1"/>
                <raycastNode node="cameraRaycastNode2"/>
            </camera>
            <camera node="indoorCamera" rotatable="true" limit="true" rotMinX="-1.1" rotMaxX="0.4" transMin="0" transMax="0" useMirror="true" isInside="false" />
        </cameras>

		<characterNode node="skeleton" animationNode="2" cameraMinDistance="1.75" spineRotation="270 0 90" useAnimation="true" />
		<enterAnimation name="enterAnimation"/>
    </enterable>
	
	<lights>
        <states>
            <state lightTypes="0" />
        </states>

        <realLights>
			<low>
                <light node="frontLightLow"     lightTypes="0" />
			</low>
			<high>
			    <light node="frontLight"     lightTypes="0" />
				<turnLightLeft node="turn_l" />
                <turnLightRight node="turn_r" />
			</high>
		</realLights>

        <defaultLights>
            <defaultLight shaderNode="headlights" lightTypes="0"/>
        </defaultLights>


        <turnLights>
            <turnLightLeft shaderNode="blinker_l" />
			<turnLightLeft shaderNode="blinker_l_licht" />
            <turnLightRight shaderNode="blinker_r" />
			<turnLightRight shaderNode="blinker_r_licht" />
        </turnLights>
    </lights>

	<motorized alwaysTurnedOn="false" >
	
	    <consumerConfigurations>
            <consumerConfiguration>
                <consumer fillUnitIndex="1" usage="5.4" fillType="diesel" />  <!-- usage is per hour at max load and max rpm -->
            </consumerConfiguration>
        </consumerConfigurations>
		
        <differentialConfigurations>
            <differentialConfiguration>
                <differentials>
                    <differential torqueRatio="0.2" maxSpeedRatio="3.0" wheelIndex1="1" wheelIndex2="2"/>
                </differentials>
            </differentialConfiguration>
        </differentialConfigurations>
       	
		<motorConfigurations>
            <motorConfiguration hp="10">
                <motor torqueScale="0.077" minRpm="850" maxRpm="2200" maxForwardSpeed="9" maxBackwardSpeed="4.9" brakeForce="0.05" lowBrakeForceScale="0.1" accelerationLimit="1.6" startAnimationName="startAnimation">
                    <torque normRpm="0.45" torque="0.9"/>
                    <torque normRpm="0.5" torque="0.97"/>
                    <torque normRpm="0.59" torque="1"/>
                    <torque normRpm="0.72" torque="1"/>
                    <torque normRpm="0.86" torque="0.88"/>
                    <torque normRpm="1" torque="0.72"/>
                </motor>
                <transmission autoGearChangeTime="0.75" gearChangeTime="0.4" startGearThreshold="0.25" name="$l10n_info_transmission_manual">
                    <directionChange useGear="true" useGroup="false" changeTime="0.5"/>
                    <groups type="DEFAULT" changeTime="0.5">
                        <group ratio="0.250" name="L" />
                        <group ratio="1.000" name="S" />
                    </groups>

                    <backwardGear maxSpeed="6"/>
                    <forwardGear maxSpeed="4" />
                    <forwardGear maxSpeed="6" />
                    <forwardGear maxSpeed="10" />
                </transmission>
            </motorConfiguration>
        </motorConfigurations>
		
		<gearLevers>
            <gearLever node="schaltung" centerAxis="3" changeTime="0.3" handsOnDelay="0.25">
                <state gear="-1"  zRot="30" />
                <state gear="0"  zRot="0"  />
                <state gear="1"  zRot="-30" />
                <state gear="2"  zRot="-60" />
                <state gear="3"  zRot="-90" />
            </gearLever>
        </gearLevers>
		
		<exhaustEffects>
            <exhaustEffect node="exhaust" filename="$data/effects/exhaust/exhaust.i3d" minRpmColor="0.0 0.0 0.0 2" maxRpmColor="0.0 0.0 0.0 9" minRpmScale="0.05" maxRpmScale="0.5" />
        </exhaustEffects>
		
		<motorStartDuration>4000</motorStartDuration>

        <animationNodes>
            <animationNode node="vent" rotAxis="3" rotSpeed="1200" turnOnFadeTime="4" turnOffFadeTime="3"/>
        </animationNodes>

		
    </motorized>

	<pushHandTool>
        <raycast node1="raycast01" node2="raycast02" playerNode="playerNode"/>
        <wheels front="3 4" back="1 2"/>

        <ikChains>
            <target ikChain="rightArm"  targetNode="playerRighthandTarget" poseId="wideFingers"/>
            <target ikChain="leftArm"   targetNode="playerLefthandTarget" poseId="wideFingers"/>
        </ikChains>

        <customChainLimits>
            <customChainLimit chainId="leftArm" nodeIndex="1"  minRx="-40" maxRx="40" minRy="-130" maxRy="40" minRz="-70" maxRz="-30" localLimits="true"/>
            <customChainLimit chainId="leftArm" nodeIndex="2" minRx="-25" maxRx="25" minRy="-144" maxRy="3" minRz="0" maxRz="0" localLimits="true" />

            <customChainLimit chainId="rightArm" nodeIndex="1" minRx="-40" maxRx="40" minRy="-130" maxRy="40" minRz="-70" maxRz="-30" localLimits="true"/>
            <customChainLimit chainId="rightArm" nodeIndex="2" minRx="-25" maxRx="25" minRy="-144" maxRy="3" minRz="0" maxRz="0" localLimits="true"/>
        </customChainLimits>
		
		<characterTargetNodeModifier node="playerRightHandTarget" transitionTime="0.3">
        	<state node="playerRighthandTargetOn" referenceNode="hebel1_2" />
		</characterTargetNodeModifier>

        <playerConditionalAnimation>
            <item id="idle" entryTransitionDuration="0.25" exitTransitionDuration="0.25" >
                <clips>
                    <clip clipName="idleSource" />
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="absSmoothedForwardVelocity" lower="0.2" />
                    </conditionGroup>
                </conditions>
            </item>
            <item id="walk" entryTransitionDuration="0.25" exitTransitionDuration="0.25" >
                <clips speedScaleType="distance" speedScaleParameter="2">
                    <clip clipName="walkFwdLoopSource" />
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="smoothedForwardVelocity" between="0.2, 4"/>
                    </conditionGroup>
                </conditions>
            </item>
            <item id="walkBack" entryTransitionDuration="0.5" exitTransitionDuration="0.25" >
                <clips speedScaleType="distance" speedScaleParameter="2">
                    <clip clipName="walkBwdLoopSource" />
                </clips>
                <conditions>
                    <conditionGroup>
                        <condition parameter="smoothedForwardVelocity" between="-3, -0.2" />
                    </conditionGroup>
                </conditions>
            </item>
        </playerConditionalAnimation>
    </pushHandTool>
	
    <ai supportsAIJobs="false" />

	<drivable>
        <sounds>
            <waterSplash template="WATER_SPLASH_01"/>
        </sounds>
        <cruiseControl enabled="false"/>
    </drivable>
	
	<foldable>
        <foldingConfigurations>
            <foldingConfiguration>
                <foldingParts startMoveDirection="1" posDirectionText="$l10n_action_hoodOPEN" negDirectionText="$l10n_action_hoodCLOSE" foldInputButton="LOWER_IMPLEMENT">
                    <foldingPart animationName="haubeAnimation"  speedScale="1" />
                </foldingParts>
            </foldingConfiguration>
        </foldingConfigurations>
    </foldable>
	
	<animations>
        <animation name="haubeAnimation">
            <part node="hood" startTime="0" endTime="0.5" startRot="95 0 0" endRot="0 0 0"/>
        </animation>
		<animation name="enterAnimation" >
            <part node="playerBlockCollision" startTime="0" endTime="0.1" startTrans="0 0.636 -0.339" endTrans="0 0.636 -1.632"/>
        </animation>
		<animation name="turnedAnimation" >
            <part node="hebel1_2" startTime="0" endTime="0.8" startRot="-20 0 0" endRot="0 0 0"/>
            <part node="hebel1_1" startTime="0" endTime="0.8" startRot="20 0 0" endRot="0 0 0"/>
			<part node="hebel1" startTime="0" endTime="0.8" startRot="26.819 0 0" endRot="25.239 0 0"/>
        </animation>
		<animation name="motoranim" looping="true">
            <part node="hood_grp" startTime="0" endTime="0.02" startRot="0 0 0" endRot="-0.245 0 0"/>
			<part node="hood_grp" startTime="0.02" endTime="0.04" startRot="-0.245 0 0" endRot="0 0 0"/>
			<part node="hood_grp" startTime="0.04" endTime="0.06" startRot="0 0 0" endRot="0.245 0 0"/>
			<part node="hood_grp" startTime="0.06" endTime="0.08" startRot="0.245 0 0" endRot="0 0 0"/>
			<part node="holder_body" startTime="0" endTime="0.02" startRot="0 0 0" endRot="0 0 0.245"/>
			<part node="holder_body" startTime="0.02" endTime="0.04" startRot="0 0 0.245" endRot="0 0 0"/>
			<part node="holder_body" startTime="0.04" endTime="0.06" startRot="0 0 0" endRot="0 0 -0.245"/>
			<part node="holder_body" startTime="0.06" endTime="0.08" startRot="0 0 -0.245" endRot="0 0 0"/>
			<part node="body" startTime="0" endTime="0.02" startRot="0 0 0" endRot="0.245 0 0"/>
			<part node="body" startTime="0.02" endTime="0.04" startRot="0.245 0 0" endRot="0 0 0"/>
			<part node="body" startTime="0.04" endTime="0.06" startRot="0 0 0" endRot="-0.245 0 0"/>
			<part node="body" startTime="0.06" endTime="0.08" startRot="-0.245 0 0" endRot="0 0 0"/>
        </animation>
		<animation name="startAnimation">
			<part node="kurbel_grp" startTime="0" endTime="0.001" startRot="24.434 -8.489 -4.447" endRot="-180 0 -180" startTrans="0.096 0.716 -0.399" endTrans="0 0.391 0.722"/>
            <part node="kurbel_grp" startTime="0.001" endTime="0.3" startRot="-180 0 -180" endRot="-180 0 0" startTrans="0 0.391 0.722" endTrans="0 0.391 0.722"/>
			<part node="kurbel_grp" startTime="0.3" endTime="0.301" startRot="-180 0 0" endRot="24.434 -8.489 -4.447" startTrans="0 0.391 0.722" endTrans="0.096 0.716 -0.399"/>
        </animation>
    </animations>
	
	<turnOnVehicle turnOffIfNotAllowed="true">
        <turnedAnimation name="turnedAnimation" turnOnSpeedScale="2"/>
		<turnedOnAnimation name="motoranim" speedScale="1" turnOnFadeTime="1" turnOffFadeTime="2"/>
    </turnOnVehicle>
	
	<fillUnit>
        <fillUnitConfigurations>
            <fillUnitConfiguration>
                <fillUnits>
                    <fillUnit unitTextOverride="$l10n_unit_literShort" showOnHud="false" showInShop="false" fillTypes="diesel" capacity="25" />
                </fillUnits>
            </fillUnitConfiguration>
        </fillUnitConfigurations>
    </fillUnit>
	
	<tensionBeltObject>
        <meshNodes>
            <meshNode node="wheels_tensionBeltMesh"/>
        </meshNodes>
    </tensionBeltObject>
	
	<foliageBending>
        <bendingNode minX="-0.5" maxX="0.5" minZ="-0.2" maxZ="0.8" yOffset="0.55" />
        <!--bendingNode minX="-1.2" maxX="1.2" minZ="-2.05" maxZ="-0.25" yOffset="0.55" /-->
    </foliageBending>	

    <wearable wearDuration="480" workMultiplier="5" fieldMultiplier="2"/>
    <washable dirtDuration="90" washDuration="1" workMultiplier="3" fieldMultiplier="2"/>

	<i3dMappings>
		<i3dMapping id="body_coli" node="0>" />
		<i3dMapping id="r_wheel_2" node="0>0|0" />
		<i3dMapping id="r_wheel" node="0>1|0" />
		<i3dMapping id="l_wheel_2" node="0>2|0" />
		<i3dMapping id="l_wheel" node="0>3|0" />
		<i3dMapping id="wheels_tensionBeltMesh" node="0>3|1" />
		<i3dMapping id="holder_body" node="0>4|0" />
		<i3dMapping id="hebel2" node="0>4|0|0" />
		<i3dMapping id="hebel1_2" node="0>4|0|1" />
		<i3dMapping id="hebel1_1" node="0>4|0|1|0" />
		<i3dMapping id="hebel1" node="0>4|0|1|0|0" />
		<i3dMapping id="handbremse" node="0>4|0|2" />
		<i3dMapping id="body" node="0>4|0|3" />
		<i3dMapping id="schaltung" node="0>4|0|4|0" />
		<i3dMapping id="hebel" node="0>4|0|5" />
		<i3dMapping id="kupplung" node="0>4|0|6" />
		<i3dMapping id="deckel" node="0>4|0|7" />
		<i3dMapping id="zuendung" node="0>4|0|8" />
		<i3dMapping id="gas_grp" node="0>4|0|9" />
		<i3dMapping id="gashebel" node="0>4|0|9|0" />
		<i3dMapping id="headlights" node="0>4|0|10" />
		<i3dMapping id="vent" node="0>4|1" />
		<i3dMapping id="hood" node="0>4|2|0" />
		<i3dMapping id="blinker_l" node="0>4|2|0|0" />
		<i3dMapping id="blinker_l_licht" node="0>4|2|0|2" />
		<i3dMapping id="blinker_r" node="0>4|2|0|1" />
		<i3dMapping id="blinker_r_licht" node="0>4|2|0|3" />
		<i3dMapping id="l_wheel_coli" node="0>4|3" />
		<i3dMapping id="r_wheel_coli" node="0>4|4" />
		<i3dMapping id="hood_grp" node="0>4|2" />
		
		<i3dMapping id="Blinklichter" node="0>4|5" />
		<i3dMapping id="blinker" node="0>4|5|0" />
		<i3dMapping id="frontlicht" node="0>4|6" />
		<i3dMapping id="licht" node="0>4|6|0" />
		<i3dMapping id="exhaust" node="0>4|7" />
		<i3dMapping id="attacher" node="0>4|8" />
		<i3dMapping id="playerhands" node="0>4|0|13" />
		<i3dMapping id="playerRighthandTarget" node="0>4|0|13|0" />
		<i3dMapping id="playerLefthandTarget" node="0>4|0|13|1" />
		<i3dMapping id="kurbel_grp" node="0>4|0|14" />
		<i3dMapping id="kurbel" node="0>4|0|14|0" />
		<i3dMapping id="enterReferenceNode" node="0>5" />
		<i3dMapping id="cameras" node="0>6" />
		<i3dMapping id="outdoorCameraTarget" node="0>6|0" />
		<i3dMapping id="outdoorCamera" node="0>6|0|0" />
		<i3dMapping id="indoorCamera" node="0>6|1" />
		<i3dMapping id="cameraRaycastNode1" node="0>6|2" />
		<i3dMapping id="cameraRaycastNode2" node="0>6|3" />
		<i3dMapping id="trafficCollisionTrigger" node="0>7" />
		<i3dMapping id="player" node="0>8" />
		<i3dMapping id="playerNode" node="0>8|0" />
		<i3dMapping id="skeleton" node="0>8|0|0" />
		<i3dMapping id="raycast01" node="0>8|1" />
		<i3dMapping id="raycast02" node="0>8|2" />
		<i3dMapping id="aiCollisionTrigger" node="0>9" />
		<i3dMapping id="realLights" node="0>4|0|11" />
		<i3dMapping id="frontLight" node="0>4|0|11|0" />
		<i3dMapping id="turnlights" node="0>4|0|12" />
		<i3dMapping id="turn_l" node="0>4|0|12|0" />
		<i3dMapping id="turn_r" node="0>4|0|12|1" />
		<i3dMapping id="frontLightLow" node="0>4|0|11|1" />	
		<i3dMapping id="headlight_lamp" node="0>4|0|10|1" />
		<i3dMapping id="playerBlockCollision" node="0>10" />	
		<i3dMapping id="playerRighthandTargetOn" node="0>4|0|1|1" />	
		<i3dMapping id="HolderATT" node="0>11" />
	</i3dMappings>
</vehicle>
egge.xml

Code: Select all

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<vehicle type="cultivator" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../shared/xml/schema/vehicle.xsd">
    <annotation>Kevin J Barton, All Rights Reserved.</annotation>

    <storeData>
        <name>HOLDER EGGE</name>
        <specs>
            <neededPower>9</neededPower>
            <workingWidth>1.6</workingWidth>
        </specs>
        <functions>
            <function>$l10n_function_cultivator</function>
        </functions>
        <image>textures/store_egge.dds</image>
        <price>100</price>
        <lifetime>600</lifetime>
        <rotation>0</rotation>
        <brand>KJB</brand>
        <category>cultivators</category>
        <shopFoldingState>1</shopFoldingState>
        <shopTranslationOffset>0 0 0</shopTranslationOffset>
        <shopRotationOffset>0 0.167 0</shopRotationOffset>
        <vertexBufferMemoryUsage>766976</vertexBufferMemoryUsage>
        <indexBufferMemoryUsage>118272</indexBufferMemoryUsage>
        <textureMemoryUsage>1179648</textureMemoryUsage>
        <instanceVertexBufferMemoryUsage>0</instanceVertexBufferMemoryUsage>
        <instanceIndexBufferMemoryUsage>0</instanceIndexBufferMemoryUsage>
        <audioMemoryUsage>0</audioMemoryUsage>
    </storeData>

    <base>
        <typeDesc>$l10n_typeDesc_cultivator</typeDesc>
        <filename>egge.i3d</filename>
        <size width="1.6" length="1.5" lengthOffset="0.1"/>
        <speedLimit value="10"/>
        <components>
            <component centerOfMass="0 0.4 -0.65" solverIterationCount="10" mass="50" />
        </components>
        <schemaOverlay attacherJointPosition="0 0" name="HOLDERATT" />
        <mapHotspot type="TOOL" />
    </base>

    <attachable>
        <inputAttacherJoints>
            <inputAttacherJoint node="attacherJoint" jointType="HolderATT" hardattach="true"/>
			<schema position="1 0" rotation="0" invertX="false" />
        </inputAttacherJoints>
        <support animationName="moveSupport"/>
        <brakeForce force="0.05"/>
		<lowerAnimation name="lowerAnimation"/>
    </attachable>

    <!--powerConsumer forceNode="eg39_main_component1" maxForce="10"/-->

    <groundReferenceNodes>
        <groundReferenceNode node="groundReferenceNode" forceFactor="1" threshold="0.1" depthNode="depthNode" chargeValue="1" />
    </groundReferenceNodes>

    <workAreas>
        <workArea type="cultivator" functionName="processCultivatorArea" needsSetIsTurnedOn="false">
            <area startNode="workAreaStart" widthNode="workAreaWidth" heightNode="workAreaHeight" />
            <groundReferenceNode index="1" />
            <onlyActiveWhenLowered value="true"/>
        </workArea>
    </workAreas>

    <workParticles>
        <effect workAreaIndex="1">
            <!--effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="rollerEffect01LinkNode">
                <motionPathEffect textureFilename="$data/vehicles/rabe/eg39/rollerEffect01Array.dds" numRows="10" rowLength="18" minFade="0.07" densityScale="0.35"/>
            </effectNode-->
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode01">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode02">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode03">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode04">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode05">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode06">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode07">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode08">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode09">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode10">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
            <!--effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode11">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode12">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode13">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode14">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode15">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode16">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode17">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode18">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode19">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode20">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode-->
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode21">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode22">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode23">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode24">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode25">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode26">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode27">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode28">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode29">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode30">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<!--effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode31">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode32">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode33">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode34">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode35">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode36">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode37">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode38">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode39">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode>
			<effectNode effectClass="CultivatorMotionPathEffect" effectType="CULTIVATOR" linkNode="sweepEffectLinkNode40">
                <motionPathEffect textureFilename="$data/effects/cultivator/arrays/sharedCultivatorSweepArray01.dds" numRows="10" rowLength="18" minFade="0.07" isCultivatorSweepEffect="true" />
            </effectNode-->
        </effect>
        <particle>
            <node node="smokeEmitter" refNodeIndex="1" particleType="SOIL_SMOKE"/>
        </particle>
    </workParticles>
	
	<foldable>
        <foldingConfigurations>
            <foldingConfiguration>
                <foldingParts startMoveDirection="1" turnOnFoldDirection="-1" loweringMinLimit="0" loweringMaxLimit="0">
                    <foldingPart animationName="folding" speedScale="1"/>
                </foldingParts>
            </foldingConfiguration>
        </foldingConfigurations>
    </foldable>

    <animations>
        <!--animation name="moveSupport">
            <part node="supportCol" startTime="0.0" endTime="0.1" startTrans="0.000 0.771 0.059" endTrans="0.000 0.181 0.059"/>

            <sound template="clackVar6" startTime="0.09" direction="-1" volumeScale="1" pitchScale="1" linkNode="attacherJoint"/>
        </animation-->
		<animation name="lowerAnimation">
            <part node="egge_m"  startTime="0" endTime="1" startTrans="0 0.379 -0.5" endTrans="0 0.32 -0.5" />
			<part node="collider_1"  startTime="0" endTime="1" startTrans="0 -0.313 0.5" endTrans="0 -0.245 0.5" />
			<part node="collider_2"  startTime="0" endTime="1" startTrans="-0.282 -0.164 0.431" endTrans="-0.282 -0.096 0.431" />
			<part node="collider_3"  startTime="0" endTime="1" startTrans="0.363 -0.164 0.385" endTrans="0.363 -0.096 0.385" />
			<part node="hoehenkurbel" startTime="0" endTime="1" startRot="0 0 0" endRot="0 1800 0" />
        </animation>
		<animation name="workSource">
            <part node="egge_m"  startTime="0.0" endTime="1.0" />
        </animation>
		<animation name="folding">
            <part node="egge_r" startTime="0" endTime="1" startRot="0 -4.148 -0.006" endRot="3.839 1.571 -112.232 " />
			<part node="egge_l" startTime="0" endTime="1" startRot="0 -4.148 -0.006" endRot="-3.839 1.571 112.232" />
        </animation>
    </animations>

	<!--lowerAnimationClip name="downSource" speed="1" rootNode="0>0|0"/>
	<workSourceClip name="workSource" speed="1" rootNode="0>0|0"/>
	<upSourceClip name"upSource" speed="1" rootNode="0>0|0"/>
	<driveSourceClip name"driveSource" speed="1" rootNode="0>0|0"/-->

    <cultivator useDeepMode="true">
        <sounds>
            <work template="DEFAULT_CULTIVATOR_WORK" linkNode="0>" />
        </sounds>
        <directionNode node="egge_main" />
        <onlyActiveWhenLowered value="true"/>
    </cultivator>

    <ai>
        <needsLowering value="true"/>
        <areaMarkers leftNode="aiMarkerLeft" rightNode="aiMarkerRight" backNode="aiMarkerBack"/>
        <collisionTrigger node="aiCollisionNode" width="1.6" height="1.5"/>
        <agentAttachment width="2.5" height="1.5" length="3" lengthOffset="0"/>
    </ai>

    <foliageBending>
        <bendingNode minX="-0.8" maxX="0.8" minZ="-1.4" maxZ="-0.5" yOffset="0.45" />
    </foliageBending>

    <!--baseMaterial>
        <material name="eg39_mat" baseNode="eg39_vis">
            <shaderParameter name="colorMat0" value="RABE_BLUE2"/>
        </material>
    </baseMaterial-->


    <wearable wearDuration="480" workMultiplier="5" fieldMultiplier="200"/>
    <washable dirtDuration="90" washDuration="1" workMultiplier="6" fieldMultiplier="200"/>

    <i3dMappings>
        <i3dMapping id="egge_main" node="0>" />
        <i3dMapping id="egge_body" node="0>0" />
        <i3dMapping id="egge_m" node="0>0|0" />
        <i3dMapping id="egge_r" node="0>0|0|0" />
        <i3dMapping id="collider_3" node="0>0|0|0|0" />
        <i3dMapping id="collider_1" node="0>0|0|1" />
        <i3dMapping id="egge_l" node="0>0|0|2" />
        <i3dMapping id="collider_2" node="0>0|0|2|0" />
        <i3dMapping id="hoehenkurbel" node="0>0|1" />
        <i3dMapping id="attacherJoint" node="0>1" />
        <i3dMapping id="topReferenceNode" node="0>2" />
        <i3dMapping id="workAreaStart" node="0>3|0" />
        <i3dMapping id="workAreaWidth" node="0>3|1" />
        <i3dMapping id="workAreaHeight" node="0>3|2" />
        <i3dMapping id="groundReferenceNode" node="0>3|3" />
        <i3dMapping id="depthNode" node="0>3|4" />
        <i3dMapping id="rollerEffect01LinkNode" node="0>4|0" />
        <i3dMapping id="sweepEffectLinkNode01" node="0>4|1" />
        <i3dMapping id="sweepEffectLinkNode02" node="0>4|2" />
        <i3dMapping id="sweepEffectLinkNode03" node="0>4|3" />
        <i3dMapping id="sweepEffectLinkNode04" node="0>4|4" />
        <i3dMapping id="sweepEffectLinkNode05" node="0>4|5" />
        <i3dMapping id="sweepEffectLinkNode06" node="0>4|6" />
        <i3dMapping id="sweepEffectLinkNode07" node="0>4|7" />
        <i3dMapping id="sweepEffectLinkNode08" node="0>4|8" />
        <i3dMapping id="sweepEffectLinkNode09" node="0>4|9" />
        <i3dMapping id="sweepEffectLinkNode10" node="0>4|10" />
        <i3dMapping id="sweepEffectLinkNode11" node="0>4|11" />
        <i3dMapping id="sweepEffectLinkNode12" node="0>4|12" />
        <i3dMapping id="sweepEffectLinkNode13" node="0>4|13" />
        <i3dMapping id="sweepEffectLinkNode14" node="0>4|14" />
        <i3dMapping id="sweepEffectLinkNode15" node="0>4|15" />
        <i3dMapping id="sweepEffectLinkNode16" node="0>4|16" />
        <i3dMapping id="sweepEffectLinkNode17" node="0>4|17" />
        <i3dMapping id="sweepEffectLinkNode18" node="0>4|18" />
        <i3dMapping id="sweepEffectLinkNode19" node="0>4|19" />
        <i3dMapping id="sweepEffectLinkNode20" node="0>4|20" />
        <i3dMapping id="sweepEffectLinkNode21" node="0>4|21" />
        <i3dMapping id="sweepEffectLinkNode22" node="0>4|22" />
        <i3dMapping id="sweepEffectLinkNode23" node="0>4|23" />
        <i3dMapping id="sweepEffectLinkNode24" node="0>4|24" />
        <i3dMapping id="sweepEffectLinkNode25" node="0>4|25" />
        <i3dMapping id="sweepEffectLinkNode26" node="0>4|26" />
        <i3dMapping id="sweepEffectLinkNode27" node="0>4|27" />
        <i3dMapping id="sweepEffectLinkNode28" node="0>4|28" />
        <i3dMapping id="sweepEffectLinkNode29" node="0>4|29" />
        <i3dMapping id="sweepEffectLinkNode30" node="0>4|30" />
        <i3dMapping id="sweepEffectLinkNode31" node="0>4|31" />
        <i3dMapping id="sweepEffectLinkNode32" node="0>4|32" />
        <i3dMapping id="sweepEffectLinkNode33" node="0>4|33" />
        <i3dMapping id="sweepEffectLinkNode34" node="0>4|34" />
        <i3dMapping id="sweepEffectLinkNode35" node="0>4|35" />
        <i3dMapping id="sweepEffectLinkNode36" node="0>4|36" />
        <i3dMapping id="sweepEffectLinkNode37" node="0>4|37" />
        <i3dMapping id="sweepEffectLinkNode38" node="0>4|38" />
        <i3dMapping id="sweepEffectLinkNode39" node="0>4|39" />
        <i3dMapping id="sweepEffectLinkNode40" node="0>4|40" />
        <i3dMapping id="smokeEmitter" node="0>4|41" />
        <i3dMapping id="aiMarkerLeft" node="0>5|0" />
        <i3dMapping id="aiMarkerRight" node="0>5|1" />
        <i3dMapping id="aiMarkerBack" node="0>5|2" />
        <i3dMapping id="aiCollisionNode" node="0>0|5|3" />
    </i3dMappings>
</vehicle>
User avatar
da-hoffi
Posts: 519
Joined: Fri Aug 15, 2014 8:47 am
Contact:

Re: Custom Attacher erstellen

Post by da-hoffi »

Du hast den Abschnitt <inputAttacherJoint/> geschlossen bevor der Teil mit <schema> kommt

Richtig wäre

<inputAttacherJoint node="attacherJoint" jointType="HolderATT" hardattach="true">
<schema position="1 0" rotation="0" invertX="false" />
</inputAttacherJoint>
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: Custom Attacher erstellen

Post by Kevin_J_Barton »

Jo, das wars, besten Dank.

Ärgert mich allerdings das ich das nicht selbst gesehen habe. Die Klammern mit inputAttacherJoint und inputAttacherJoints haben mich schon öfter in der Art veräppelt.
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: Custom Attacher erstellen

Post by Kevin_J_Barton »

Hallo mal wieder,
Ich mache das Thema nochmal auf, weil sich mein eigener Attacher nun erweitern muss.
Wie hier bisher beschrieben soll das Gerät ja fest angeschraubt sein. Allerdings gilt dies nur für den Pflug und den Grubber. Alle weiteren Geräte werden wie ein normaler Anhänger hinterhergezogen. Den normalen "trailer" attacher kann ich nicht benutzen, weil die Geräte dann nicht mehr funktionieren. Also die Sämaschine kann z.B. nicht gesenkt werden als Trailer, aber ohne eine Sämaschine abzusenken funktioniert sie nicht... oder doch?
Also wäre meine Idee einen zweiten custom attacher zu erstellen. Allerdings wird die Sämaschine dort dann auch starr angeklebt, hardattach hin oder her. Wie kann ich es machen das sie sich wie ein Anhänger bewegt?
Danke schon mal
Post Reply