Jump to content
Sign in to follow this  
JDog

Working on first addon, few questions as I go

Recommended Posts

I tried hitting "E" with the flight deck selected to make it use a separate file but it just made the whole model semi-transparent in O2.

Edit: K well I need a couple days break from this before I lose interest in it. The animations and textures are driving me up a wall.

Edited by JDog

Share this post


Link to post
Share on other sites
The animations and textures are driving me up a wall.

hehehe ... yep that happens. Take a break :cool:

Share this post


Link to post
Share on other sites

Alright I'm back, took a little longer than expected but hopefully I can get this finished this time. Played with it some more today, texture-wise. I got it working for the most part, figured out some stuff I was wondering about before. I just want to make a "good-enough" texture for it, this being my first model I'm def not up to (or have the patience for) making a kick-ass one.

Here's a new problem: Everything works fine for me but I gave the pbo to a friend to check it out with me, and he couldn't load the textures because it was pathed to the folder on my computer I work on this out of. I can't seem to make the paths relative either, or at least they aren't working in Buldozer. Any help?

Share this post


Link to post
Share on other sites

Textures need to be inside your project folder, same place as the p3d file and config etc

When youre in O2, every texture reference must be to your project / P drive.

Share this post


Link to post
Share on other sites

I see, guess I'll try and reorganize it. I've been operating out of a folder on my desktop with everything in it for quick access. textures have their own subfolder within that one. As far as testing it goes, works fine for me, but apparently only for me :) I'll try setting it up in the P drive then.

Edit: Cool that did it. I'll finish up the textures and then move on to the nightmare that is animating in arma.

Edited by JDog

Share this post


Link to post
Share on other sites

Yeeeeaaa... I don't have the patience nor the skills in any paint editing program to texture this thing that well. Think I'll just get the scripts/animations for it done and release it, maybe someone else will be brave enough to texture it lol.

Share this post


Link to post
Share on other sites

Its nice work mate.

I'm sure someone might step forward once a release comes near, or after first release.

Just make sure your maping the model with just a few large textures that some else can update easy.

Share this post


Link to post
Share on other sites

So I have all the pieces spawning together off a user-placed spawn point. However, I can't seem to move it at all before or after it spawns. It takes the coordinates of the spawn point and spawns there, but I can't figure out how to adjust elevation so it sits properly on the ocean. Also having issues with it aligning to underwater terrain. I tried using "setVectorUp[0,0,1]" on the spawn point before spawning the ship but that didn't do it either. Seems I can't attach the pieces to the spawnpoint either.

Edited by JDog

Share this post


Link to post
Share on other sites

I'm getting this error. I can't figure out how to remedy that. I think I'm doing it right, this is supposed to be the place-able object in the editor that everything else spawns off of:

Capture-1.png

Share this post


Link to post
Share on other sites

Your init (a eventhandler) is meant to be inside its own class, with other event handlers;

class EventHandlers
{
    init = .............
};

Share this post


Link to post
Share on other sites

That worked but I also ended up having to put 2 double quotes around the script:

init = "spawn = _this execVM ""\JDOG_carrier\scr\init.sqf"";";

The only thing left is that I can't figure out how on earth to make it so that I can change it's direction/elevation. Nothing works on it. If I convert it from StaticShip to Ship, I can toy with it... but then it doesn't assemble correctly :(

Share this post


Link to post
Share on other sites

Yes, but quite honestly I didn't know what each class was model-wise (the naming was awkward to someone who doesn't already know), it did a fair job of throwing me off. I'll check again tomorrow when I get back home I suppose but it isn't the easiest script to understand :D

Share this post


Link to post
Share on other sites

Hmm I'm about out of questions as far as the model goes, haven't given another shot at animation quite yet but here's a good one that I'm hoping there's a "yes" for....

Is it possible in any way to call upon a point/named selection in the memory LOD via script? For example if I want to properly position a jet before takeoff... could I put a vertex/selection in a spot in O2 named "takeoffPos", and then somehow call upon that selection to retrieve its position and apply it to the jet in-game?

