arma:ofpport
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
arma:ofpport [2008/08/27 06:15] – added weapon porting tutorial. snakeman | arma:ofpport [2024/08/01 16:06] (current) – links added. snakeman | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Port OFP addon to ArmA ====== | + | ====== Port OFP Addon To ArmA ====== |
+ | |||
+ | [[https:// | ||
+ | |||
+ | **ArmA 1** aka Armed Assault (ArmA) | ||
+ | |||
+ | Welcome to wonderful world of porting OFP addon to ArmA :) | ||
+ | |||
+ | Don't be discouraged by many people saying that you should not port OFP addons but instead of making brand new content. Hey, if you want to port your favorite and nostalgic addon from OFP, go ahead, if the elites want to create new content, let them. Everyone is happy. | ||
+ | |||
+ | //Ported OFP addon with properly merged textures and updated stuff is addon as any brand new content created from ground up...// | ||
Line 14: | Line 24: | ||
3) Change proxy names as they most likely are not compatible with ArmA. You can use for example " | 3) Change proxy names as they most likely are not compatible with ArmA. You can use for example " | ||
- | Thats the basic backbone which helps to bring your model closer to ArmA compatibility. These three steps are just the beginning of the porting, but in most cases with those edits to the p3d model you should get it ingame with properly made/ported config file (of course with pretty much all features disabled like turrets and animations etc). | + | That' |
====== Aircraft ====== | ====== Aircraft ====== | ||
- | This is aircraft port details like cessna | + | This is aircraft port details like Cessna |
Line 27: | Line 39: | ||
1) Use [[ofp: | 1) Use [[ofp: | ||
- | 2) Use //Structure -> Check Textures// feature to see what are your missing textures (make sure the ported objects textures are NOT in o2 path). This dialog will show the path (pbo) name and texture name, its already nicely selected so you can just use copy-paste to bring it to text file if you so choose. Organize the textures so they are in proper directory (pbo) path and filename | + | 2) Use //Structure -> Check Textures// feature to see what are your missing textures (make sure the ported objects textures are NOT in o2 path). This dialog will show the path (pbo) name and texture name, its already nicely selected so you can just use copy-paste to bring it to text file if you so choose. Organize the textures so they are in proper directory (pbo) path and file name for you to use when the porting is complete and ArmA pbo created. |
3) Rename the resolution LODs to 1,2,3 and 4 etc. | 3) Rename the resolution LODs to 1,2,3 and 4 etc. | ||
- | 4) Use the //Tools -> Mass Texture & Material Renaming// tool to change the paths. This will change the paths to all LODs, so you dont have to worry about individual LODs anymore as in OFP times. | + | 4) Use the //Tools -> Mass Texture & Material Renaming// tool to change the paths. This will change the paths to all LODs, so you don' |
5) Check that there is no bad texturing, ie textures in geometry/ | 5) Check that there is no bad texturing, ie textures in geometry/ | ||
- | 6) Add geometry **class=building** and **map=building** named properties | + | 6) Add geometry **class = building** and **map = building** named properties |
- | 7) Add **LodNoShadow=1** into all resolution LODs (later you use ShadowVolumes). | + | 7) Add **LODNoShadow |
8) Do //Points -> Merge near...// and use value 0.0001, for all LODs (just in case, should be no problem with ODOL Explorer converted models). | 8) Do //Points -> Merge near...// and use value 0.0001, for all LODs (just in case, should be no problem with ODOL Explorer converted models). | ||
Line 43: | Line 55: | ||
9) Do // | 9) Do // | ||
- | 10) Check that all LODs have same Surface (SHIFT-E) setting, this includes | + | 10) Check that all LODs have same Surface (SHIFT-E) setting, this includes |
Thats the basic o2 operation for the models. Then there is of course the config, if there is one for the building in question, but at this point you should be able to place these ported p3ds into WRP file already. | Thats the basic o2 operation for the models. Then there is of course the config, if there is one for the building in question, but at this point you should be able to place these ported p3ds into WRP file already. | ||
- | One last tip, go through all your new objects how many are you going to port, systematically. | + | One last tip, go through all your new objects how many are you going to port, systematically. |
====== Car ====== | ====== Car ====== | ||
Line 53: | Line 66: | ||
This is car port details like skoda, jeep or truck. | This is car port details like skoda, jeep or truck. | ||
+ | |||
+ | ====== Config ====== | ||
+ | |||
+ | Probably the most difficult task is to port the config, while many of the config entries are the same, there is differences enough to cause confusion and many errors if you just try to drop in OFP config into ArmA addon. | ||
+ | |||
+ | **WIP stuff** | ||
+ | |||
+ | a) there is much new stuff | ||
+ | |||
+ | b) much of the old stuff has not changed | ||
+ | |||
+ | c) cfgMagazines is a new class - before weapons and magazines were part of cfgWeapons at the same time | ||
+ | |||
+ | d) so some values got assigned to a different class | ||
+ | |||
+ | e) ArmA inheritance is different and more advanced: | ||
+ | <code cpp> | ||
+ | class INHERITEDCLASS; | ||
+ | { | ||
+ | //new values | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | f) nested class with turrets is a pain in the ass | ||
+ | |||
+ | g) inheritance needs to be done at the correct level\\ | ||
+ | (maybe people just add the inheritance classes before the actual cfgVehicles etc) | ||
+ | you may only do this for classes with are at the highest level (outside other classes) | ||
+ | like RscText or class Mode_FullAuto; | ||
+ | |||
+ | h) use coding standards | ||
+ | |||
+ | i) use proper indentation | ||
+ | |||
+ | j) path definition has changed | ||
+ | |||
+ | k) topic PBOPREFIX | ||
+ | |||
+ | l) editing trick to work with folders rather than pbos | ||
====== Helicopter ====== | ====== Helicopter ====== | ||
- | This is helicopter port details like uh60, huey or hind. Here is quick dirty overview. | + | This is helicopter port details like uh60, Huey or hind. Here is quick dirty overview. |
- | Completly | + | Completely |
**cfgBones**: | **cfgBones**: | ||
Line 65: | Line 117: | ||
class VTE_HueyBones: | class VTE_HueyBones: | ||
{ | { | ||
- | isDiscrete=1; | + | isDiscrete = 1; |
- | skeletonInherit=""; | + | skeletonInherit = ""; |
- | skeletonBones[]= | + | skeletonBones[] = |
{ | { | ||
- | " | + | " |
- | " | + | " |
- | " | + | " |
}; | }; | ||
}; | }; | ||
Line 81: | Line 133: | ||
{ | { | ||
skeletonName = " | skeletonName = " | ||
- | sectionsInherit=""; | + | sectionsInherit = ""; |
- | sections[]= | + | sections[] = |
{ | { | ||
- | " | + | " |
- | "velka vrtule"," | + | " |
+ | " | ||
+ | "velka vrtule staticka", | ||
+ | "velka vrtule blur", | ||
+ | "velka vrtule", | ||
+ | "mala vrtule staticka", | ||
+ | "mala vrtule blur", | ||
+ | "mala vrtule", | ||
+ | " | ||
}; | }; | ||
+ | |||
class Animations | class Animations | ||
{ | { | ||
+ | |||
class HRotor | class HRotor | ||
{ | { | ||
Line 98: | Line 160: | ||
angle1 = -2 * 3.1415; | angle1 = -2 * 3.1415; | ||
}; | }; | ||
+ | |||
class VRotor | class VRotor | ||
{ | { | ||
Line 124: | Line 187: | ||
1) Rename all LODs to 1, 2, 3, 4 etc.\\ | 1) Rename all LODs to 1, 2, 3, 4 etc.\\ | ||
2) Edit the config to reflect the new cfgBones and cfgModels entries.\\ | 2) Edit the config to reflect the new cfgBones and cfgModels entries.\\ | ||
- | 3) Add correct [[arma: | + | 3) Add correct [[arma: |
In all LODs choose zasleh selection, in Face Properties (E) put User Value to 0 and untick Enable Shadow completely. Then in Properties (SHIFT-E) set Lighting (Obsolete) setting to Normal. Its funny that it says obsolete, but if you leave it to for example Shining, then your muzzle flash is blackened out heh. | In all LODs choose zasleh selection, in Face Properties (E) put User Value to 0 and untick Enable Shadow completely. Then in Properties (SHIFT-E) set Lighting (Obsolete) setting to Normal. Its funny that it says obsolete, but if you leave it to for example Shining, then your muzzle flash is blackened out heh. | ||
+ | |||
+ | |||
+ | ====== Mission ====== | ||
+ | |||
+ | Porting a mission is semi easy with just the classnames being changed. | ||
+ | |||
+ | Triggers (sensors), Radios and Gamelogic' | ||
+ | |||
+ | It is merely copying the mission dir into the users dir, then initially porting over init.sqs to init.sqf as that is usually very short script. Then loading the mission first time in ArmA and the errors start to pour in. Mostly its missing OFP classnames which have to be removed or changed, mostly its just changing like missing CoC Unified Artillery pieces to " | ||
+ | |||
+ | For starters the biggest thing is to get the mission loading in the mission editor. When the mission is loaded and you can preview it, you will most likely start to get errors from those SQS scripts or the other OFP style mission making. It really comes down to how complex the mission is, if its very simple one you have not much work to do, but complex missions are harder to downright impossible to port (at least 1:1 scale). | ||
+ | |||
+ | |||
+ | ====== Soldier ====== | ||
+ | |||
+ | Soldier porting is not possible at the moment, all what we have been reading on forums and in private messages is that too much have been changed and any MLOD models by default aren't working because they need brand new animations. Also all soldier models from OFP are just way way too low poly and low detail in other ways that we just need skip them. | ||
+ | |||
====== Tank ====== | ====== Tank ====== | ||
Line 132: | Line 212: | ||
This is tank port details like M113, M1A1 or T80. | This is tank port details like M113, M1A1 or T80. | ||
- | ====== Soldier ====== | ||
- | Soldier porting is not possible at the moment, all what we have been reading on forums and in private messages | + | ====== Terrain (island) ====== |
+ | |||
+ | To port terrains (or islands as they were called back in the OFP times) | ||
====== Vegetation ====== | ====== Vegetation ====== | ||
Line 140: | Line 222: | ||
This is vegetation port details like trees, bushes, grass, rocks etc. | This is vegetation port details like trees, bushes, grass, rocks etc. | ||
- | Porting vegetation objects is quite easy. Here are the steps PMC used when porting over [[http://tactical.nekromantix.com/vte/|VTE]] objects. | + | Porting vegetation objects is quite easy. Here are the steps PMC used when porting over [[http://www.vtemod.com|VTE]] objects. |
1) Open model in O2, renumber the **LOD**s to 1, 2, 3, 4, 5 etc.\\ | 1) Open model in O2, renumber the **LOD**s to 1, 2, 3, 4, 5 etc.\\ | ||
2) In **Geometry** change the **class** to // | 2) In **Geometry** change the **class** to // | ||
3) If you have forest objects, in **Geometry** add **placement** to //slope// property name.\\ | 3) If you have forest objects, in **Geometry** add **placement** to //slope// property name.\\ | ||
- | x) Create **shadowVolume** LOD (which PMC cannot do at the moment, *crying*. Check out [[arma: | + | x) Create **ShadowVolume** LOD (which PMC cannot do at the moment, *crying*. Check out [[arma: |
- | If you do not use geometry class=treeSoft (or bushsoft etc) then your vegetation will not " | + | If you do not use geometry class = treeSoft (or bushsoft etc) then your vegetation will not " |
Also many of our roads had missing geometry value of map=road in them, so they did not display at ingame map view. | Also many of our roads had missing geometry value of map=road in them, so they did not display at ingame map view. | ||
- | |||
Line 166: | Line 247: | ||
8) Create config.cpp entry. | 8) Create config.cpp entry. | ||
- | Done. There is alot of work to be done on the config.cpp and model.cfg to get weapon animated, however the above is how to work it around the O2 modeling phase. | + | Done. There is a lot of work to be done on the config.cpp and model.cfg to get weapon animated, however the above is how to work it around the O2 modeling phase. |
- | + | ||
- | ====== Config ====== | + | |
- | + | ||
- | Propably the most difficult task is to port the config, while many of the config entries are the same, there is differences enough to cause confusion and many errors if you just try to drop in OFP config into ArmA addon. | + | |
- | + | ||
- | ====== WRP Terrain ====== | + | |
- | + | ||
- | To port WRP terrains (or islands as they were called back in the OFP times) is somewhat easy. You should read our [[arma: | + | |
arma/ofpport.1219817722.txt.gz · Last modified: 2008/08/27 06:15 by snakeman