Jump to content
Sign in to follow this  
Sezon.dev

[Arma 3] Export problem for Terrain builder from Eden Editor

Recommended Posts

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

 

screenshot_209.png

 

 

In Terrain Builder

 

screenshot_211.png

 

Share this post


Link to post
Share on other sites

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
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
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

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

 

I can tell you that xcam keeps relative values and not just absolute values!

Share this post


Link to post
Share on other sites

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

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

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

lol

 

Think what you want, its your time your wasting

  • Like 3

Share this post


Link to post
Share on other sites
//////////////////////////////////
//    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

Here is the maker of x-cam saying it don't work for terrain building

 

 

  • Like 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×