This would save me tons of time doing trial-and-error to get the position right via attachTo when I get to that point, and not just for jet positions.

Share this post


Link to post
Share on other sites
Is it possible in any way to call upon a point/named selection in the memory LOD via script? For example if I want to properly position a jet before takeoff... could I put a vertex/selection in a spot in O2 named "takeoffPos", and then somehow call upon that selection to retrieve its position and apply it to the jet in-game?

Yes. Place the named point in the Memory load.

You could also do this for Elevator and Park positions, along with some positions for crew on the deck or island.

position.sqf

//----------------------------------------
//script by Gnat
//----------------------------------------
// if you use it, credit me as appropraite
//----------------------------------------
// Usage;
// xx = [MyF18, MySHIP, "TakeOff1"] execVM "\MyShip\position.sqf"
//----------------------------------------
private["_veh","_ship","_posit"];
_veh = _this select 0;
_ship = _this select 1;
_posit = _this select 2;
_veh setposasl (_ship modeltoworld (_ship selectionposition _posit));

Share this post


Link to post
Share on other sites

Awesome thanks, yea I can think of a lot to use it for. Vehicle park/catapult positions, arrestor cable positions, camera positions, etc. I'll try it out tomorrow.

Share this post


Link to post
Share on other sites

Hmm, since its multiple models I guess I'll just have to adapt it for that... make it so that each section of the ship is spawned with a global name I can use in this.

Edit: Getting a weird problem. I put the point in the memory LOD of the .p3d that contains the resolution LOD also. In-game.. the geometry/roadways are still in place but the resolution goes to the sea floor, as does the memory lod which shares the same file. Maybe I'll try making one .p3d to hold all the memory points, since I would assume the 50x50x50 limit shouldn't matter in that since you aren't walking on/seeing it.

Edit: Yea I just thought... gonna have to change my spawn script anyway. If I'm going to have animations, going to need name-variables in the global namespace for those. My spawn script is about to triple in length I think.

Semi-fixed: Seems that even in its own separate .p3d it still persists. It doesn't seem the take the height coordinate of the point, that or the game resets it to the "world floor". Anyway, just adding 1 little setPos line after your script fixes it. Thanks.

Edited by JDog

Share this post


Link to post
Share on other sites

Any usual reasons for stuttered animations?

Share this post


Link to post
Share on other sites

Stuttering / jerky Animation;

I was stuck with the problem for YEARS, but youre lucky, recently Mondkalb found the fix and posted it here.

http://forums.bistudio.com/showthread.php?t=64969&page=5

And yes, a special Attachto script would be the best way to immobilize anything (including people) on the elevator until it reachs the top or bottom of its travel.

TIP: If you are having trouble getting UserActions to appear for players, you will likely have to place some VIEW GEOMETRY near the memory point / near where the player may be facing (either on the deck or in a plane), so the game-engine throws up the action on-screen.

Share this post


Link to post
Share on other sites

I used to have the elevators as part of the carrier section models, I tried making one its own model so I could use attachTo with it but doesn't seem to work. If the elevator goes down while the plane is bobbing around (like the first 2 seconds after it spawns) the plane will go down with it. But once the plane's model has "settled" it won't move.

I've tried making a "setPos" loop that slowly lowers the plane with the elevator, but it's almost like after the first second or two it picks up speed and goes into the ocean. Idk...

Share this post


Link to post
Share on other sites

Probably need to use the memory point locations, linked to the elevator, and using a loop to keep a item close relative to the memory point.

From memory, if the engine is running the vehicle will follow the elevator. So another possible solution is put fake drivers in each vehicle and start the engine while the elevator is moving.

....... unfortunately OFP/ArmA/OA was never designed for moving platforms or cargo areas.

Share this post


Link to post
Share on other sites

Engine being on doesn't do it. The pilot has to move, any small fraction of a nanometer will suffice. It's a minor inconvenience for players, I'm not gonna waste a whole bunch of time on it with plenty left to do. Hopefully I'll get it figured out eventually, hopefully...

