# Projectgenericvessel - spacecraft3 and multistage2 replacement project

#### Face

Beta Tester
Let me know if this looks correct. The three robotic animations work fine but there are no parent attachments. I may have the syntax wrong.

Thanks for the example.

I guess the quickly patched-up PDF documentation is a bit misleading, because the parenthesis there are just for clarifying the optional nature of the underscore parts. So it should be TIP_1_1 instead of TIP(_1)_1 (and the like). Technically, it could also be ROBOTIC_ARM1 instead of ROBOTIC_ARM(1), but this really doesn't matter with the current parser, because it is the order of definition (and not the extension number) that determines the arm number. The first one is 0, counting up.

---------- Post added at 09:09 ---------- Previous post was at 06:59 ----------

While commuting today, I've compared the SC3 arm mode with genericvessel, and I think I've nailed the "let go of shift" thing you are seeing. You can get an intermediate version with this fix here: https://bitbucket.org/face/genericvessel/downloads/genericvessel.dll

Last edited:

#### Donamy

Donator
Beta Tester
Thanks for the example.

I guess the quickly patched-up PDF documentation is a bit misleading, because the parenthesis there are just for clarifying the optional nature of the underscore parts. So it should be TIP_1_1 instead of TIP(_1)_1 (and the like). Technically, it could also be ROBOTIC_ARM1 instead of ROBOTIC_ARM(1), but this really doesn't matter with the current parser, because it is the order of definition (and not the extension number) that determines the arm number. The first one is 0, counting up.

---------- Post added at 09:09 ---------- Previous post was at 06:59 ----------

While commuting today, I've compared the SC3 arm mode with genericvessel, and I think I've nailed the "let go of shift" thing you are seeing. You can get an intermediate version with this fix here: https://bitbucket.org/face/genericvessel/downloads/genericvessel.dll

Can't seem to get the file.

---------- Post added at 03:20 PM ---------- Previous post was at 02:50 PM ----------

The attachments now show up, but ...

1. the 0 attachment (attached to tool belt) is not attached to the torso, and does not move with the waist movemrnt.

2. the other two attachments ( right and left hand ) move to their attachment points, when their robtic arm number is selected, then they move as it should, but when the 0 attachment is selected, they don't stay attached when that animation moves. I hope I'm clear.

Code:
[CONFIG]
MESHNAME="EVAEMU2"
EMPTY_MASS=250
FUEL_MASS=60
MAIN_THRUST=0
ATTITUDE_THRUST=10
ISP=500
SIZE=5
FOCUS=1
CAMERA=(0,1,0)
VISIBLE=1

[PARENT_ATTACH_0]      ;Right hand
POS=(0.465,-0.053,-0.033)
DIR=(0,0,-1)
ROT=(0,1,0)
LOOSE=0
RANGE=0.5

[PARENT_ATTACH_1]      ;Left hand
POS=(-0.465,-0.053,-0.033)
DIR=(0,0,-1)
ROT=(0,1,0)
LOOSE=0
RANGE=0.5

[PARENT_ATTACH_2]      ;tool
POS=(0.263,0.195,-0.075)
DIR=(-1,0,0)
ROT=(0,1,0)
LOOSE=0
RANGE=0.5

[CHILD_ATTACH_0]	;to Foot Restraint
POS=(0.0,-0.89,-0.135)
DIR=(0,1,0)
ROT=(0,0,1)
LOOSE=0
ID="GS"

[CHILD_ATTACH_1]	;to COG
POS=(0.0,0,0)
DIR=(0,1,0)
ROT=(0,0,1)
LOOSE=0
ID="GS"

[ROBOTIC_ARM]
JOINT_0_NAME="ankle bend"
JOINT_0_SEQ=0
JOINT_0_RANGE=(-160,160)
JOINT_1_NAME="knee bend"
JOINT_1_SEQ=1
JOINT_1_RANGE=(-60,60)
JOINT_2_NAME="waist bend"
JOINT_2_SEQ=2
JOINT_2_RANGE=(-160,160)
JOINT_3_NAME="waist swivel"
JOINT_3_SEQ=3
JOINT_3_RANGE=(-100,100)
GRAP_SEQ=3
GRAP_ATTACH=2

