Sezon.dev 7 Posted July 11, 2017 Hello, my name is sezon, I would like to point out a problem when I try to export my project to missions for ground builder. Effectively when importing the txt file with the positions of the buildings, one can see that the objects are all in the air with respect to the card. I enclose below screenshots of the project under Eden Editor and under Terrain Builder. Thank you very much. In Eden Editor In Terrain Builder Share this post Link to post Share on other sites
RoF 241 Posted July 12, 2017 You have to import in TB as file>import>objects then tick "advanced", try picking "absolute". And if that don't work, try picking Relative. Also just so you know, TB doesn't import rotation correct from Eden or X-cam, So if you rotate a object upside, it won't import like that! It only imports yew, not pitch or roll Share this post Link to post Share on other sites
Sezon.dev 7 Posted July 22, 2017 How to do it in case you need roll or other? Share this post Link to post Share on other sites
RoF 241 Posted July 22, 2017 10 minutes ago, Sezon.dev said: How to do it in case you need roll or other? Using Buldozer in Terrian Builder is the only way Share this post Link to post Share on other sites
Sezon.dev 7 Posted July 22, 2017 But xcam does it well (export with these parameters) why we could not adapt it to eden editor? Use buldozer this will take a long time ?? Share this post Link to post Share on other sites
RoF 241 Posted July 22, 2017 X-cam doesn't export pitch and roll either. Buldozer is easy to use once you learn it, plus you can change the terrain as you go. Share this post Link to post Share on other sites
Sezon.dev 7 Posted July 22, 2017 I can tell you that xcam keeps relative values and not just absolute values! Share this post Link to post Share on other sites
RoF 241 Posted July 22, 2017 Nether x-cam or eden, import pitch or roll correct into TB. I think the slope function in x-cam may "sometimes" work, if the model has land contact points. But I don't do modeling so can't be sure. Share this post Link to post Share on other sites
Cosmo_D41 117 Posted July 22, 2017 Right, pitch and roll dont work with XCam either. But the slope function is depending on the modell itself. After some time you get used to which models work with slope and which dont. (Same as walls or fences that adopt to the terrain-slopes) Share this post Link to post Share on other sites
Sezon.dev 7 Posted July 22, 2017 Okay, I think you do not make modding, and so I'll explain. An object has a ground contact from when the object itself to a geometry with a mass. All objects of arma 3 are made with a mass. So all can follow a slope. Xcam handles it very fat to a calculation. I do not understand why the plugin in eden does not integrate it ... So a lot I will do on xcam because it handles the position of the objects exactly as when editing. Share this post Link to post Share on other sites
RoF 241 Posted July 22, 2017 lol Think what you want, its your time your wasting 3 Share this post Link to post Share on other sites
Sezon.dev 7 Posted July 22, 2017 ////////////////////////////////// // X-Cam (Arma 3) Version 1.21 // Script by Silola // silola@freenet.de ////////////////////////////////// disableSerialization; private ["_gon","_c","_fn","_name","_string","_data","_pos","_dir","_check","_array","_mdata","_model","_new","_types","_tID","_scale","_pitch","_bank","_input","_i","_action","_se","_ctrlPosC","_ctrlPosD","_database","_d","_dGroup"]; _gon = true;_c = 0;_fn = 1;_string = "";_pos = [];_dir = 0;_check = "";_data = [];_array = [];_mdata = "";_model = "";_new = [];_types = [];_tID = [];_database = [];_d = 0;_dGroup = ""; _scale = "1.000000";_pitch = "0.000000";_bank = "0.000000";_i = 1;_action = true;_input = "";_se = true;_ctrlPosC = [];_ctrlPosD = []; if(count xCam_Hidden_Objects > 0) then { [7] call xCam_fFilterProject; } else { if(xCam_Project_Filter > 0) then { lbclear 4405;xCam_Project_Filter = 0;xCam_Filter_Type = [0,0];xCam_Filter_Pool = [];xCam_Filter_Area = []; [0] call xCam_fFilterProject; }; }; _name = xCam_Cur_Obj_Group call xCam_fCutName; {ctrlshow [_x, false];ctrlenable [_x, false]}foreach [1498,1507,1508,1509,1510,1511,1512,2028,1858,1859,2029]; ctrlshow [2750, true];ctrlenable [2750, true];xCam_Relative_Mode = 0; {ctrlshow [_x, true];ctrlenable [_x, true]}foreach [1499,1500,1501,1502,1503,1504,1505,1506,2027,1856,1857,2030,2031];{ctrlenable [_x, false]}foreach [1499,1500]; ctrlSetText[2027, " Create terrain builder file ..."]; ctrlSetText[1504, "Press [Ok] to start file export"]; {[_x,0,1] spawn xCam_fShowHideList} foreach [0,1,2,3,4]; _ctrlPosC = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1499));_ctrlPosD = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1500)); [1,_ctrlPosC] call xCam_fUIControl; sleep 0.2; {ctrlshow [_x, true];ctrlenable [_x, true]}foreach [1538,1539]; if(count xCam_Active_Projects > 1) then { [0,_ctrlPosC] call xCam_fUIControl; sleep 0.2; {ctrlshow [_x, true];ctrlenable [_x, true]}foreach [1530,1531]; }; xCam_Button_Action = 0;xCam_Preload_Mode = 0; waituntil{(xCam_Button_Action > 0)}; if(xCam_Button_Action == 1) then { if(count xCam_Active_Projects > 1) then { _ctrlPosC = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1499));_ctrlPosD = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1500)); [3,_ctrlPosC] call xCam_fUIControl; } else { _ctrlPosC = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1499));_ctrlPosD = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1500)); [4,_ctrlPosC] call xCam_fUIControl; }; 0 call xCam_fTurboCam;xCam_Button_Action = 0; {ctrlshow [_x, false];ctrlenable [_x, false]}foreach [1499,1500,1501,1502,1503,1504,1505,1506,2027,1856,1857,2030,2031]; if((xCam_Visual_Val select 6) < 0) then {{[_x,1,1] spawn xCam_fShowHideList} foreach [0,1,2,3,4]}; } else { if(xCam_Preload_Mode == 0) then { if((xCam_Edit_Values select 14) in ["default",""," "]) then {_input = format["%1_part_%2",_name,_fn]} else {_input = format["%1_part_%2\%3",(xCam_Edit_Values select 14),_fn,_name]}; _database = [xCam_Cur_Obj_Group]; } else { if((xCam_Edit_Values select 14) in ["default",""," "]) then {_input = format["%1_part_%2(%3 projects)",_name,_fn,count xCam_Active_Projects]} else {_input = format["%1\%2_part_%3_(%4 projects)",(xCam_Edit_Values select 14),_name,_fn,count xCam_Active_Projects]}; {_database set[(count _database),format["%1_%2_0",xCam_World,_x]]} foreach xCam_Active_Projects; }; xCam_Button_Action = 0;_string = (ctrlText 1504); if(true) then { if(xCam_Relative_Mode == 1) then {_se = false}; if(count xCam_Active_Projects > 1) then { _ctrlPosC = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1499));_ctrlPosD = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1500)); [3,_ctrlPosC] call xCam_fUIControl; } else { _ctrlPosC = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1499));_ctrlPosD = (ctrlPosition ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1500)); [4,_ctrlPosC] call xCam_fUIControl; }; {ctrlenable [_x, false]}foreach [1502,1503]; ctrlSetFocus ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1000); sleep 0.1; while{_d < count _database} do { _dGroup = (_database select _d); { if(!(format["%1",(_x getvariable "xCamObjData")] in ["<null>","any"])) then { if(!(format["%1",(_x getvariable "xCamCreated")] == "2")) then { if(_c > (xCam_Edit_Values select 21)) then { _action = true;_i = 1; _check = format["%1.txt",_input] call KK_fnc_makeFile; if(!(_check == "OK")) then { while{_action} do { _check = format["%1(%2).txt",_input,_i] call KK_fnc_makeFile; if(!(_check == "OK")) then {_i = _i + 1} else {_action = false}; if(_i > 100) then {_action = false;_gon = false;[87,1] spawn xCam_fMessageBox;hintc format["Output Error\n===========\nMaybe you have forgotten to copy the 'make_file.dll' into the Arma 3 installation directory."]}; }; }; _c = 0;_fn = _fn + 1; [] call KK_fnc_makeFile; if(xCam_Preload_Mode == 0) then { if((xCam_Edit_Values select 14) in ["default",""," "]) then {_input = format["%1_part_%2",_name,_fn]} else {_input = format["%1_part_%2\%3",(xCam_Edit_Values select 14),_fn,_name]}; _database = [xCam_Cur_Obj_Group]; } else { if((xCam_Edit_Values select 14) in ["default",""," "]) then {_input = format["%1_part_%2(%3 projects)",_name,_fn,count xCam_Active_Projects]} else {_input = format["%1\%2_part_%3_(%4 projects)",(xCam_Edit_Values select 14),_name,_fn,count xCam_Active_Projects]}; {_database set[(count _database),format["%1_%2_0",xCam_World,_x]]} foreach xCam_Active_Projects; }; }; if(_gon) then { _data = call compile (_x getvariable "xCamObjData"); if((xCam_Edit_Values select 27) == 0) then { _mdata = (_x getvariable "xCamModData"); _model = [_mdata] call xCam_fGetModel; } else { _model = [(_x getvariable "xCamModData")] call xCam_fCutModel; }; if(_se) then { _new = [((call compile (_data select 0)) select 0) + (xCam_Edit_Values select 11),((call compile (_data select 0)) select 1) + (xCam_Edit_Values select 12),((getposATL _x) select 2)]; _array = [(typeof _x),_new call KK_fPositionToString,(_data select 1),0]; _pos = [(_array select 1)] call xCam_fSplitPosition; } else { _new = [((call compile (_data select 0)) select 0) + (xCam_Edit_Values select 11),((call compile (_data select 0)) select 1) + (xCam_Edit_Values select 12),((getposASL _x) select 2)]; _array = [(typeof _x),_new call KK_fPositionToString,(_data select 1),0]; _pos = [(_array select 1)] call xCam_fSplitPosition; }; if((xCam_Edit_Values select 17) == 0) then { if(!(format["%1",(_x getvariable "xCamScaleVal")] in ["<null>","any"])) then {_scale = (_x getvariable "xCamScaleVal")} else {_scale = "1"}; if(!(format["%1",(_x getvariable "xCamPitchVal")] in ["<null>","any"])) then {_pitch = format["%1",((call compile (_x getvariable "xCamPitchVal")) select 0)];_bank = format["%1",((call compile (_x getvariable "xCamPitchVal")) select 1)]} else {_pitch = "0";_bank = "0"}; _string = format["""%1"";%2;%3;%4;%7;%8;%6;%5",_model,(_pos select 0),(_pos select 1),(_array select 2),(_pos select 2),_scale,_pitch,_bank]; } else { if(!(_model == "")) then { _string = format["""%1"";%2;%3;%4;%5;",_model,(_pos select 0),(_pos select 1),(_pos select 2),(_array select 2)]; }; }; ctrlSetText[1504, str(_array)];ctrlSetText[2027, format[" Export TerrainBuilder file... %1",_foreachindex]]; formatText ["%1", _string] call KK_fnc_makeFile; _c = _c + 1; }; }; }; } foreach (call compile _dGroup); _d = _d + 1; }; _check = format["%1.txt",_input] call KK_fnc_makeFile; if(!(_check == "OK")) then { while{_action} do { _check = format["%1(%2).txt",_input,_i] call KK_fnc_makeFile; if(!(_check == "OK")) then {_i = _i + 1} else {_action = false}; if(_i > 100) then {_action = false;[87,1] spawn xCam_fMessageBox;hintc format["Output Error\n===========\nMaybe you have forgotten to copy the 'make_file.dll' into the Arma 3 installation directory."]}; }; }; [] call KK_fnc_makeFile; 0 call xCam_fTurboCam; sleep 0.1; {ctrlenable [_x, true]} foreach [1512,1513,1504,1502,1503,1856,1857]; {ctrlshow [_x, false];ctrlenable [_x, false]}foreach [1499,1500,1501,1502,1503,1504,1505,1506,2027,1856,1857,2030,2031]; if((xCam_Visual_Val select 6) < 0) then {{[_x,1,1] spawn xCam_fShowHideList} foreach [0,1,2,3,4]}; if(_check == "OK") then {[83,1] spawn xCam_fMessageBox}; } else { [105,1] spawn xCam_fMessageBox; }; }; ctrlSetFocus ((uiNamespace getVariable "xCam_Ctrls") displayCtrl 1000); Share this post Link to post Share on other sites
RoF 241 Posted July 22, 2017 Here is the maker of x-cam saying it don't work for terrain building 2 Share this post Link to post Share on other sites
ViruzDeath_BSOC 20 Posted July 23, 2017 select all objects and set Absolute height = 0 Share this post Link to post Share on other sites