change groundcover via script

There are no stupid questions, just stupid answers.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 8
74 posts Page 2 of 8
JeffR
Steering Committee
Steering Committee
Posts: 755
Joined: Tue Feb 03, 2015 9:49 pm
 
by JeffR » Mon Nov 21, 2016 6:25 pm
Can you clarify the difficulty you had with getting it working? Changing the painting on the terrain SHOULD(the most dangerous of words, haha) have gotten it to locally update the distributed ground cover, so if it didn't, we can try and dial in on where it's going weird.

Did you get the painting part to work? If so, is the ground cover not updating when you do it?
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Tue Dec 06, 2016 12:03 pm
Hi,

sorry for the delay!

but the problem is, that i dont have that much knowledge to change it with c++.
So i need to make it with the standard torque script - but i dont know how to change the texture from the terrain at live time.

So it would be nice if you could help me :)

Thanks a lot and have a nice day!
Greetings Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Sat Feb 25, 2017 12:45 pm
Hello Friends,

i looked for a way to get this with the groundcover http://docs.garagegames.com/torque-3d/reference/classGroundCover.html class. But i dont know how to use it correctly or how i create the object - can you help me please?

Thank you very much!


greetings
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
  by subabrain » Sat Feb 25, 2017 9:56 pm
hi,

now i got it -> it should look like this:

Code: Select all


function set_grass() {
   
   new GroundCover() {   
   
   Material = "grass3";
      radius = "200";
      dissolveRadius = "50";
      reflectScale = "0.25";
      gridSize = "7";
      zOffset = "0";
      seed = "1";
      maxElements = "900000";
      maxBillboardTiltAngle = "90";
      shapeCullRadius = "75";
      shapesCastShadows = "1";
      billboardUVs[0] = "0 0 1 1";
      billboardUVs[1] = "0 0 1 1";
      billboardUVs[2] = "0 0 1 1";
      billboardUVs[3] = "0 0 1 1";
      billboardUVs[4] = "0 0 1 1";
      billboardUVs[5] = "0 0 1 1";
      billboardUVs[6] = "0 0 1 1";
      billboardUVs[7] = "0 0 1 1";
      shapeFilename[0] = "art/shapes/groundCover/Grass.dds";
      invertLayer[0] = "0";
      invertLayer[1] = "0";
      invertLayer[2] = "0";
      invertLayer[3] = "0";
      invertLayer[4] = "0";
      invertLayer[5] = "0";
      invertLayer[6] = "0";
      invertLayer[7] = "0";
      probability[0] = "1";
      probability[1] = "0";
      probability[2] = "0";
      probability[3] = "0";
      probability[4] = "0";
      probability[5] = "0";
      probability[6] = "0";
      probability[7] = "0";
      sizeMin[0] = "0.1";
      sizeMin[1] = "0.1";
      sizeMin[2] = "1";
      sizeMin[3] = "1";
      sizeMin[4] = "1";
      sizeMin[5] = "1";
      sizeMin[6] = "1";
      sizeMin[7] = "1";
      sizeMax[0] = "0.5";
      sizeMax[1] = "0.5";
      sizeMax[2] = "1";
      sizeMax[3] = "1";
      sizeMax[4] = "1";
      sizeMax[5] = "1";
      sizeMax[6] = "1";
      sizeMax[7] = "1";
      sizeExponent[0] = "1";
      sizeExponent[1] = "1";
      sizeExponent[2] = "1";
      sizeExponent[3] = "1";
      sizeExponent[4] = "1";
      sizeExponent[5] = "1";
      sizeExponent[6] = "1";
      sizeExponent[7] = "1";
      windScale[0] = "1";
      windScale[1] = "1";
      windScale[2] = "1";
      windScale[3] = "1";
      windScale[4] = "1";
      windScale[5] = "1";
      windScale[6] = "1";
      windScale[7] = "1";
      maxSlope[0] = "0";
      maxSlope[1] = "0";
      maxSlope[2] = "0";
      maxSlope[3] = "0";
      maxSlope[4] = "0";
      maxSlope[5] = "0";
      maxSlope[6] = "0";
      maxSlope[7] = "0";
      minElevation[0] = "-99999";
      minElevation[1] = "-99999";
      minElevation[2] = "-99999";
      minElevation[3] = "-99999";
      minElevation[4] = "-99999";
      minElevation[5] = "-99999";
      minElevation[6] = "-99999";
      minElevation[7] = "-99999";
      maxElevation[0] = "99999";
      maxElevation[1] = "99999";
      maxElevation[2] = "99999";
      maxElevation[3] = "99999";
      maxElevation[4] = "99999";
      maxElevation[5] = "99999";
      maxElevation[6] = "99999";
      maxElevation[7] = "99999";
      minClumpCount[0] = "1";
      minClumpCount[1] = "1";
      minClumpCount[2] = "1";
      minClumpCount[3] = "1";
      minClumpCount[4] = "1";
      minClumpCount[5] = "1";
      minClumpCount[6] = "1";
      minClumpCount[7] = "1";
      maxClumpCount[0] = "1";
      maxClumpCount[1] = "1";
      maxClumpCount[2] = "1";
      maxClumpCount[3] = "1";
      maxClumpCount[4] = "1";
      maxClumpCount[5] = "1";
      maxClumpCount[6] = "1";
      maxClumpCount[7] = "1";
      clumpExponent[0] = "1";
      clumpExponent[1] = "1";
      clumpExponent[2] = "1";
      clumpExponent[3] = "1";
      clumpExponent[4] = "1";
      clumpExponent[5] = "1";
      clumpExponent[6] = "1";
      clumpExponent[7] = "1";
      clumpRadius[0] = "1";
      clumpRadius[1] = "1";
      clumpRadius[2] = "1";
      clumpRadius[3] = "1";
      clumpRadius[4] = "1";
      clumpRadius[5] = "1";
      clumpRadius[6] = "1";
      clumpRadius[7] = "1";
      windDirection = "1 0";
      windGustLength = "20";
      windGustFrequency = "0.5";
      windGustStrength = "0.5";
      windTurbulenceFrequency = "1.2";
      windTurbulenceStrength = "0.125";
      lockFrustum = "0";
      renderCells = "0";
      noBillboards = "0";
      noShapes = "0";
      position = "354.572 -7.3566 465.621";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      canSave = "1";
      canSaveDynamicFields = "1";
   };

}