[ROBOTIC_ARM(1)]
JOINT_0_NAME="left arm swing"
JOINT_0_SEQ=4
JOINT_0_RANGE=(-160,160)
JOINT_1_NAME="left arm raise"
JOINT_1_SEQ=5
JOINT_1_RANGE=(-60,60)
JOINT_2_NAME="left wrist roll"
JOINT_2_SEQ=6
JOINT_2_RANGE=(-90,90)
JOINT_3_NAME="left wrist pitch"
JOINT_3_SEQ=7
JOINT_3_RANGE=(-100,100)
GRAP_SEQ=7
GRAP_ATTACH=1

[ROBOTIC_ARM(2)]
JOINT_0_NAME="right arm swing"
JOINT_0_SEQ=8
JOINT_0_RANGE=(-160,160)
JOINT_1_NAME="right arm raise"
JOINT_1_SEQ=9
JOINT_1_RANGE=(-60,60)
JOINT_2_NAME="right wrist roll"
JOINT_2_SEQ=10
JOINT_2_RANGE=(-90,90)
JOINT_3_NAME="Right wrist pitch"
JOINT_3_SEQ=11
JOINT_3_RANGE=(-100,100)
GRAP_SEQ=11
GRAP_ATTACH=0

[ANIM_SEQ_0]	; ankle bend
INIT_POS=0.6
DURATION=6

[ANIM_SEQ_1]	; knee bend
INIT_POS=0.88
DURATION=12

[ANIM_SEQ_2]	; waste bend
INIT_POS=0.15
DURATION=6

[ANIM_SEQ_3]	; waste swivel
INIT_POS=0.5
DURATION=6

[ANIM_SEQ_4]	; left arm swing
INIT_POS=0.12
DURATION=6

[ANIM_SEQ_5]	; left Arm raise
INIT_POS=0.5
DURATION=6

[ANIM_SEQ_6]	;left wrist roll
INIT_POS=0.5
DURATION=4

[ANIM_SEQ_7]	;left wrist pitch
INIT_POS=0.5
DURATION=4

[ANIM_SEQ_8]	; right arm swing
INIT_POS=0.12
DURATION=6

[ANIM_SEQ_9]	; right Arm raise
INIT_POS=0.5
DURATION=6

[ANIM_SEQ_10]	;right wrist roll
INIT_POS=0.5
DURATION=4

[ANIM_SEQ_11]	;right wrist pitch
INIT_POS=0.5
DURATION=4

[ANIM_SEQ_12]	; visor
KEY=1
DURATION=6

[ANIM_COMP_0]  ; ankle bend
SEQ=0
GROUPS=1
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0,-0.81,-0.138)
ROT_AXIS=(1,0,0)
ANGLE=45

[ANIM_COMP_1]  ; knee bend
SEQ=1
GROUPS=2
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0,-0.381,-0.018)
ROT_AXIS=(1,0,0)
ANGLE=120
PARENT=0

[ANIM_COMP_2]  ; waist bend
SEQ=2
GROUPS=
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0,0.14,-0.103)
ROT_AXIS=(1,0,0)
ANGLE=75
PARENT=1

[ANIM_COMP_3]  ; waist swivel
SEQ=3
GROUPS=3,5,6,7,8,9,10
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0,0.2,-0.124)
ROT_AXIS=(0,1,0)
ANGLE=60
PARENT=2

[ANIM_COMP_4] 	;visor
SEQ=12
GROUPS=4
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.0,0.754,-0.001)
ROT_AXIS=(1,0,0)
ANGLE=-85
PARENT=3

[ANIM_COMP_5] 	;left arm swing
SEQ=4
GROUPS=
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(-0.286,0.529,-0.037)
ROT_AXIS=(-0.973053,-0.136754,0.185654)
ANGLE=160
PARENT=3

[ANIM_COMP_6] 	;left arm raise
SEQ=5
GROUPS=11,12,13
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(-0.271,0.514,-0.043)
ROT_AXIS=(0.231807,-0.11855,0.965511)
ANGLE=-60
PARENT=5

[ANIM_COMP_7] 	;left wrist roll
SEQ=6
GROUPS=
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(-0.43,0.11,-0.08)
ROT_AXIS=(0,1,0)
ANGLE=160
PARENT=6

