Jump to content

POLPOX

Member
  • Content Count

    810
  • Joined

  • Last visited

  • Medals

Everything posted by POLPOX

  1. I know this will be an another hard work for developers, but is there any possibility to develop winter version, since Poland irl is very often covered with snow in winter?
  2. Welcome to the tutorial of Artwork Supporter, this is where you need to look at make static animations and its configurations. You can also find FaceRig to make facial expressions! Useful links also: https://community.bistudio.com/wiki/CfgMoves_Config_Reference Disclaimer: this is NOT a turorial for user, but third-party developers. Requites some basic configuration and Blender knowledge to understand these informations. How to make a static animation and/or gesture You need: Blender ArmaRig by Macser FHQ Arma Toolbox for Blender by Alwarren (Optional) Arma 3 Tools (Optional) Arma 3 Samples 0. Set up everything Install Blender. Install and enable FHQ Arma Toolbox for Blender, I don't instruct you here. Read some official and/or Blender official documents. Download ArmaRig. 1. Make an RTM Open ArmaRig in Blender. Everything you see in the 3D screen is your action figure. You just need to move, rotate to pose it to your desired pose. Files > Export > Arma 2/3 RTM Animation and save as. 2. Configure Configure. More informations stated below. To make an animation: You need to modify CfgMovesMaleSdr. This is the (my) basic config. class CfgMovesBasic; class CfgMovesMaleSdr: CfgMovesBasic { class States { class AmovPercMstpSnonWnonDnon; class YourAwesomeStaticAnim: AmovPercMstpSnonWnonDnon { actions = "NoActions"; //You always need this to prevent animation related problem speed = 1e+010; //speed = n; means the animation will take 1/n seconds to play connectTo[] = {}; //Defines next animation to play, should nothing when is static and not intended to use in actual gameplay interpolateTo[] = {}; //Same aiming = "empty"; //Currently I suggest you to keep "empty" here head = "empty"; //Same canReload = 1; //If is 1 the animation can reload file = "Path\to\your\awesome\static\anim.rtm"; }; }; }; Optional configurations: /* To make fire-able */ canPullTrigger = 1; //Put his finger to trigger disableWeapons = 0; //Declares anim can fire or not, 0 to open fire disableWeaponsLong = 0; //Same, what's difference BTW? weaponLowered = 0; //I believe this does not so much but I put /* Weapon IK */ //Weapon IK, or Inverse Kinematics is a technology to fit units' hands/arms to weapon dynamically. This won't do any when the weapon has no such config and animation. weaponIK = 1; //Defines what weapon to fit hands, 0 is none, 1 is rifle, 2 is pistol (HIGHLY not recommend to use) and 4 is launcher rightHandIKCurve[] = {1}; //{1} to fit hand to weapon, {0} to leave hand to animation. {0.6} to blend IK:non-IK(FK) 6:4. leftHandIKCurve[] = {1}; //Same but for left hand /* Show optional things */ showHandgun = 1; //1 to show pistol to their right hand, 0 to hide and/or to their holster if the vest has one showItemInHand = 1; //1 to show binoculars to left hand //Note: you can't move pistol/binoculars to somewhere other than their pre-defined position, pistol is always sticked to their right hand, same goes for binoculars weaponIK example with the same RTM, left to right, {0}, {0.5} and {1}, note these hands. You also can make a macro to re-use same configurations. If you've enough knowledge though. My customized macros: #define StaticBase \ actions = "NoActions";\ speed = 1e+010;\ connectTo[] = {};\ interpolateTo[] = {};\ aiming = "empty";\ head = "empty";\ canReload = 1;\ #define EnableFireBase \ canPullTrigger = 1;\ disableWeapons = 0;\ disableWeaponsLong = 0;\ weaponLowered = 0;\ #define IKBase(Wpn,Right,Left) \ weaponIK = Wpn;\ rightHandIKCurve[] = {Right};\ leftHandIKCurve[] = {Left};\ To make a gesture: The basic principle is the same with CfgMovesMaleSdr but little complicated-er. You need to modify CfgMovesBasic and CfgGesturesMale. This is the (my) basic config. class CfgMovesBasic { class ManActions { YourAwesomeGesture[] = {"YourAwesomeGesture","Gesture"}; }; }; class CfgGesturesMale { class Default; class States { class YourAwesomeGesture: Default { looped = 1; //Recommend to 1 speed = 1e-010; connectTo[] = {}; interpolateTo[] = {}; aiming = "empty"; head = "empty"; canReload = 1; file = "Path\to\your\awesome\gesture.rtm"; mask = "leftHand"; //The most complicated and important thing is here... More informations stated below }; }; }; mask can be anything in configFile >> "CfgGesturesMale" >> "BlendAnims". In this case, leftHand[] = {"LeftShoulder",0.3,"LeftArm",1,"LeftArmRoll",1,"LeftForeArm",1,"LeftForeArmRoll",1,"LeftHand",1,"LeftHandRing",1,"LeftHandPinky1",1,"LeftHandPinky2",1,"LeftHandPinky3",1,"LeftHandRing1",1,"LeftHandRing2",1,"LeftHandRing3",1,"LeftHandMiddle1",1,"LeftHandMiddle2",1,"LeftHandMiddle3",1,"LeftHandIndex1",1,"LeftHandIndex2",1,"LeftHandIndex3",1,"LeftHandThumb1",1,"LeftHandThumb2",1,"LeftHandThumb3",1}; Will be applied to the RTM. And this means, "LeftShoulder" bone applies the RTM 30%, "LeftArm" bone applies the RTM 100%, and so on. You also can make your own mask. Left to right, base animation, gesture animation and the result with mask = "leftHand". It won't work unless both of CfgMovesBasic and CfgGesturesMale are configurated properly the same time to make a gesture. My customized macros: #define StaticBase \ looped = 1;\ speed = 1e-010;\ connectTo[] = {};\ interpolateTo[] = {};\ aiming = "empty";\ head = "empty";\ canReload = 1;\ #define DisableFireBase \ canPullTrigger = 0;\ disableWeapons = 1;\ disableWeaponsLong = 1;\ weaponLowered = 1;\ #define EnableFireBase \ canPullTrigger = 1;\ disableWeapons = 0;\ disableWeaponsLong = 0;\ weaponLowered = 0;\ #define IKBase(Wpn,Right,Left) \ weaponIK = Wpn;\ rightHandIKCurve[] = {Right};\ leftHandIKCurve[] = {Left};\ #define IKLeft(value) \ leftHandIKCurve[] = {value};\ #define IKRight(value) \ rightHandIKCurve[] = {value};\ #define ActionsBase(Name) Name[] = {Name,"Gesture"}; 3a. Pack and Binarize RTM (Optional) 13 KB is large enough if you're about to make an PBO with a lot of RTMs. You can binarize them to reduce file size. Paste Arma 3 Samples\Addons\Test_Character_01\model.cfg to your MOD directory. Open Addon Builder and check Binarize. Make sure model.cfg is located in the same directory with Addon source directory. Pack. The RTM has only about 2 KB now, in return, you can't open RTM with OB anymore. 3b. Pack Follow 3a instruction, just ignore every instructions about binarizing. 4. Make a MOD, enable it and enjoy You can use switchMove/playMove/playMoveNow to play animation, playAction/playActionNow to play gesture. How to make a facial expressions aka mimic You need: Blender FaceRig by Macser, modified by POLPOX FHQ Arma Toolbox for Blender Object Builder or Oxygen 2 (Optional) Arma 3 Samples 0. Set up everything 1. Make an RTM Open FaceRig in Blender. Everything you see in the 3D screen is your action figure. You just need to move, rotate to pose it to your desired expression. Files > Export > Arma 2/3 RTM Animation and save as. 2. Open in OB or O2 the RTM and export You need to do this so you can show proper RTM in-game. Open Arma 3 Samples\Addons\TemplateRTM\Male.p3d. Make sure Window > Animations is checked. Right click on the Animations Window and From Matrices, select the RTM. Change the Keyframe time to check the RTM is imported properly. Make sure some of the diamonds around model's head are moved. Right click again on the Window and Export Matrices, and save as an RTM. You have a proper RTM which has about 33 KB now. 3. Configure You need to modify CfgHeads. This is the (my) basic config. class MaskFace_A3; class LipMask_A3; class CfgHeads { class Default_A3 { class Grimaces { class RTM_Face; class YourAwesomeMimicFace: RTM_Face { anims[] = {"Path\to\your\awesome\mimic.rtm",1}; animsAI[] = {"Path\to\your\awesome\mimic.rtm",1}; }; class YourAwesomeMimic { type = "compound"; class Items { class YourAwesomeMimicFace: MaskFace_A3{}; class Lipsync: LipMask_A3{}; }; }; }; }; }; You don't need to configure a lot. In this case, you can use YourAwesomeMimic as a your custom mimic entry now. Make sure both of configFile >> "CfgHeads" >> "Default_A3" >> "Grimaces" >> X and configFile >> "CfgHeads" >> "Default_A3" >> "Grimaces" >> Y >> X have the same name. My custom macros: #define MimicBase(MimicName,MimicRTMPath)\ class ##MimicName##Face: RTM_Face\ {\ anims[] = {##MimicRTMPath##,1};\ animsAI[] = {##MimicRTMPath##,1};\ };\ class ##MimicName##\ {\ type = "compound";\ class Items\ {\ class ##MimicName##Face: MaskFace_A3{};\ class Lipsync: LipMask_A3{};\ };\ }; 4a. Pack and Binarize RTM (Optional) 33 KB is large enough if you're about to make an PBO with a lot of RTMs. You can binarize them to reduce file size. Paste Arma 3 Samples\Addons\Test_Character_01\model.cfg to your MOD directory. Open Addon Builder and check Binarize. Make sure model.cfg is located in the same directory with Addon source directory. Pack. The RTM has only about 2 or 3 KB now, in return, you can't open RTM with OB anymore. 4b. Pack Follow 4a instruction, just ignore every instructions about binarizing. 5. Make a MOD, enable it and enjoy You can use setMimic to change facial expression. Note that, setMimic only accepts lower cases. That's mostly all to animate so far. Special thanks: racdenis, Macser
  3. The brand-new face expressions, aka Mimics hit Dev-Branch of Artwork Supporter, you can test now! Have a nice weekend creativity!
  4. Yes. I'm introducing this proudly! This is what we're facing, and is literally the game-changer!
  5. Just found a bug related to non-English characters and copy/paste. _str = "English, Русский, Čeština, Français, Español, Türkçe, 简体中文, 繁體中文, 한국어, 日本語"; copyToClipboard _str; diag_log _str; copyFromClipboard The script returns this to the clipboard: English, ミムτ・・コミクミケ, ト憩ナ。tina, Franテァais, Espaテアol, Tテシrkテァe, 邂菴謎クュ譁・ 郢・ォ比クュ譁・ 﨑懋オュ・エ, 譌・譛ャ隱・ In the return value: English, Русский, Čeština, Français, Español, Türkçe, 简体中文, 繁體中文, 한국어, 日本語 In the log: 19:25:57 "English, ミムτ・・コミクミケ, ト憩ナ。tina, Franテァais, Espaテアol, Tテシrkテァe, 邂菴謎クュ譁・ 郢・ォ比クュ譁・ 﨑懋オュ・エ, 譌・譛ャ隱・ And if you copy the string to clipboard in-game manually, copyFromClipboard returns: "English, �Q�������{�y�z, ?e?tina, Francais, Espanol, Turkce, ?�̒���, ��铒���, ???, ���{��"
  6. https://community.bistudio.com/wiki/Procedural_Textures#color
  7. So, I just successed to extract every localized string IDs (unless if I missed something) legally which have "STR_A3_" prefix or something like that, and probably this might useful for someone so I'm posting this. DOWNLOAD AT YOUR OWN RISK! This is a very long array and may contains major spoiler about every vanilla contents until enoch (not containing about contact which is all about Aliens). https://drive.google.com/file/d/1gtBnr2vlkUwsj1NcULywyy0gcI95igLL/view?usp=sharing And the way to extract this easily: _ary = [] ; _tables = [ "languagecore_f", "a3\language_f", "a3\language_f_beta", "a3\language_f_bootcamp", "a3\language_f_epa", "a3\language_f_epb", "a3\language_f_epc", "a3\language_f_exp_a", "a3\language_f_exp_b", "a3\language_f_gamma", "a3\language_f_mod", "a3\language_f_warlords", "a3\languagemissions_f", "a3\languagemissions_f_beta", "a3\languagemissions_f_bootcamp", "a3\languagemissions_f_epa", "a3\languagemissions_f_epb", "a3\languagemissions_f_epc", "a3\languagemissions_f_exp_a", "a3\languagemissions_f_gamma", "a3\language_f_kart", "a3\languagemissions_f_kart", "a3\language_f_curator", "a3\language_f_heli", "a3\languagemissions_f_heli", "a3\language_f_mark", "a3\language_f_mp_mark", "a3\languagemissions_f_mark", "a3\languagemissions_f_mp_mark", "a3\language_f_exp", "a3\languagemissions_f_exp", "a3\language_f_argo", "a3\language_f_patrol", "a3\languagemissions_f_patrol", "a3\language_f_destroyer", "a3\language_f_jets", "a3\language_f_sams", "a3\languagemissions_f_jets", "a3\language_f_orange", "a3\languagemissions_f_orange", "a3\language_f_tacops", "a3\languagemissions_f_tacops", "a3\language_f_tank", "a3\languagemissions_f_tank", "a3\language_f_enoch" ] ; { _ary = _ary + ((((preprocessfile (_x + "\stringtable.xml")) splitstring toString [10]) select {toLower _x find "<key id=" != -1}) apply {(_x splitString '"')#1}) ; } forEach _tables ; copyToClipboard ((_ary apply {str _x + ","}) joinString toString [10]) ;
  8. Just realized that I didn't included Argo and Curator, I'll fix this later today. Edit: Updated.
  9. The Statstics in Eden Editor, is detecting the Camera as a Comment which isn't should be.
  10. I think this just shouldn't be... Power Plant in 115070
  11. POLPOX

    About ARMA 3 'win' ending

    Welcome abord to the escape ship from Altis named “Forums” and bound for the future of Arma and BI! To answer your question, I give you a question: did you played Apex Protocol? If not... you better buy Arma 3 Apex and go to Tanoa!
  12. Intended since Arma 2.
  13. [ format [ "<t color='#FFD500' font='PuristaBold' size = '0.6'>%1</t> <t color='#FFFFFF' font='PuristaBold' size = '0.6'>%2</t>", localize _name,localize _text ],0,1.1,4,1,0,789 ] spawn BIS_fnc_dynamicText; localize "STR_01_N_1" will return some string you defined in your stringtable.xml, and if you need to join a string to a string, you can use + operator, format command and etc.
  14. inb4 contact files are out, just questions. Assuming contact contains props, functions, First Contact campaign and more, but what are restricted to non-owners? Can mission makers use props like Alien Ships to play only for Contact owners or everyone? Also, you guys said we can't test First Contact before the release date IIRC, and what about props? Can we test Alien Ships before the release date or not?
  15. Land_Radar_01_HQ_F's second floor, (when the building is facing 0 dir) northwestmost room's north window is floating, not sure other windows nor other buildings.
  16. Currently, the ENY is _this select 1 but not vehicle (_this select 1) so it'll show you CREWMAN, and WPN is currentWeapon of ENY and evaluated 3.5 seconds after you die, so this is why sometimes it says Binoculars kills you. This is something that bother me so I just made a MOD to fix this, but of course if these fix are implemented into vanilla game, would be always nice.
  17. Development Branch is up now! https://steamcommunity.com/sharedfiles/filedetails/?id=1752226275
  18. I considered to release next update when Arma 3 hits another Stable Branch update... but looks like it's far far away yet, so I'm planning to release Development Branch of Artwork Supporter as separate MOD(because it is heavily WIP yet and contains known and major bugs); please let me know your feedback when it's ready. Changelogs will be noted in Steam Workshop page(Not considered to note here instead) so watch the updates carefully, and welcome screen will pops up after every update. Posts will be made here, the Welcome Screen, Steam Workshop, Discord and Twitter when it's up. Note: it requires Development Branch of Arma 3 to run properly.
  19. No, Supporters already have Arma 3 Contact(So you've... right?). Look for the folder Enoch in Arma 3 directory, that's Contact data. Or, maybe you're not in Dev-Branch. https://arma3.com/contact
  20. Arma 3 Karts - Released on 05/29/2014 - Decrypted on 10/23/2014 (147 days, almost 5 months) Arma 3 Apex - 07/12/2016 - 02/09/2017(partly decrypt) - 11/20/2017(full decrypt) (496 days, almost 16 months) Arma 3 Jets - 05/16/2017 - 03/19/2018 (307 days, almost 10 months) Arma 3 Laws of War - 09/08/2017 - 03/19/2018 (192 days, almost 6 and half months) Arma 3 Tanks - 04/11/2018 - 04/29/2019 (383 days, almost 12 and half months) Rough research so might not accurate. You should consider to take half through a year to see what's inside.
  21. I'm really not sure if this is only for me but, since fn_respawnNone.sqf uses worldName to show the map name, so the Singleplayer death screen will show you ENOCH when you're dead. I feel this is awkward and I think it should show us 000000 \ LIVONIA on the screen. Offtopic though, same goes for Weferlingen.
  22. Few questions about Arma 3 Contact and Dev-Branch. What's the ETA of other contents (weapons, vehicles, units and etc)? TBA? Will update frequency of Dev-Branch increase during development of Contact or not? Where did furnitures of Livonia go? Did the UFO took everything just like Altis? Also, is there any plan to add DayZ and Chernarus-styled furnitures? So far, I'm loving Livonia. That's really cool terrain. Feedback?: PO-30 Wrecks have no hiddenSelections[], is this intended?
  23. Nope, literally no problem is reploduced. What MODs you're using?
  24. ...And how do you calling it? The script itself has no problem at all and I just tested it and also no problem at all. Does this mean when you shoot an arm, “visually” damaged parts are reset to normal state and only arm is damaged?
×