arma:ofpport
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
arma:ofpport [2007/07/05 20:07] – created ofpport initial page 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...// | ||
====== Overview ====== | ====== Overview ====== | ||
- | To port your OFP addon into ArmA, the [[ofp: | + | To port your OFP addon into ArmA, the [[ofp: |
+ | |||
+ | If you just want to get your model ingame, you can use the OFP texturing, but if you want to really optimize it for ArmA then you need to [[arma: | ||
+ | |||
+ | Also you could roughly say that porting all p3d models is the same, the backbone of the operation is same, of course configs and individual model selections and such differ, but so far I would summarize my basic porting operation to these important steps: | ||
+ | |||
+ | 1) Get the model to MLOD format.\\ | ||
+ | 2) In O2PE start by renaming the Res LODs to 1,2,3,4 etc as many as there are.\\ | ||
+ | 3) Change proxy names as they most likely are not compatible with ArmA. You can use for example " | ||
+ | |||
+ | That's 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). | ||
- | If you just want to get your model ingame, you can use the OFP texturing, but if you want to really optimize it for ArmA then you need to [[arma: | ||
====== Aircraft ====== | ====== Aircraft ====== | ||
- | This is aircraft port details like cessna | + | This is aircraft port details like Cessna |
+ | |||
====== Building ====== | ====== Building ====== | ||
This is building port details like basic houses, gates, piers, bunkers and so on. | This is building port details like basic houses, gates, piers, bunkers and so on. | ||
+ | |||
+ | 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 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. | ||
+ | |||
+ | 4) Use the //Tools -> Mass Texture & Material Renaming// tool to change the paths. This will change the paths to all LODs, so you don't have to worry about individual LODs anymore as in OFP times. | ||
+ | |||
+ | 5) Check that there is no bad texturing, ie textures in geometry/ | ||
+ | |||
+ | 6) Add geometry **class = building** and **map = building** named properties entry' | ||
+ | |||
+ | 7) Add **LODNoShadow = 1** into all resolution LODs (later you use ShadowVolumes). | ||
+ | |||
+ | 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). | ||
+ | |||
+ | 9) Do // | ||
+ | |||
+ | 10) Check that all LODs have same Surface (SHIFT-E) setting, this includes geometry' | ||
+ | |||
+ | 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. Do not forget any of them, saves you so much time when trying them ingame the first time. | ||
+ | |||
====== Car ====== | ====== Car ====== | ||
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 |
- | + | ||
- | Added in the cfgvehicles: | + | **cfgBones**: |
+ | < | ||
+ | class VTE_HueyBones: | ||
+ | { | ||
+ | isDiscrete = 1; | ||
+ | skeletonInherit = ""; | ||
+ | skeletonBones[] = | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | **cfgModels**: | ||
+ | < | ||
+ | class VTE_uh101: Helicopter | ||
+ | { | ||
+ | skeletonName = " | ||
+ | sectionsInherit = ""; | ||
+ | sections[] = | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | "velka vrtule", | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }; | ||
+ | |||
+ | class Animations | ||
+ | { | ||
+ | |||
+ | class HRotor | ||
+ | { | ||
+ | type = " | ||
+ | source = " | ||
+ | selection = "velka vrtule"; | ||
+ | axis = "velka osa"; | ||
+ | angle0 = 0; | ||
+ | angle1 = -2 * 3.1415; | ||
+ | }; | ||
+ | |||
+ | class VRotor | ||
+ | { | ||
+ | type = " | ||
+ | source = " | ||
+ | selection = "mala vrtule"; | ||
+ | axis = "mala osa"; | ||
+ | angle0 = 0; | ||
+ | angle1 = 2 * 3.1415; | ||
+ | }; | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | Added in the cfgVehicles: | ||
< | < | ||
mainRotorSpeed = -1; | mainRotorSpeed = -1; | ||
Line 36: | Line 185: | ||
Need to change the way vehicles are defined. | Need to change the way vehicles are defined. | ||
- | Removed | + | 1) Rename all LODs to 1, 2, 3, 4 etc.\\ |
+ | 2) Edit the config to reflect the new cfgBones and cfgModels entries.\\ | ||
+ | 3) Add correct [[arma: | ||
- | Renamed the front lights | + | 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 |
- | Change the " | ||
- | Updated | + | ====== 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 | ||
+ | |||
+ | |||
+ | ====== 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' | ||
- | Disabled the weapons, turret and eventhandlers script and let it use normal BIS crew. | ||
- | |||
- | Removed all textures and selections. Got it ingame, still gives few error in arma.RPT but not any warnings ingame. | ||
====== Tank ====== | ====== Tank ====== | ||
Line 52: | 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 ====== | ||
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:// | ||
+ | |||
+ | 1) Open model in O2, renumber the **LOD**s to 1, 2, 3, 4, 5 etc.\\ | ||
+ | 2) In **Geometry** change the **class** to // | ||
+ | 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: | ||
+ | |||
+ | 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. | ||
+ | |||
====== Weapon ====== | ====== Weapon ====== | ||
This is weapon port details like hand guns, rifles and rocket launchers. | This is weapon port details like hand guns, rifles and rocket launchers. | ||
+ | |||
+ | 1) Open OFP MLOD into O2PE.\\ | ||
+ | 2) Name Resolution LODs like 1,2,3 etc.\\ | ||
+ | 3) Delete zasleh selection and the model of zasleh, on all res LODs and view-pilot too.\\ | ||
+ | 4) Open existing model (BIS m16_proxy.p3d) and copy paste \ca\weapons\zasleh1_pilot_proxy to your model, align it properly to the barrel.\\ | ||
+ | 5) If the model has "flat LODs" ie just alpha texture + flat face, delete them and remodel the this LOD.\\ | ||
+ | 6) Add Memory LOD point " | ||
+ | 7) Make model.cfg entry for your new weapon.\\ | ||
+ | 8) Create config.cpp entry. | ||
+ | |||
+ | 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. | ||
+ |
arma/ofpport.1183666077.txt.gz · Last modified: 2007/07/10 09:52 (external edit)