Data Realms Fan Forums http://45.55.195.193/ |
|
Control over MOPixels http://45.55.195.193/viewtopic.php?f=73&t=45719 |
Page 1 of 2 |
Author: | EditorRUS [ Wed May 28, 2014 2:59 pm ] |
Post subject: | Control over MOPixels |
I want to reproduce M.I.D.A.S. from Front Mission 3: In order to make that, i need to know how to "select" everything in some circular area and delete (replace to air, i guess). Of course i can solve the problem by creating round(6.28*r) bullets and adjusting their direction and speed, and blah-blah-blah, but: 1. I need to create special effect of explosion too (huge fireball). 2. I think that will lag as hell. Creating thousands of bullets a tick will never be fast. Let me repeat myself: i need to have _all the ground, actors, creatures_ to be destroyed without leaving a trace in some area. Slowvy and nicely. And without lags. The rays aren't a problem, though. It's just some bullets with infinity trace length and with certain speed. I don't think there will be some problems with making them. So... 1. Fireball starts to grow with low speed while rays are shot at some point and stopped thus the trace won't disappear. 2. Fireball starts to grow faster and faster, while rays go less far, but they still exist. 3. Fireball consumes rays and their trace disappear. 4. Fireball suddenly disappears and cause gravitic pull far further, than fireball radius. 5. End. Other idea is seismic and shock waves. First one spread through the ground, causing some MOPixels to be thrown in the air and actors too (depending from strnegth and mass). But i want to make them more realistic, so, they should lose their strength as they go further. The same for shockwaves, but those spread through the air instead of the ground. In order to make that i need to know how to get what item or terrain at some coordinate at map. Strange, i haven't found something like Code: pixel_info = map[x][y] |
Author: | Sims_Doc [ Wed May 28, 2014 3:26 pm ] |
Post subject: | Re: Control over MOPixels |
On the subject of Front Mission* Will you be doing anything else? say like the later releases, i did enjoy Front Mission: Evolved. |
Author: | EditorRUS [ Wed May 28, 2014 5:12 pm ] |
Post subject: | Re: Control over MOPixels |
I don't think so. To be honest i always try to reproduce M.I.D.A.S. when i start to learn modding of something. That's pretty hard task, though. But... CC definetaly needs to have METHAN wanzers, lol. |
Author: | CaveCricket48 [ Thu May 29, 2014 12:06 am ] |
Post subject: | Re: Control over MOPixels |
You can cleanly remove actors by setting them to ToDelete = true. Like, Code: actor.ToDelete = true; To clear terrain, you'll need to position an MO to where you want terrain to be removed, and then do Code: yourMO:EraseFromTerrain(); |
Author: | EditorRUS [ Thu May 29, 2014 1:50 am ] |
Post subject: | Re: Control over MOPixels |
Quote: To clear terrain, you'll need to position an MO to where you want terrain to be removed, and then do Wait a minute... there's no way to do that without positioning? Moreover, what to do with seismic waves then? They should rip the ground apart. |
Author: | Foa [ Thu May 29, 2014 6:16 am ] |
Post subject: | Re: Control over MOPixels |
If you can't do it directly, you are going to have to do it indirectly. At best I can think of is that you need to progressively scan each surface (interface of terrain to open air) of /x/ free space, and spreay a few particles of /y/ material, or just spawn some invisible/non-colliding MOPixels at the surface to you get the whole ground-ripping. That, or use this as the basis of the ground ripping, set aside the fact that you'd probably want to replace the gibs with something else. As far as the lasers go, you could just gib the MOIDs that intersect the laser, and then just delete the resultant MOPixels, or so on. |
Author: | EditorRUS [ Thu May 29, 2014 9:40 pm ] |
Post subject: | Re: Control over MOPixels |
Quote: At best I can think of is that you need to progressively scan each surface (interface of terrain to open air) of /x/ free space, and spreay a few particles of /y/ material, or just spawn some invisible/non-colliding MOPixels at the surface to you get the whole ground-ripping. Not bad, but it won't work for higher than fireball buildings because i can't just spawn these particles on top of it. But here's another idea, though. Instead of scanning terrain and spawning particles on top of it, i can just spawn round(6.28*r) MOPixels with infinite sharpness and HitsMO=1 on almost the edge of fireball and accelerate them by applying force from the center. And after a tick or two i should scan radius for MOPixels and delele the all (including gibs, loose terrain and so on). So, for radius 1000 i have to spawn upto 6280 particles per tick. |
Author: | Foa [ Fri May 30, 2014 8:54 am ] |
Post subject: | Re: Control over MOPixels |
What you would do is destroy everything forever, because infinite sharpness, and thousands of particles (begetting many thousands more) would not only destroy the frame rate, but also not have the intended effect that you are looking for. At best, you'd completely obliterate the map, a la map wipe; at worst, you'll be left with a strange mess that is more insubstantial than oaths of office, that no one would really like. Also, actively updating the velocity of a particle is annoying, tedious, and laggy business on the scale you are thinking of, but hey at least you can simply overwrite an entity's velocity, no need to make them accelerate. |
Author: | Arcalane [ Fri May 30, 2014 2:32 pm ] |
Post subject: | Re: Control over MOPixels |
In a slightly less fanciful way; there is a fairly low cap on the number of active MOs/objects in the game right now. This is known as the 'MOID Limit' and is, I think, somewhere in the region of 255? I think anything with "HitsMOs = 1" counts against this limit. If there are too many active MOs, the game inevitably starts deleting existing ones to make room, as I recall. Sometimes, 'deleting' includes 'gibbing spectacularly'. Now, if you want to quickly clear out a large, specific radius area, what you could try doing is spawning a single massive object that will collide with (and thus eradicate) all terrain underneath it. But this will do really weird stuff when actor collisions are involved if you don't time their deletion properly. It's hacky but it would probably work better than spawning vast quantities of particles. |
Author: | Arcalane [ Fri May 30, 2014 4:29 pm ] |
Post subject: | Re: Control over MOPixels |
Interesting. Anyway, for gravity, you want GlobalAccScalar, which can be set on almost any MO the same way as Mass. Setting this to 1 means normal gravity behaviour; setting it to 0 means it's completely unhindered/unaffected by gravity. |
Author: | Foa [ Fri May 30, 2014 8:58 pm ] |
Post subject: | Re: Control over MOPixels |
Arcalane wrote: If there are too many active MOs, the game inevitably starts deleting existing ones to make room, as I recall. Sometimes, 'deleting' includes 'gibbing spectacularly'. Mostly it's collision errors, which do tend towards gibbing, and erroneous wounds from the otherside of creation CaveCricket48 wrote: You can cleanly remove actors by setting them to ToDelete = true. Like, Code: actor.ToDelete = true; To clear terrain, you'll need to position an MO to where you want terrain to be removed, and then do Code: yourMO:EraseFromTerrain(); |
Author: | EditorRUS [ Fri May 30, 2014 10:43 pm ] |
Post subject: | Re: Control over MOPixels |
Hm... Quote: To clear terrain, you'll need to position an MO to where you want terrain to be removed, and then do Can i use MO.scale to do that? |
Author: | EditorRUS [ Sat May 31, 2014 12:07 am ] |
Post subject: | Re: Control over MOPixels |
Using EraseFromTerrain works, but two problems: 1. Scaling MOSRotating is REALLY lagging. 2. It deletes square, not circle. |
Author: | CaveCricket48 [ Sat May 31, 2014 2:09 am ] |
Post subject: | Re: Control over MOPixels |
Use an MO shaped like a circle. Also, it's MOs that have GetsHitByMOs = true that count towards the MOID limit. Not HitsMOs. |
Page 1 of 2 | All times are UTC [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |