Jump to content
Sign in to follow this  
J. Schmidt

Pegasus Team 101 MULE WIP

Recommended Posts

What am I missing now that when I drive the MULE in first person view, i only see underneath the vehicle, instead of the top side or through the camera?

Share this post


Link to post
Share on other sites

Is there a VIEW - PILOT lod in your model?

It can be a copy of you main Resolution LOD, including the driver proxy, but you can delete anything that the driver will NEVER be able to see, i.e. back of the MULE

You driver view should then be that seen from the driver proxy.

Share this post


Link to post
Share on other sites

@Gnat, No I didn't create a View-Pilot lod, but I'll get right on that.

I'm going to try a different approach to getting my animations to work. I have 3ds Max 9, and the ArmA ToolBox, so I'll give it a shot to see what I can do. Who knows maybe I'll be able to add much more to the animations. But I still need help with converting the MULE to be controlled/act like an UAV.

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

It's been awhile since my last post, I've revamped the model so it looks less like its from Mars and added some extra details. I still yet have to create the textures and get the model.cfg to work. (I sent the model.cfg to a friend to see if he can help me out but I haven't heard from him for awhile.) Once the animations work I'll try to work on getting the MULE to be remotely controlled by a player in which they can then move and fire the vehicle like they were in it. I made a mistake in calling a UAV, when its actually a UGV instead, for any confusion on what I'm trying to do with the addon should be clear now. If anyone is interested in helping me please contact me and I'll be glad to have you help.

I also have found a site in which has a mini-video showing what the MULE is suppose to do and what I would like to see it do in-game. here's the link:

http://gizmodo.com/279830/lockheeds-mule-armored-rc-robotic-vehicle-defends-soldiers-kills-baddies

Share this post


Link to post
Share on other sites

Well I believe I'm pretty much done with the mode, but when I launch up Buldozer View I get an error: No entry "bin\config.cpp.CfgSkeletons". What am I suppose to do with it, also I am accepting anyone who wants to help. Meaning if your really sure you want to help and you know what your doing I will give you the model.cfg, config.cpp, and the .p3d files for you to help edit.

I'm trying my best but I really don't have the skill of scripting in this point in my life. I need to go to school for game design or scripting so I can understand what I'm doing. I would really appreciate the help, it's just a bit out of my league right now. I also need help with textures, I don't own Photoshop and from my understanding that's a "must have" software to create textures. Once this project is done, I can then go on with creating some new units and a hovercraft something like the one shown in this video:

I've already started on the model of the units and the hovercraft in these pictures...

abunits1.jpg

hovercraft2.jpg

And here's the updated picture of the M.U.L.E:

pt101_mule-2.jpg

---------- Post added at 12:29 AM ---------- Previous post was at 12:14 AM ----------

Once the model.cfg, config.cpp, and textures are done I'm going to need even more help to get it scripted to act live a UGV (Unmanned Ground Vehicle) From what Feint explained was that for the UAV little-bird there is an invisible pilot controlling it. I would like to take that a bit farther if possible in which you can operate it like your actually driving it and shooting it when you pull up a computer, however that works out. Now I've put some thought into this and have come up with two different ideas, 1. When you pull the computer up you'll gain manual control of it shooting and driving with using the camera on top of the M.U.L.E as your eyes. 2. When you pull the computer up you are transported into the driver/shooters seat of the M.U.L.E and when you exit the computer you are back where you first opened the computer. I would like some other ideas or input from the community on what and how to do this.

Share this post


Link to post
Share on other sites

class CfgPatches 
{ 
   class pt101_mule 
   { 
       units[] = {"pt101_mule"}; 
       weapons[] = {}; 
       requiredVersion = 0.1; 
       requiredAddons[] = {"CAWheeled_E"};
   }; 
}; 

class CfgVehicles 
{ 
   class M1135_ATGMV_EP1; 
   class pt101_mule: M1135_ATGMV_EP1 
   { 
       displayName = "MULE"; 
       model = "\pt101_mule\pt101_mule.p3d"; 
       side = west; 
       crew = "US_Soldier_Light_EP1"; 
       maxSpeed = 60; 
       transportSoldier = 1; 
   }; 
};

class Rotation;
class CfgSkeletons
{
class Default;
   class pt101_mule: Default
   {
	isDiscrete=1;
       skeletonInherit="Car";
       skeletonBones[]=
       {
           "wheel01",
           "wheel02",
           "wheel03",
           "wheel04",
           "wheel05",
           "wheel06",
           "turret",
           "camera"
       };
   };
};
class CfgModels
{
   class Default;
   class pt101_mule: Default
   {
       skeletonName="Mule";
       class Animations
       {
           class FrontWheelL
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel01";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class FrontWheelR
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel02";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class CenterWheelL
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel03";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class CenterWheelR
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel04";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class RearWheelL
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel05";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class RearWheelR
           {
               type = "rotationX";
               source = "wheel";
               selection = "wheel06";
               axis = "X";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
           class Turret
           {
               type = "rotationY";
               source = "mainTurret";
               selection = "turret";
               axis = "Y";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
               class Camera
           {
               type = "rotationY";
               source = "mainTurret";
               selection = "camera";
               axis = "Y";
               memory = 1;
               sourceAddress = "loop";
               minValue = 0;
               maxValue = 1;
               angle0 = 0;
               angle1 = "rad -360";
           };
       };
   };
};

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

"not working" is not appropraite when request help from the community.

config.cpp has no "definitions" defined, so "west" means nothing.

skeletonBones[]=

{

"wheel01","",

"wheel02","",

"wheel03","",

"wheel04","",

"wheel05","",

"wheel06","",

"turret","",

"camera",""

};

skeletonName="Mule";

does not match your skeletons name

I dont see a sections[] definition in model.cfg

Share this post


Link to post
Share on other sites

@Gnat I replaced the skeletonName ="MULE" to skeletonName ="pt101_mule"; I also replaced the side = west with side = 3; Is 3 civilian or Blufor, and what do you mean by "not working" is not appropraite when requesting help from the community?

Share this post


Link to post
Share on other sites
Gnat;2129183']You have provided no description of whats "not working".

I've spent about a month on reworking the model of an addon I'm creating and am not able to create a PBO. Since I've been done with the looks of the model (pt101_mule.p3d); there are no textures yet; from oxygen 2' date=' I started working on the model.cfg and config.cpp. I took the original model.cfg and config.cpp that I started to create from the older model of the MULE I created that worked with putting the addon in game, but the model.cfg did not work. (The model.cfg still doesn't work) Now I'm trying to put this new model in the game, so I'm using BinPBO to pack the new model and config files to put in game, but it's not working. Isn't the BinPBO suppose to take all the files in the given folder i.e. .p3d, model.cfg and config.cpp and create a pbo with all them in it? If so it's not doing that, the pbo that is created only has a config.bin file in it and some sort of prefix file, but no .p3d, model.cfg, and config.cpp files are in the pbo file.

Here's a link for the download of the .log file created.

http://www.2shared.com/file/UhaaOb2z/pt101_mule.html

Share this post


Link to post
Share on other sites

Parse: 0 ms
No entry 'C:\Program Files (x86)\Bohemia Interactive\Tools\BinMake\Binarize\bin\config.cpp.CfgSkeletons'.
No entry '.Mule'.
No entry '.skeletonInherit'.
'/' is not a value
No entry '.skeletonBones'.
Size: '/' not an array
Size: '/' not an array
Size: '/' not an array
No entry '.isDiscrete'.
'/' is not a value

Is everything in BinPBO refering to P drive?

Almost all BIS tools use P drive only.

Are to files true raw text?

Saved in maybe notepad to ensure there are no special formats.

FYI config.bin IS same as config.cpp, just binarized.

Share this post


Link to post
Share on other sites

In addition to above your model is too high poly .

as seen here

W:\c\Poseidon\lib\Shape\vertex.cpp(648) : Assertion failed '_nVertex < 32768'

I am a lil rusty but i think this refers to the sum of all the tris in the model not just one LOD , however someone will clarify .

remember triangulate in o2 to reiceve true number , because Binpbo/game will do it and then kick out the p3d for ya resulting in empty PBO.

maybe you can reduce some lods like pilot view or especially shadow lod .

Share this post


Link to post
Share on other sites

@Gnat: Yes everything in BinPBO is refering to P drive, and I'm using Notepad++

@Thromp: So I need to rid Shadow lod, triangulate lod 1.000, and rid whatever lod that isn't needed? I can recall when I was working on it in Oxygen 2 that when I previewed it in Buldozer it said that there where to many vertices or something like that. So I went back and redid it, and it showed up in Buldozer finally. But I'm probably borderline, so I go ahead and re-due it again then let you know.

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites
it showed up in Buldozer finally. But I'm probably borderline, so I go ahead and re-due it again then let you know.

well i usually just change the lod to an Edit lod and rebinarize , then look in the LOG , if the nvertex > 32768 is gone then at that point you know you found affending Lod and an try to reduce .

it maybe the Shadow lod is always easiest because it will be drawn along with the corresponding Resolution LOd , im no expert but this 32768 is a magic number that can be drawn in regards to one object . iused to understand but well i`m old now :)

Share this post


Link to post
Share on other sites

@Thromp, After deleting the Shadowvolume lod, Shadowvolume - view cargo, and view cargo lods it finally worked. Right now I only have 1.000 lod, memory lod, geometry lod, land contact lod, and fire geometry lod. I'm going to experiment with it some more to see if I can put the Shadowvolume lod back in, and possibly a couple other lods.

I successfully UV mapped the MULE and now I'm going to try to tackle the texture part of it now, once I've completed that I'm going to start back up on the whole scripting part of it. I still don't understand most of the scripting needed, so it's going to take some time to figure it out and getting it to work. I'll keep everyone updated on my progress and if anymore problems occur, or anything after much research that I don't understand.

Share this post


Link to post
Share on other sites

I've been searching around and I found some sort of script that allows one to actually control the UGV, unfortunately when I use it the player is stuck in one spot controlling the UGV. Is there some something I'm missing on the modeling/scripting side or is the script that I'm using missed up?

Here's the Script I'm trying to use:

player remoteControl driver UGV; driver UGV switchCamera "View"; waitUntil {!(alive UGV) || !(alive player)}; objNull remoteControl driver UGV; player switchCamera "View";

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

I took the script an extra step and created an exit.sqs, and an enter.sqs and then put a function module in.

exit.sqs:

objNull remoteControl driver UGV; UGV_Operator switchCamera "Gunner";

enter.sqs:

UGV_Operator remoteControl driver UGV; driver UGV switchCamera "Gunner"; waitUntil {!(alive UGV) || !(alive player)};

function module:

myaction = UGV_Operator addAction ["Enter UGV Mode", "enter.sqs"]; myaction = UGV addAction ["Exit UGV Mode", "exit.sqs"];

I named my unit UGV_Operator (this way it should prevent others from being able to operate the UGV) and the MULE UGV.

But now when I enter the UGV the camera is glitched out, it is facing backwards and moves side to side by itself. It's like the AI inside it is facing backwards and keeps moving his head as if he was glitched out and the camera stays in one spot.

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

Also my animations still aren't working, I worked on the model.cfg, and the config.cpp a bit more and here are the updated files.

Model.cfg

class CfgSkeletons
{
class Default;
class pt101_mule: Default
{
	isDiscrete=1;
	skeletonInherit="";
	skeletonName = "pt101_mule";
	skeletonBones[]=
	{
		"turret","",
		"minigun","",
		"camera","",
		"wheel1","",
		"wheel2","",
		"wheel3","",
		"wheel4","",
		"wheel5","",
		"wheel6",""
	};
};
};
class CfgModels
{
class Rotation;
class Default
{
	sectionsInherit = "";
	skeletonName = "pt101_mule";
	sections[] = {};
	skeleton = "pt101_mule";

	class Animations {};
};

class pt101_mule
{
	sectionsInherit = "";
	sections[] = {};

	skeletonName = "pt101_mule";
};
class Mule: pt101_mule
{
	sectionsInherit="pt101_mule";
	sections[]={};

	class Animations
	{
		class FrontWheelL: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel1";
			axis="wheel1_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class FrontWheelR: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel2";
			axis="wheel2_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class CenterWheelL: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel3";
			axis="wheel3_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class CenterWheelR: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel4";
			axis="wheel4_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class RearWheelL: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel5";
			axis="wheel5_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class RearWheelR: Rotation
		{
			type="rotationX";
			source="wheel";
			selection="wheel6";
			axis="wheel6_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class Turret: Rotation
		{
			type="rotationY";
			source="mainTurret";
			selection="turret";
			axis="turret_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class Camera: Rotation
		{
			type="rotationY";
			source="mainTurret";
			selection="camera";
			axis="camera_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class Minigun: Rotation
		{
			type="rotationZ";
			source="mainTurret";
			selection="minigun";
			axis="minigun_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
	};
};
};

Config.cpp:

class CfgPatches 
{
class pt101_mule
{
	units[] = {"pt101_mule"};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"CAWheeled_E"};
}; 
};

class CfgFactionClasses
{
class UGV
{
	displayName = "UGV";
	priority = 1;
	side = 1;
};
};

class CfgVehicleClasses
{
class UGV
{
	displayName = "UGV - MULE";
};
};

class CfgVehicles 
{
class M1129_MC_EP1;
class pt101_mule: M1129_MC_EP1
   	{ 
       	displayName = "MULE";
		vehicleClass = "UGV";
       	model = "P:\PT101_Mule\pt101_mule.p3d";
		weapons[] = {};
		magazines[] = {};
       	side = 1; 
       	crew = "US_Soldier_Crew_EP1"; 
       	maxSpeed = 60; 
  	    	transportSoldier = 0;
		animated = true;
	};
};
};

Share this post


Link to post
Share on other sites

This looks wrong if your 3d model file name is "pt101_mule"

class CfgModels
{
   class Rotation;
   class Default
   {
       sectionsInherit = "";
       skeletonName = "pt101_mule";
       sections[] = {};
       skeleton = "pt101_mule";

       class Animations {};
   };

   class pt101_mule
   {
       sectionsInherit = "";
       sections[] = {};

       skeletonName = "pt101_mule";
   };
   class Mule: pt101_mule
   {
       sectionsInherit="pt101_mule";
       sections[]={};

       class Animations
       {

Try something like this;

class CfgModels
{
   class Default
   {
	isDiscrete = true;
	skeletonInherit = "";
	skeletonBones[] = {};
   };
   class pt101_mule  : default
   {
	skeletonName = "pt101_mule";
       sectionsInherit = "";
       sections[]={"turret","minigun","camera","wheel1","wheel2","wheel3","wheel4","wheel5","wheel6"};
       class Animations
       {

Share this post


Link to post
Share on other sites

@Gnat: Thanks alot it works now in Buldozer, I'm just going to check if the animations work in-game now.

---------- Post added at 05:46 PM ---------- Previous post was at 05:35 PM ----------

Sweeeet, it works in-game as well, But the remote control camera doesn't work properly, and I would like to be only able to see out of the camera on-top of the MULE. I'm going to add a driver proxy and a commander proxy to see if it might work. If it doesn't work will I need to specify that I want the camera of the model to be used as a camera like the one on the UAV?

Share this post


Link to post
Share on other sites

Apart from a fully scripted camera (havent seen one for a remote vehicle), and the UAV config one, I don't know of any other way to get a model camera view.

Share this post


Link to post
Share on other sites

@Gnat: I found that I needed to create a Commander View, Gunner View, and Driver View memory points. I did this and it works, but the Commander View doesn't follow the Rotating Camera on-top of my MULE. And the Gunner View doesn't follow the rotating turret. I read that you need to group the memory points together or something like that, to get them to follow the rotations.

Share this post


Link to post
Share on other sites

Your gunner view point should become part of "turret" name definition.

A commander view is usually a "turret on top of the main turret", some you need to add to your skeleton to get an inderpentant commander view.

"turret","",

"ComTurret","turret",

Then your commander view point is also named "ComTurret"

(points and faces can been named several names if you didn't already know)

If you want commander view interpendant of main turret.

"turret","",

"ComTurret","",

Share this post


Link to post
Share on other sites

@Gnat: Thanks for helping me in understanding how to group the memory points, and everything is working now, but I'm having some trouble with getting the remote control script, and I have to continue on working with the model.cfg/config.cpp. I still have a lot to do with the config.cpp to add weapons and cargo along with whatever else that can be done. Will I need to create animations for the missiles to launch, and is there a way in which one person can fire, drive and etc? And here is the model.cfg and config.cpp that I have done so far.

Model.cfg:

class CfgSkeletons
{
class Default;
class pt101_mule: Default
{
	isDiscrete=1;
	skeletonInherit="";
	skeletonName = "pt101_mule";
	skeletonBones[]=
	{
		"turret","maingun",
		"minigun","turret",
		"turret","comturret",
		"camera","turret",
		"comturret","camera",
		"camera","comturret",
		"maingun","",
		"wheel1","",
		"wheel2","",
		"wheel3","",
		"wheel4","",
		"wheel5","",
		"wheel6",""
	};
};
};
class CfgModels
{
   class Default
   {
       isDiscrete = true;
       skeletonInherit = "";
       skeletonBones[] = {};
   };
   class pt101_mule: default
   {
       skeletonName = "pt101_mule";
       sectionsInherit = "";
       sections[]={"turret","minigun","wheel1","wheel2","wheel3","wheel4","wheel5","wheel6"};

	class Animations
	{
		class FrontWheelL
		{
			type="rotationX";
			source="wheel";
			selection="wheel1";
			axis="wheel1_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class FrontWheelR
		{
			type="rotationX";
			source="wheel";
			selection="wheel2";
			axis="wheel2_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class CenterWheelL
		{
			type="rotationX";
			source="wheel";
			selection="wheel3";
			axis="wheel3_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class CenterWheelR
		{
			type="rotationX";
			source="wheel";
			selection="wheel4";
			axis="wheel4_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class RearWheelL
		{
			type="rotationX";
			source="wheel";
			selection="wheel5";
			axis="wheel5_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class RearWheelR
		{
			type="rotationX";
			source="wheel";
			selection="wheel6";
			axis="wheel6_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class Turret
		{
			type="rotationY";
			source="mainTurret";
			selection="turret";
			axis="turret_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad +360";
		};
		class Minigun
		{
			type="rotationZ";
			source="revolving";
			selection="minigun";
			axis="minigun_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad -360";
		};
		class Camera
		{
			type="rotation";
			source="obsTurret";
			selection="camera";
			axis="camera_axis";
			memory="1";
			sourceAddress="loop";
			minValue=0;
			maxValue=1;
			angle0="0";
			angle1="rad +360";
		};
	};
};
};

Config.cpp:

class CfgPatches 
{
class pt101_mule
{
	units[] = {"pt101_mule"};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"CAWheeled_E"};
}; 
};

class CfgFactionClasses
{
class West
{
	displayName = "West";
	priority = 1;
	side = 1;
};
};

class CfgVehicleClasses
{
class UGV
{
	displayName = "UGV - MULE";
};
};

class CfgVehicles 
{
class M1129_MC_EP1;
class pt101_mule: M1129_MC_EP1
   { 
       displayName = "MULE";
	vehicleClass = "UGV";
       model = "P:\PT101_Mule\pt101_mule.p3d";
	weapons[] = {};
	magazines[] = {};
       side = 1; 
       crew = "US_Soldier_Crew_EP1"; 
       maxSpeed = 60; 
  	    transportSoldier = 0;
	animated = true;

};
};

Edited by JSF 82nd Reaper

Share this post


Link to post
Share on other sites

I will be posting an update within a couple of days on Armaholic for the public to see what has been accomplished so far.

Here is the video in which I submitted to Armaholic:

http://www.youtube.com/watch?v=T_nVYmG3TJU

Edited by JSF 82nd Reaper

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  

×