[ANIM_COMP_8] 	;left wrist pitch
SEQ=7
GROUPS=14,15,16
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.,0.05,-0.08)
ROT_AXIS=(1,0,0)
ANGLE=100
PARENT=7

[ANIM_COMP_9] 	;Right arm swing
SEQ=8
GROUPS=
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.286,0.529,-0.037)
ROT_AXIS=(0.973053,-0.136754,0.185654)
ANGLE=-160
PARENT=3

[ANIM_COMP_10] 	;right arm raise
SEQ=9
GROUPS=17,18,19
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.271,0.514,-0.043)
ROT_AXIS=(-0.231807,-0.11855,0.965511)
ANGLE=60
PARENT=9

[ANIM_COMP_11] 	;right wrist roll
SEQ=10
GROUPS=
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.43,0.11,-0.08)
ROT_AXIS=(0,-1,0)
ANGLE=180
PARENT=10

[ANIM_COMP_12] 	;right wrist pitch
SEQ=11
GROUPS=20,21,22
RANGE(0,1)
TYPE=ROTATE
ROT_PNT=(0.,0.05,-0.08)
ROT_AXIS=(1,0,0)
ANGLE=60
PARENT=11

[ANIM_COMP_13] 	;tool
SEQ=3
TIP_1=(0.263,0.195,-0.075)
TIP_2=(-1.263,0.195,-0.075)
TIP_3=(0.263,1.195,-0.075)
PARENT=3

[ANIM_COMP_14] 	;Right hand grab
SEQ=11
TIP_2_1=(0.465,-0.053,-0.033)
TIP_2_2=(0.465,-0.053,-1.033)
TIP(_2)_3=(0.465,-1.053,-0.033)
PARENT=12

[ANIM_COMP_15] 	;left hand grab
SEQ=7
TIP_1_1=(-0.465,-0.053,-0.033)
TIP_1_2=(-0.465,-0.053,-1.033)
TIP_1_3=(-0.465,-1.053,-0.033)
PARENT=8

#### Face

Beta Tester
Can't seem to get the file.

Link seems to work for me. I'll put it as attachment, it is small enough...

The attachments now show up, but ...

1. the 0 attachment (attached to tool belt) is not attached to the torso, and does not move with the waist movemrnt.

2. the other two attachments ( right and left hand ) move to their attachment points, when their robtic arm number is selected, then they move as it should, but when the 0 attachment is selected, they don't stay attached when that animation moves. I hope I'm clear.

It'd really help if I could try that on my own. Any chance you can send me that mesh, at least privately, perhaps together with a quick test scenario?

Code:
<snip>
[ANIM_COMP_14]     ;Right hand grab
SEQ=11
TIP_2_1=(0.465,-0.053,-0.033)
TIP_2_2=(0.465,-0.053,-1.033)
TIP(_2)_3=(0.465,-1.053,-0.033)
PARENT=12
<snip>

That should be "TIP_2_3", not "TIP(_2)_3".

Last edited:

#### Donamy

Donator
Beta Tester
I can send it sure.

#### Face

Beta Tester
With your error description in mind, I've done a little static code analysis on the robotic arm attachment code and found some unfortunate coding that may have caused the described effects.

In addition, I've attached it here.

Last edited:

#### Donamy

Donator
Beta Tester
All seems to work well. :thumbup:

even the "Let go of shift" thing. :tiphat:

#### Face

Beta Tester
Ok, another Tuesday-release...

With help of Donamy's example, I've nailed out first bugs in the multiple arm support, and also polished it a bit. So here you have release 150310: http://bitbucket.org/face/genericvessel/get/V150310.zip .

