Skip to content

Commit

Permalink
Merge pull request #62 from EvenTorset/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
EvenTorset authored Sep 13, 2024
2 parents 408692b + 44ee65d commit 13d45e6
Show file tree
Hide file tree
Showing 23 changed files with 942 additions and 143 deletions.
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## [16.0.0] - 2024-09-13

- Named and documented action 800: `ParticleForceCollision`. This enables collision with the full 3D environment for regular particles, but also causes the game to crash if a particle despawns. It is most likely an unfinished action, and it only exists in AC6, where it's used just once, in an effect that also causes the game to crash. It seems very stable as long as the particles don't despawn, though.
- The `valueAt` method on properties should now give the correct value for sequence properties and component sequence properties with keyframes that are out of order. These properties can be considered invalid in some sense, but they are still functional in-game, and this method should now reflect that.
- Any keyframes that are out of order, i.e. their position is less than the position of the previous keyframe, are now ignored entirely, unless the property does not loop and the given argument is greater than the duration of the property, in which case the last keyframe's value is always returned, no matter what its position is.
- Sequence properties and component sequence properties no longer automatically sort their keyframes.
- This allows these properties to be written with their keyframes out of order, which means that reading and then writing an FXR file with such a property no longer has a chance to break that property because of the different keyframe order.
- Sorting the keyframes can still be done using the `sortKeyframes` and `sortComponentKeyframes` methods on sequence properties and component sequence properties respectively, and these methods have been changed to return the property they were called on to make them more convenient.
- Fixed the brightness of point lights when converted to or from DS3. Hopefully it's actually fixed this time...
- Renamed `unk_ac6_f1_1` in actions 10008 and 10009 to `unk_ac6_f1_2`. The old name did not match the field's index.
- Fixed the argument for some properties:
- `color3` in `PointSprite` is now `ParticleAge` (*was `EffectAge`*)
- `lengthMultiplier` in `Line` is now `ParticleAge` (*was `EffectAge`*)
- `lengthMultiplier` in `QuadLine` is now `ParticleAge` (*was `EffectAge`*)
- `widthMultiplier` in `QuadLine` is now `ParticleAge` (*was `EffectAge`*)
- This was just a documentation error and should not affect any functionality.
- Updated the description for the `DataAction` class. It was very out of date.
- Updated the description for most color properties to mention if the values are clamped or not.

## [15.2.0] - 2024-09-01

- Added a `getResources` method to nodes. This does the same thing that the `FXR` method with the same name does, except it only lists resources used in the node it is called on, and optionally descendant nodes.
Expand Down Expand Up @@ -171,6 +190,7 @@
- External values 2000 and 70200 for AC6 have been documented thanks to lugia19.
- Fixed action 301 (EqualDistanceEmitter) missing a type for one of its fields, potentially causing issues when writing to DS3's structure.