For the "position" value in the UserActions in the config.cpp... can it be a point in memory? If it can I'm just doin something else wrong, cuz it doesnt seem to be working for the elevator's named selection either. This is what I'm trying:

class UserActions
	{
		class Elevator1Down
		{
			displayName = "Elevator Down";
			position = "E1Top";
			onlyforplayer = 0;
			radius = 7;
			condition = "this animationPhase ""ani_Elev1"" < 0.1";
			statement = "this animate [""ani_Elev1"",-10.15]";
		};
	};

Edited by JDog

Share this post


Link to post
Share on other sites
I'm not gonna waste a whole bunch of time on it with plenty left to do. Hopefully I'll get it figured out eventually

Yes, you have to be careful with 1 man project, stuff like that will send you crazy and completely put you off the project.

As you said, minor inconvenience.

My advice, attack the main stuff, don't let the project drag on too long (these forums are FULL of projects that went a couple months, then was never hear of again), get your first Beta out, take a small break, then go again after you get the community feedback. You'll feel better about the development cycle that way.

For the "position" value in the UserActions in the config.cpp... can it be a point in memory?

Huh? Thats what its meant to be. A named memory point in the memory lod. Also as I suggested, you need some view geometry nearby it (even just a cube hanging in space (that you never actually see)) to "activate" the point.

---------- Post added at 07:11 PM ---------- Previous post was at 06:59 PM ----------

FYI, something that may help when moving scripting context from one addon (that might have all the memory points and UserActions) to other nearby addon (that may actually contain something you need to animate, or other).

_ship = _this select 0;
_elevator1 = nearestobject [_ship, "JDG_elev1"];
_elevator2 = nearestobject [_ship, "JDG_elev2"];
etc etc

nearestobject only has a seek radius of 50meters, but there are other similar commands that can seek further.

nearObjects

nearestObjects

Share this post


Link to post
Share on other sites

Wow that 2nd to last sentence threw me for a loop, had to read it multiple times. I THINK you're saying if I want to move one memory point to the other.

How I have it set up right now is each section has its own memory points it needs for the animations, and then there's a single gargantuan model that is nothing but memory points for spawn positions, catapult positions, and eventually lights.

I'll give that ViewGeometry thing a shot in a few minutes.

Update: So I put a 3x3x3m box in the ViewGeometry LOD, in the exact position of the memory point, with the same name. No action. Hmmm...

Edited by JDog

Share this post


Link to post
Share on other sites

Alright so, gave the actions another shot today, cannot figure it out for the life of me. Here's what I got:

Within the model that has Elevator 1... there is a point in the memory LOD called "E1Top", and both a point and a 1m box also called "E1Top" in the view geometry LOD in the exact same position. The animations work fine when called by a script, and I tested the condition of the user action to make sure it works, and it returns true. I also have 'source="user";' in the model.cfg for it. For some reason I can't get it to appear.

class AnimationSources
	{
		class ani_Elev1
		{	
			source="user";
			animPeriod=3;
			initPhase=0;
		};
	};

         class UserActions
	{
		class Elevator1Down
		{
			displayName = "Elevator Down";
			position = "E1Top";
			radius = 7;
			condition = "this animationPhase ""ani_Elev1"" < 0.1";
			statement = "this animate [""ani_Elev1"",-10.15]";
			onlyforplayer = true;
		};
	};

Also a quick, possibly related aside... don't think I can get lights working either. Assuming I'm just supposed to put down vertices as named selections under the name of the lights, anyway. I think I tried including the light classes also, idk was a few days ago.

EDIT: Yea, gave lights another shot, still no go. I tried adding "class MarkerLights {};" to the base class each piece inherits from also. I would venture to say I'm doing something wrong with the mem lod since I can't get either lights or userActions to work, but the axes for the animations work just fine :-\ Also for the record, all the mempoints like my TestLight one and my E1Top are spawning in the correct position too, after testing each one with setPos on myself. And just because it popped into my head... the classname of each piece doesn't have to be the same as the .p3d name for stuff to work does it?

Edited by JDog

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  

×