Ergebnis 1 bis 4 von 4
-
- Registriert seit
- Oct 2018
- Beiträge
- 3
Hey everyone!
I'm experimenting with a mod that would replace jetpacks with bag or backpacks (for style and immersion). It went even better because I found out that if you replace only Msh_It_Jetpack_Body_01_L1.elex2msh model the jetpack itself would remain as it is but you'll also have a bag on your back (or whatever model you use). I got some results but only one or two of them were acceptable - trouble is, there are some models that would fit very well but they're totally misaligned and don't look good because of it.
So would it be possible to adjust jetpack (and whatever you replace it with) position on the character's model? I unpacked the jetpack template (It_Jetpack.elex2tpl) and tried to edit these lines in the doc (these are changed by me, were 0 0 0 and 0 0 0 1 respectively):
Position = (vec 10 20 30);
Rotation = (quat 50 70 90 1);
but it didn't do anything. Any ideas?
UPD - I also tried changing class bCMatrix LocalPose, class bCMotion HoldOffset and class bCMotion EquipOffset (took those from Alb Shield) but the only change I saw is that the position in the jetpack workbench changed, but it's still the same on the character.
The template code itself:
Code:<master> { GUID = {BF6CF9A6-86AB-4BD9-AE72-EC60A192111A}; RefTemplateGUID = {00000000-0000-0000-0000-000000000000}; Position = (vec 10 20 30); Rotation = (quat 50 70 90 1); Unknown0 = <05>; Unknown1 = 50000; Unknown2 = <1D A0 00 00 01 00>; "It_Jetpack" { GUID = {63C843A6-E94F-4C29-B0B5-CA5A18172547}; RefTemplateGUID = {00000000-0000-0000-0000-000000000000}; Position = (vec 0 0 0); Rotation = (quat 0 0 0 1); Unknown0 = <00>; Unknown1 = 7500; Unknown2 = <1D A0 00 00 01 00>; class eCMeshPrefab_PS { Version = 3; Properties { class bTSceneObjArray<class eCPrefabMesh> Meshes = [ class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <19 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 42 6F 64 79 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } }, class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <23 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 42 6F 74 74 6F 6D 5F 65 78 68 61 75 73 74 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } }, class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <1E 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 4D 69 64 62 75 74 74 6F 6E 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } }, class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <18 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 54 6F 70 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } }, class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <1C 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 54 75 72 62 69 6E 65 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } }, class eCPrefabMesh { Version = 3; Properties { class eCMeshResourceMaterialMapProxy Mesh = <1A 00 4D 73 68 5F 49 74 5F 4A 65 74 70 61 63 6B 5F 57 69 6E 67 73 5F 30 31 5F 4C 31 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>; class eCTemplateEntityProxy Template = {00000000-0000-0000-0000-000000000000}; class bCMatrix LocalPose = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); unsigned int MaterialSwitch = 0; class bCByteAlphaColor ObjectColor = <FF 00 00 00>; unsigned int GIVoxelLevel = 0; bool BlockVegetation = False; enum eSGameMapType GameMapType = eSGameMapType_None; bool RiverObstacle = False; } ClassData { [class eCPrefabMesh, Version 3] = <00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; } } ]; float BreakingForce = 0; enum eEPrefabForceMode ForceMode = eEPrefabForceMode_None; bool DecomposeOnTrigger = False; enum eSGameMapType GameMapType = eSGameMapType_None; } ClassData { } } class gCItem_PS { Version = 2; Properties { unsigned int Amount = 1; int GoldBuy = 0; int GoldSell = -1; bool MissionItem = True; bool MagicItem = False; bool AlchemyItem = False; bool GoldItem = False; bool AdventureItem = False; bool Permanent = False; int SortValue = 0; class eCEntityProxy Owner = {00000000-0000-0000-0000-000000000000}; enum gEItemCategory Category = gEItemCategory_None; class bCString IconOverlay = ""; class bCString IconImage = "Ico_Jetpack"; bool GenerateIcon = True; class bCMotion HoldOffset = <00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F>; class bCMotion EquipOffset = <00 00 00 00 00 00 00 00 00 00 60 41 ED 44 32 BF ED 44 32 BF 30 78 FB 3D 30 78 FB 3D>; bool Dropped = False; class eCTemplateEntityProxy ItemWorld = {00000000-0000-0000-0000-000000000000}; class eCTemplateEntityProxy ItemInventory = {00000000-0000-0000-0000-000000000000}; class bTSceneObjArray<class gCSkillValue> RequiredSkills = [ ]; class bTSceneObjArray<class gCModifySkill> OnUseModifySkills = [ ]; class bTSceneObjArray<class gCModifySkill> OnPossessModifySkills = [ class gCModifySkill { Version = 1; Properties { enum gESkillModifier Modifier = gESkillModifier_SetBaseToValue; int Amount = 1; enum gESkill Skill = gESkill_Perk_Jetpack; } ClassData { } } ]; enum gEItemUseType UseType = gEItemUseType_Jetpack; class eCScriptProxyScript CanEquipScript = "CanEquipHasRequieredStats"; class eCScriptProxyScript OnPreUnEquipScript = ""; class eCScriptProxyScript OnEquipScript = "OnEquip"; class eCScriptProxyScript OnUnEquipScript = "OnUnEquip"; class eCScriptProxyScript OnPossessScript = "OnPossess_Jetpack"; class eCScriptProxyScript OnUnholdScript = ""; class eCScriptProxyScript OnHoldScript = ""; class bCString EffectMaterial = "metal"; enum gEItemHoldType HoldType = gEItemHoldType_None; bool IsDangerousWeapon = False; enum gECoolDownType CoolDownType = gECoolDownType_None; unsigned int CoolDownMS = 0; unsigned int AttachedItemId = 0; int PickPocketModificator = 0; unsigned int StackFlags = 0; int NumSocketSlots = 0; } ClassData { [class gCItem_PS, Version 2] = <02 CA A8 90 00 00 00 00 01 00 00 00>; } } class gCInteraction_PS { Version = 2; Properties { enum gEInteractionUseType UseType = gEInteractionUseType_Item; class eCScriptProxyScript EnterROIScript = "OnEnterProcessingRange"; class eCScriptProxyScript ExitROIScript = "OnExitProcessingRange"; class eCScriptProxyScript TouchScript = ""; class eCScriptProxyScript IntersectScript = ""; class eCScriptProxyScript UntouchScript = ""; class eCScriptProxyScript TriggerScript = ""; class eCScriptProxyScript UntriggerScript = ""; class eCScriptProxyScript DamageScript = ""; class eCScriptProxyScript CanAttachSlotScript = ""; class eCScriptProxyScript AttachedSlotScript = ""; class eCScriptProxyScript DetachedSlotScript = ""; class eCScriptProxyScript BlockRemovingDeadScript = ""; class eCScriptProxyScript GeneratePlunderScript = "GeneratePlunder"; class gCScriptProxyAIState RoutineTask = ""; class bCString FocusNameBone = ""; class bCVector FocusViewOffset = (vec 0 0 0); class bCVector FocusWorldOffset = (vec 0 0 0); class eCScriptProxyScript FocusPriorityScript = "GetFocusEntityPriority"; class eCScriptProxyScript FocusNameScript = "GetFocusEntityName"; class bTSceneObjArray<class gCInteraction> Interactions = [ class gCInteraction { Version = 1; Properties { enum gEInteractionType Type = gEInteractionType_Interact_Player; class eCScriptProxyScript CanInteractScript = ""; class gCScriptProxyAIFunction PreInteractScript = ""; class gCScriptProxyAIFunction InteractScript = "Interact_Player_TakeItem"; class eCScriptProxyScript PostInteractScript = ""; } ClassData { } }, class gCInteraction { Version = 1; Properties { enum gEInteractionType Type = gEInteractionType_Magic; class eCScriptProxyScript CanInteractScript = "CanInteract_Magic_Item"; class gCScriptProxyAIFunction PreInteractScript = "PreInteract_Magic_Item"; class gCScriptProxyAIFunction InteractScript = "Telekinesis_Item"; class eCScriptProxyScript PostInteractScript = ""; } ClassData { } } ]; class bCMatrix SlotOffset = (mat 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1); enum gEFocusPriority FocusPriority = gEFocusPriority_Normal; enum gEFocusNameType FocusNameType = gEFocusNameType_Entity; int InteractionCounter = 0; class eCEntityProxy SlotWorldItem = {00000000-0000-0000-0000-000000000000}; class eCTemplateEntityProxy SlotItem = {00000000-0000-0000-0000-000000000000}; class eCScriptProxyScript BlockInteractionScript = ""; float Radius = 0; float Angle = 0; class eCLocString ActionText = ""; class eCScriptProxyScript ActionTextScript = "GetFocusEntityActionText"; } ClassData { } } } }
Geändert von Wang_Laoshi (27.04.2022 um 17:00 Uhr)
-
"in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
Tuvok, scannen Sie den Planeten nach Mikroplastik!
"Hört mir bloß auf mit "Stormson".
"In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
-
- Registriert seit
- Oct 2018
- Beiträge
- 3
Thanks for the input! Where exactly do I put this? And do these edits require some additional mods so that the game would pick it up?
Just tried to add this NewPos line as a new one and as a replacement for Position, in both cases I got parse error when converting the doc back to elex2tpl
Found Baltram's post where this is described, it's suggested to put it right before the Pose attribute but items templates don't have these, only LocalPose. I still tried to add NewPos before LocalPose and got the parse error just as beforeGeändert von Wang_Laoshi (28.04.2022 um 16:08 Uhr)
-
Seems all templates use
Position = (vec 0 0 0);
Rotation = (quat 0 0 0 1)
(Is there any template with different values? Guess, no.)
I assume that NewPos () was designed for entities in world sector files, not for templates.
In the jetpack template you might try out to set x, y, z different from zero.
class bCMatrix SlotOffset = (mat 1 0 0 0 0 1 0 0 0 0 1 0 x y z 1);
Just a wild guess only. (Iirc I used mat 2 0 0 0 0 2 0 0 0 0 2 0 to double the size of a sword 3 years ago, but no sure.)"in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
Tuvok, scannen Sie den Planeten nach Mikroplastik!
"Hört mir bloß auf mit "Stormson".
"In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!Geändert von tombom81 (29.04.2022 um 19:04 Uhr)