[16.0.0]: https://github.com/EvenTorset/fxr/compare/v15.2.0...v16.0.0
[15.2.0]: https://github.com/EvenTorset/fxr/compare/v15.1.0...v15.2.0
[15.1.0]: https://github.com/EvenTorset/fxr/compare/v15.0.0...v15.1.0
[15.0.0]: https://github.com/EvenTorset/fxr/compare/v14.1.0...v15.0.0
Expand Down
69 changes: 48 additions & 21 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cccode/fxr",
"version": "15.2.0",
"version": "16.0.0",
"description": "JavaScript library for creating and editing FXR files for Dark Souls 3, Sekiro, Elden Ring, and Armored Core 6.",
"author": "CCCode",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions src/actions/10000.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ properties:
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1.
unk_ds3_p1_14:
type: ScalarValue
default: 1
Expand Down
2 changes: 2 additions & 0 deletions src/actions/10001.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ properties:
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1.
unk_ds3_p1_14:
type: ScalarValue
default: 1
Expand Down
6 changes: 4 additions & 2 deletions src/actions/10008.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ properties:
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1.
particleLength:
type: ScalarValue
default: 1
Expand Down Expand Up @@ -112,7 +114,7 @@ properties:
default: EmitterShape.Box
desc: |
Controls the shape of the particle emitter. See {@link EmitterShape} for more details.
unk_ac6_f1_1:
unk_ac6_f1_2:
field: int
emitterSize:
field: vec3
Expand Down Expand Up @@ -631,7 +633,7 @@ games:
fields1:
- texture
- emitterShape
- unk_ac6_f1_1
- unk_ac6_f1_2
- emitterSize
#
#
Expand Down
6 changes: 4 additions & 2 deletions src/actions/10009.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ properties:
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1.
particleLength:
type: ScalarValue
default: 1
Expand Down Expand Up @@ -113,7 +115,7 @@ properties:
default: EmitterShape.Box
desc: |
Controls the shape of the particle emitter. See {@link EmitterShape} for more details.
unk_ac6_f1_1:
unk_ac6_f1_2:
field: int
emitterSize:
field: vec3
Expand Down Expand Up @@ -631,7 +633,7 @@ games:
fields1:
- texture
- emitterShape
- unk_ac6_f1_1
- unk_ac6_f1_2
- emitterSize
#
#
Expand Down
15 changes: 15 additions & 0 deletions src/actions/10012.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,20 +49,35 @@ properties:
color: true
desc: |
Color multiplier.
Values in this will be clamped to the 0-1 range. To use values outside of this range, see {@link color3}.
see:
- color2
- color3
color2:
type: Vector4Value
default: [1, 1, 1, 1]
argument: EmissionTime
color: true
desc: |
Color multiplier.
Values in this will be clamped to the 0-1 range. There is no equivalent property with unrestricted values based on the emission time of the particle, but {@link color3} is still multiplicative with this and can be used to scale the values indirectly.
see:
- color1
- color3
color3:
type: Vector4Value
default: [1, 1, 1, 1]
argument: ParticleAge
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1. If you want values to be clamped to the 0-1 range, see {@link color1}.
see:
- color1
- color2
alphaFadeThreshold:
type: ScalarValue
argument: ParticleAge
Expand Down
21 changes: 18 additions & 3 deletions src/actions/10015.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,21 +136,36 @@ properties:
argument: ParticleAge
color: true
desc: |
Color multiplier for the particle.
Color multiplier.
Values in this will be clamped to the 0-1 range. To use values outside of this range, see {@link color3}.
see:
- color2
- color3
color2:
type: Vector4Value
default: [1, 1, 1, 1]
argument: EmissionTime
color: true
desc: |
Color multiplier for the particle.
Color multiplier.
Values in this will be clamped to the 0-1 range. There is no equivalent property with unrestricted values based on the emission time of the particle, but {@link color3} is still multiplicative with this and can be used to scale the values indirectly.
see:
- color1
- color3
color3:
type: Vector4Value
default: [1, 1, 1, 1]
argument: ParticleAge
color: true
desc: |
Color multiplier for the particle.
Color multiplier.
Values in this are unrestricted and can go above 1. If you want values to be clamped to the 0-1 range, see {@link color1}.
see:
- color1
- color2
unk_er_p1_16:
type: ScalarValue
unk_er_p1_17:
Expand Down
4 changes: 4 additions & 0 deletions src/actions/11000.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ properties:
desc: |
Controls the diffuse color of the light.
Values in this are unrestricted and can go above 1.
If {@link separateSpecular} is disabled, this also controls the specular color of the light.
specularColor:
type: Vector4Value
Expand All @@ -24,6 +26,8 @@ properties:
desc: |
Controls the specular color of the light.
Values in this are unrestricted and can go above 1.
If {@link separateSpecular} is disabled, this property is ignored and {@link diffuseColor} controls both the diffuse as well as the specular color.
diffuseMultiplier:
type: ScalarValue
Expand Down
2 changes: 2 additions & 0 deletions src/actions/131.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ properties:
color: true
desc: |
Color multiplier for the particles emitted from this node.
Values in this are unrestricted and can go above 1.
uniformScale:
field: bool
default: false
Expand Down
17 changes: 16 additions & 1 deletion src/actions/600.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,35 @@ properties:
color: true
desc: |
Color multiplier.
Values in this will be clamped to the 0-1 range. To use values outside of this range, see {@link color3}.
see:
- color2
- color3
color2:
type: Vector4Value
default: [1, 1, 1, 1]
argument: EmissionTime
color: true
desc: |
Color multiplier.
Values in this will be clamped to the 0-1 range. There is no equivalent property with unrestricted values based on the emission time of the particle, but {@link color3} is still multiplicative with this and can be used to scale the values indirectly.
see:
- color1
- color3
color3:
type: Vector4Value
default: [1, 1, 1, 1]
argument: EffectAge
argument: ParticleAge
color: true
desc: |
Color multiplier.
Values in this are unrestricted and can go above 1. If you want values to be clamped to the 0-1 range, see {@link color1}.
see:
- color1
- color2
rgbMultiplier:
type: ScalarValue
default: 1
Expand Down
Loading

0 comments on commit 13d45e6

Please sign in to comment.