Nico de Poel
01a36906a9
Tweaked split tracer trail again, which is a little bit closer to the proper effect now.
5 years ago
Nico de Poel
612dbca12a
Improved particle trail management: instead of instantiating many tiny particle effects for each segment of the trail, instantiate a single particle trail effect and attach it to the entity. The particle system is made looping and simulates in world space, to have it create a proper trail. Particle trails are destroyed with a delay when detached from their entity, so that the particles have the time to finish their simulation.
5 years ago
Nico de Poel
eefef2097e
Implemented split tracer trails for e.g. Scrag projectiles using Unity's radial velocity. Probably the least accurate particle effect recreation so far, but this one is very tricky to accurately emulate as it is in Quake.
Also fixed the min/max random color thing for other trails. If we want to pick a random static color between two extremes, then we need to use min/max and not a gradient.
5 years ago
Nico de Poel
5b99d8374f
Also implemented slight blood and vore ball particles trails
5 years ago
Nico de Poel
4c648a1f5a
First version of particle trail, supporting rocket trail, smoke trail and blood trail.
5 years ago
Nico de Poel
f668c97b52
Reworked the entity animation system, so that blending between poses is pulled fully to the Unity side. With this we can detect the situation where we are trying to blend from one animation sequence to another. Since this is not possible in UniQuake due to each animation sequence being converted to a separate mesh, we instead hold the poses for a frame as if we're not using animation lerping at all. This fixes the occasional animation glitch where the previous sequence would be animated a bit too far, which can be very noticeable on non-looping animation sequences (e.g. the Chthon's rise animation).
5 years ago
Nico de Poel
05a4de89a1
Minor things that have accumulated over time
5 years ago
Nico de Poel
d73d86ce11
Keep hold of surface flag when converting brush model surfaces, and use this to identify liquid surfaces during material creation. Liquids now have their own material with the option to apply alpha blending depending on the type of liquid.
Also includes some first bits of particle systems. Not actually used yet.
5 years ago
Nico de Poel
59a64473b0
Marshal only one polygon per brush model surface for conversion into a Unity mesh. Any subsequent polygons are pre-tessellated versions meant for the water warping effect, which we won't need as this will be handled by GPU tessellation. Fixed garbled water surface caused by having two polygon meshes overlapping.
5 years ago
Nico de Poel
0899855b51
Updated project to Unity 2020.3.14 and fixed some minor issues after upgrade
5 years ago
Nico de Poel
c5cefca10d
Minor fixes for compatibility issues with QRally:
- Handle null frame names when matching with animation regex
- Default to skin 0 when the provided skin number is out of range
- Convert polygon vertices directly to Unity coordinate positions
5 years ago
Nico de Poel
c9271a7772
Cache brush surface texture numbers instead of re-marshaling them on each access. Fixes textures getting mixed up on brush model entities after map switch.
5 years ago
Nico de Poel
c12ff0c503
Organize alias model textures into skins and animation frames
5 years ago
Nico de Poel
fdaee3321f
Start on organization of textures into texture sets, and implemented a basic test for alias model entities, which are now properly textured including fullbright (emissive) textures.
5 years ago
Nico de Poel
a52b497ccb
Reworked entity renderer assignment: both MeshRenderer and SkinnedMeshRenderer are created at the same time on init, and are enabled/disabled on demand.
Also: destroy overridden textures, and disable lerping on alias model animator by default.
5 years ago
Nico de Poel
a2b8d32c00
Implemented automatic animating of group frame alias models, using the existing AliasModelAnimator component.
5 years ago
Nico de Poel
5390483b0b
Upload non-world brush models and allow them to be assigned to entities. It's not terribly pretty but it (mostly) works. There still seems to be an issue with texture assignment on subsequent map loads.
5 years ago
Nico de Poel
883bc26026
Keep mesh data for alias models in CPU RAM (i.e. read/write) because apparently that's necessary to make them visible on skinned mesh renderers in standalone builds.
5 years ago
Nico de Poel
c14faf2666
Dynamically create either MeshRenderer/MeshFilter or SkinnedMeshRenderer based on whether the model being assigned is animated or not. Gets rid of warnings on un-animated SkinnedMeshRenderers, and removes unnecessary components on brush model entities.
5 years ago
Nico de Poel
0dc5c1a14b
Create world submodel game objects and link them to entities, allowing doors and buttons and such to work properly. Also don't bother linking the view entity to a model.
5 years ago
Nico de Poel
66c62001d0
Squashed a bunch of bugs in the alias model animation system and integrated transform/animation updates into the alias model lerping system. Entities are now correctly animated, yay!
5 years ago
Nico de Poel
e6fd7b83ae
First bits of entity logic: assign alias models, update transform and animation, remove entity. Still lots of problems to solve, but it's starting to do something.
5 years ago
Nico de Poel
f944b7d4ff
Moved some files around
5 years ago