if now the function "set_grass" is called -> your groundcover will change 8-)


i will experiment now a bit :)


greetz
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Sun Feb 26, 2017 8:11 pm
Sorry - it was the right thing but its useless for my game :/

i need to change the terrain material at lifetime on a certain position ...

so i found this: http://torque-3d.readthedocs.io/en/late ... erial.html

but i dont know how i can use it with positions?

Thank you for answers ;)


Greetings
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Mon Jun 19, 2017 5:30 pm
hey there,

sorry for awake this thread - but its important for me ...

how can i use the "position" Member of GroundCover Object?

is there any way to do it with a workaround? If not ill try with areas ..

okay - would be nice if you know something about :)

Thanks a lot!

Greetings
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Mon Jun 19, 2017 8:00 pm
hi,

okay - i will do it with the layer property from the groundcover ;)

greetz
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Thu Jun 22, 2017 10:54 pm
Hi again,

okay - i have a plan now how to do it.

1. ill create triggers in the torque 3d world editor as big as the groundmaterials should be (first problem i need over 1000 trigger points).
2. then i add a groundtexture via terrain painter tool in each trigger square (second problem i need over 1000 terrainmaterials).
3. ill give them the layer 0 with full height groundcover.
4. now if i enter the trigger the layer 0 there will be another groundmaterial and so another groundcover.

okay - ill tested this - its working.

maybe you can give me some tips how it will be better? :roll:

okay - thanks alot!

Greetings
Robert
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Sat Jun 24, 2017 1:58 pm
hi,

okay - i have an other plan now.

Im trying to get the function, which is there for control the paint action from the terrain painter.
But i tried almost all functions and i dont know how the function is :(

Please help a last time :)

Greetings
Robert

PS: hopefully the error of your forum is not good for hackers...
subabrain
Posts: 126
Joined: Sat Aug 20, 2016 4:58 pm
 
by subabrain » Mon Jun 26, 2017 7:02 pm
hey guys,

i find out something good...

thats how you an set the brush (for painting etc.):

Code: Select all

ETerrainEditor.setBrushPos(getWord(%curPos, 0) + %x, getWord(%curPos, 1) + %y);


and get the brush:

Code: Select all

%curPos = ETerrainEditor.getBrushPos();


now i just need to "paint" on the brush position... - maybe you can help me?

Thank you very much!

Greetz
Robert
  • 1
  • 2
  • 3
  • 4
  • 5
  • 8
74 posts Page 2 of 8

Who is online

Users browsing this forum: No registered users and 2 guests