The changelog (w.r.t. Artlav's last release) is:

• xves: introducing datastructures for multiple robotic-arm configurations
• xves: loading multiple robotic arm definitions
• xves: refactored arm data structure to take arm name and id into account
• genericvessel: display and control of multiple robotic arm definitions
• genericvessel: fixed double keybinding of NumPad0 in arm mode
• genericvessel: fixed keybinding incompatibility (let go of shift) in arm mode
• genericvessel: refactored loading method - Previous loading method did not take Orbiter's configuration settings into account. In addition, this patch reverts the fallback to plain config file definition.
• Examples: added picture for scenario editor example
• Examples: added EVAEMU2, a fully functional EVA figure
• Documentation: updated copyright notice and installation instructions
• Packaging: fixed distribution scenarios with Atlantis for Orbiter 2010 Patch 1
• Packaging: resurrected SC3 original documentation
• Packaging: updated binaries and documentation

Happy multi-arming

#### jacquesmomo

I am really very interested with this development....:thumbup:

I have yesterday tested generic vessel with some of my add-ons , and it seems to works fine.

But... II did not been able to make work the UMMU facility :idk:

I do not understand why... May I have missed something ?
Is it still integrated in the last version ?
Can you help me? Do you have an example (scn, cfg and/or ini files) ?

I hope I can make in the futur a new version of my "Tintin on the Moon" with "genericvesssel"...

Thank you... and apology for my bad English.... (I'm from France)

P.S. EVAEMU2 is great and amazing !!!

Last edited:

#### Face

Beta Tester
But... II did not been able to make work the UMMU facility :idk:

I do not understand why... May I have missed something ?
Is it still integrated in the last version ?
Can you help me? Do you have an example (scn, cfg and/or ini files) ?

I did not change Artlav's code in this regards, but I also have to admit that I never tried it. I'll look into it.

P.S. EVAEMU2 is great and amazing !!!

I can wholeheartedly relay this compliment to Donamy. It really is a cool thing to play with.

#### jacquesmomo

I did not change Artlav's code in this regards, but I also have to admit that I never tried it. I'll look into it.
Ok, Thank you in advance for that :tiphat:

I can wholeheartedly relay this compliment to Donamy. It really is a cool thing to play with.
Yes !!! :10sign:

#### Face

Beta Tester
Ok, Thank you in advance for that :tiphat:

Just tried it, and it works like described in the documentation for me. I've added the following example section to SampleGenericVessel.cfg:
Code:
[UMMU]
MAXSEATS=10
AIRLOCK_POSITION=(0,0,0)
AIRLOCK_SIZE=(10,10,10)
EVA_POS=(0,0,0)
EVA_ROT=(0,0,3.14)
Note the 3.14 in the EVA_ROT Z value for a 180° rotation around the Z-axis. Those values are angles in radian units around the appropriate axis, not direction vector coordinates. It took me a while to realize that, because I was unable to find it in Dan's UMmuSDK documentation. Also interesting: Artlav chose to define the airlock by means of midpoint-position and size, in contrast to Dan's min/max corner position method. I.e.: with the above definition, you get an airlock with 20 meters length, width and height, having the midpoint in position 0,0,0.

I have also added the following lines to the Scenarios/Generic Vessel/Animations.scn:
Code:
BEGIN_SHIPS
Test:SampleGenericVessel

...

UMMUCREW Capt-Captain-39-65-79
UMMUCREW Sci-Scientist-39-65-79
UMMUCREW Tec-Technician-39-65-79
UMMUCREW Sec-Security-39-65-79
UMMUCREW Vip-Politician-39-65-79
END
END_SHIPS

With this I got a HUD display in the glass cockpit view showing the names of the crew members and instructions on how to EVA them. EVAing and ingress works, too.

I'll push that to the repo as example for the next release.

#### jacquesmomo

Yes, now it works well for me too !!! :banana:

I did not think to look at the display in cockpit view... :facepalm:

May be it should be helping to write in the documentation someting like that :
[ Alt-num] for Eva (look for instruction in cokpit view)
and with an exemple, il will be fine !:thumbup:

What you mean by "EVAing and ingress works, too"
(excuse me, I don't understand could you explain to me...)

I may have noticed one thing :
Exhausts Textures placements and sizes are ok for me, but if I try to
specify a other texture, I still have the Orbiter Exhaust defaut texture...
(I'm not entirely certain, I have to make some more test, but...)

Cheers
Jacques

Last edited:

#### Face

Beta Tester
What you mean by "EVAing and ingress works, too"
(excuse me, I don't understand could you explain to me...)

I meant that you can use the Alt+number commands to EVA the UMmu (i.e. create an UMmu vessel and remove the internal crew member), as well as switch to the UMmu vessel and use the "E" key to go back into the vessel.

Exhausts Textures placements and sizes are ok for me, but if I try to
specify a other texture, I still have the Orbiter Exhaust defaut texture...
(I'm not entirely certain, I have to make some more test, but...)

Your observation is true. This is because genericvessel still lacks some SC3 features. Custom textures and particlestreams are some of them. ATM I'm going through the parser to identify missing sections and parameters. This is what I've currently got in this TODO:
Code:
Missing sections/Parameters:

LIFT/*

CONFIG/MAIN_TEX
CONFIG/MAIN_PSTREAM1
CONFIG/MAIN_PSTREAM2
CONFIG/RETRO_TEX
CONFIG/RETRO_PSTREAM1
CONFIG/RETRO_PSTREAM2
CONFIG/HOVER_TEX
CONFIG/HOVER_PSTREAM1
CONFIG/HOVER_PSTREAM2
CONFIG/ATT_TEX
CONFIG/ATT_PSTREAM1
CONFIG/ATT_PSTREAM2
CONFIG/REENTRY_PSTREAM
CONFIG/WING_ASPECT
CONFIG/WING_EFFECTIVENESS
CONFIG/TRIM
CONFIG/FOCUS

TEXTURE_LIST/*

PARTICLESTREAM_x/*

AERODYNAMICS/MODEL
AERODYNAMICS/VAIRFOIL_LIFT_x
AERODYNAMICS/VAIRFOIL_EFFICIENCY
AERODYNAMICS/VAIRFOIL_WAVE_DRAG
AERODYNAMICS/VAIRFOIL_CD0
AERODYNAMICS/HAIRFOIL_LIFT_x
AERODYNAMICS/HAIRFOIL_EFFICIENCY
AERODYNAMICS/HAIRFOIL_WAVE_DRAG
AERODYNAMICS/HAIRFOIL_CD0
AERODYNAMICS/RUDDER_TRIM_ATTACK
AERODYNAMICS/RUDDER_TRIM_AREA
AERODYNAMICS/RUDDER_TRIM_LIFT
AERODYNAMICS/RUDDER_TRIM_ANIM
AERODYNAMICS/FLAPS_ATTACK
AERODYNAMICS/FLAPS_AREA
AERODYNAMICS/FLAPS_LIFT
AERODYNAMICS/FLAPS_ANIM

LANDING_GEAR/*

SOUND/*
And this is just what the parser is missing. Another thing is what gets parsed, but not actually used. The VC section is such a candidate.

My roadmap now is to gradually fix this, while still adding some additional goodies here and there. The next step is to get the parser to actually parse all SC3 parameters correctly, while also adding a CAMERA section to define additional view-points you can switch to.

#### jacquesmomo

I meant that you can use the Alt+number commands to EVA the UMmu (i.e. create an UMmu vessel and remove the internal crew member), as well as switch to the UMmu vessel and use the "E" key to go back into the vessel.
Ah... ok... :thankyou:

Your observation is true. This is because genericvessel still lacks some SC3 features. (...)
Ahh ... it was indeed what I was thinking ....

My roadmap now is to gradually fix this, while still adding some additional goodies here and there.
it's a Great work you're doing !!!

The next step is to get the parser to actually parse all SC3 parameters correctly, while also adding a CAMERA section to define additional view-points you can switch to.
I will continue to follow closely your project... I hope to do in the futur a new Tintin's Lunar Rocket UMmu-compatible and also with more details, with "genericvessel"...
(this rocket was my first experience in 3D modeling) Since then I made good progress

Just for fun, look what I've made with my Chandra and Haddock-UMmu add-ons...:lol: ... and GenericVessel !!! :thumbup:

So I wish you to continued success in your challenges... and thank you again !!!

#### Donamy

Donator
Beta Tester
Next up for GV !!

#### Attachments

• NewDextre.jpg
129.6 KB · Views: 47

#### gattispilot

Can GV handle multiple robotic arms? Looks like a dll is needed.

#### Donamy

Donator
Beta Tester
It sure can !!! This GV craft has 7 arms with their own parent attachments.

#### Attachments

• NewDextre2.jpg
91.1 KB · Views: 50
Last edited:

Beta Tester