Skip to content

Commit

Permalink
update notes for 0.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobharder committed Oct 26, 2021
1 parent 1fd9444 commit 56a8000
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 59 deletions.
63 changes: 36 additions & 27 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,50 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how

## [Unreleased]

- `<Materials>` and `<MaterialLODInfos>` import
- issue with yellow metal texture from Blender export
- support and strip comments from `.cfg`, `.ifo`
- replace Cesium glb/gltf conversion with much simpler https://github.com/najadojo/gltf-import-export
- Right-click `Import Materials`. Reorders material list and fills some gaps.
- support glTF binary in `gltf` converter
- FC GUID hover
- glTF
- support glTF binary in `gltf` converter
- add `Convert to glTF JSON`
- one-click preview of RDM using glTF Tools extension
- Import
- Right-click `Import Materials`. Reorders material list and fills some gaps.
- `<Materials>` and `<MaterialLODInfos>` import
- Outline
- ConfigType LIGHT
- Cloth model/materials in outline (new world residence tier2)
- UnevenBlocker in outline (and unkown elements on the same level)
- better outline behavior when writing new tags
- Editing
- support and strip comments from `.cfg`, `.ifo`
- FC GUID hover
- Enable XML formatter
- Details for feedback definition
- ConfigType LIGHT
- Enable XML formatter
- Cloth model/materials in outline (new world residence tier2)
- LOD 1-4 generated even if it's not in the model?
- UnevenBlocker in outline (and unkown elements on the same level)
- <Item>*.cfg</Item> in assets.xml as regex instead of individual entries
- better outline behavior when writing new tags
- .cfg.yaml should consider .cf7 as well
- import fc from gltf / RotationY
- empty line in .cf7 endless loop in annofcconverter
- no tangent warning in channel output
- error handling for invalid xml files
- ```yaml
- xpath: //Config/Particles/Config[Name="particle_smoke2"]/Transformer/Config
FileName: ''
```
- Issues
- issue with yellow metal texture from Blender export
- Show strong warning when there's no tangent information on the mesh
- error handling for invalid xml files
- ```yaml
- xpath: //Config/Particles/Config[Name="particle_smoke2"]/Transformer/Config
FileName: ''
```
leads to `Cannot read property 'type' of undefined`.
- Internals
- replace Cesium glb/gltf conversion with much simpler https://github.com/najadojo/gltf-import-export

## [0.3.0]

### Added

- Right-click `Convert to RDP XML` from `.rdp`
- Right-click `Convert to RDP` from `.rdp.xml`
- `rdpxml` converter for building from RDP XML
- `.rdp.xml` <> `.rdp` conversion for annomod.json and right-click menus.
- `.cfg.yaml` > `.cfg`, `.ifo`, `.fc` generation for annomod.json and right-click menus.
- Import CFG `FILE` sections with `Import PROPs from glTF`.
- Import FC `Dummy` position and orientation with `Import from glTF`.
- Don't overwrite files with `Convert to ..` context menu commands
- Hover info for asset keywords like `UpgradeList` and `ResidenceUpgrade`
- Auto-complete after typing `GUID='`
- Import `FILE` sections with `Import PROPs from glTF`.

### Changed

- Included AnnoFCConverter fix to deal with ending empty lines in .cf7

## [0.2.0]

Expand Down
118 changes: 87 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,22 @@ Anno 1800 is a trademark of Ubisoft Entertainment in the US and/or other countri

## Features

- Command `F1` > `Build Anno Mod`: build project using `annomod.json` description.
- Command `F1` > `Build Anno Mod`: automatically build project using `annomod.json` description.
- PNG to DDS conversion with LOD generation
- glTF to RDM conversion with LOD and [animation](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-models.md) extraction
- RDP XML to RDP conversion ([particles](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-particles.md))
- Animated glTF to RDM conversion with LODs (see [working with animation](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-models.md))
- Particle RDP XML to RDP conversion (see [working with particles](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-particles.md))
- Generate variants of IFO, CFG and FC using templates
- Hover info and auto-conversion for Anno GUIDs.
- Anno-specific outlines: `.cfg`, `.ifo`, `.cf7`
- Anno-specific syntax highlighting: `.cfg`, `.ifo`, `.cf7`
- Right-click `Import from glTF` (targets: `.cfg`, `.ifo`)
- Anno-specific outlines, highlights and auto-complete: `.cfg`, `.ifo`, `.cf7`
- Right-click `Import from glTF` (targets: `.cfg`, `.ifo`, `.cf7`)
- Right-click `Convert to` menus
- AnnoFCConverter `.cf7` to/from `.fc`
- rdm4 `.rdm` to glTF Binary
- FileDBReader `.rdp` to/from `.rdp.xml` CDATA as is and simplified
- texconv `.dds` to `.png`

Read all the [Feature Details](#feature-details) below.

### GUID Hover and Auto-conversion Preview

![](./doc/guid-utils.gif)
Expand All @@ -30,8 +32,6 @@ Anno 1800 is a trademark of Ubisoft Entertainment in the US and/or other countri

![](./doc/quickintro.gif)

Read all the [Feature Details](#feature-details) below.

## Extension Settings

* `anno.modsFolder`: path to your `mods/` folder. Available as `${annoMods}` in `annomod.json`. Not required if you don't use the variable.
Expand All @@ -57,12 +57,7 @@ Read all the [Feature Details](#feature-details) below.
## Requirements

Some features like .fc conversion rely on external applications that run only on Windows.
Native functions like outlines, highlighting work with WSL as well though.

## Known Issues

I'm currently in a trying out phase of development.
There are quite a few things that may be quirky or break easily.
Native functions like outlines, highlighting work with Linux/WSL as well though.

## Credits

Expand All @@ -74,34 +69,94 @@ A big thanks goes to the external projects I'm using for this extension:
- texconv - https://github.com/microsoft/DirectXTex
- gltf-pipeline - https://github.com/CesiumGS/gltf-pipeline

## Release Notes
## Release Notes / Known Issues

### 0.3.0

Particle animations!
Particle animations and stuff!

See [CHANGELOG](./CHANGELOG.md)
See changes and known issues in [CHANGELOG](./CHANGELOG.md)

## Feature Details

* [Import from glTF](#import-from-gltf)
* [GUID Hover and Auto-correct](#guid-hover-and-auto-correct)
* [Build Anno Mod](#build-anno-mod)
* [Working with Models](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-models.md)
* [Working with Particles](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-particles.md)
* [Create variants from templates](#create-variants-from-templates)
* [GUID hover and auto-correct](#guid-hover-and-auto-correct)
* [Build Anno mod](#build-anno-mod)
* [Working with models](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-models.md) (separate pag)
* [Working with particles](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-particles.md) (separate page)

### Import from glTF

Node names must start with `prop_` or `particle_`. New nodes will be added, existing ones updated and nodes in .cfg but not the model marked with `_removed`.

The following items will be imported then:
- Position, Rotation, Scale
- Props only: mesh name as `FileName` if it ends with `.prp`. Don't worry about Blender-style `.001`, `.002`, ... endings. They will be ignored.
- Unfortunately the mesh name is limited in length. It will not some prop files.

Vertices from a mesh/node named `ground` are used to importer `BuildBlocker` and `DECAL` size.
Put objects and name them as described in your glTF file to import.
Examples: [Sources on GitHub](https://github.com/jakobharder/anno-1800-jakobs-mods/)

CFG file imports:

- `PROP`s with prefix `prop_`
- Position, Rotation, Scale
- mesh name as `FileName` if it ends with `.prp`.
Don't worry about Blender-style `.001`, `.002`, ... endings. They will be ignored.
- Will be added if they don't exist.
- `PARTICLE`s with prefix `particle_`
- Position, Rotation, Scale
- `FILE`s with prefix `file_`
- Position, Rotation, Scale
- mesh name as `FileName` if it ends with `.cfg`.
- Will be added if they don't exist.
- `DECAL` with name `ground`
- Extents is calculated from the first 4 vertices of that object (use a plane).

Entries not existing in the model will be marked as `_removed`.

CF7 file imports:

- `Dummies/i` with prefix `fc_`
- Position, Orientation, RotationY
- ⚠ Note: Matches will happen without the prefix.
E.g. `fc_Dummy0` from the model will be matched with `Dummy0` in the CF7 file.
This is to avoid the need to rename items in the CF7 file.

IFO file imports:

- BuildBlocker with name `ground`
- Extents is calculated from the first 4 vertices of that object (use a plane).
Rounded to .5

### Create Variants from Templates

Write a yaml file like below and name it `.cfg.yaml`.
IFO, FC/CF7 and CFG files will be generated accordingly.
Files are copied if they have the same name as the source.
Modifications are currently only supported in IFO and CFG files.

If you have `townhall.cfg`, `townhall.cf7` and `townhall.ifo`, then a `townhall_1.cfg.yaml` leads to generated `townhall_1.cfg`, `townhall_1.fc` and `townhall_1.ifo`.

Examples: TBD

```yaml
variant:
source: townhall.cfg
modifications:
- xpath: //Config/Models/Config/Materials/Config[Name="building"]
cModelDiffTex: data/jakob/buildings/townhall/maps/townhall_bluish_diff.psd
- xpath: //Config/Models/Config/Materials/Config[Name="roof"]
cModelDiffTex: data/jakob/buildings/townhall/maps/townhall_bluish_diff.psd
- xpath: //Config/Models/Config[Name="top"]
FileName: data/jakob/buildings/townhall/rdm/townhall_2_lod0.rdm
# disable smoke
- xpath-remove: //Config/Particles/Config[Name="particle_smoke1"]
# move flag 1
- xpath: //Config/Files/Config[Name="file_flag1"]/Transformer/Config
Position.y: 6.97816
ifo:
# adjust hitbox to new height
- xpath: //Info/IntersectBox[Name="Hitbox2"]
Position:
yf: 4.34346
```
### GUID Hover and Auto-correct
### GUID Hover and Auto-conversion
Hover works on GUIDs in XPath strings and in the tags `Ingredient`, `Product`, `ItemLink`, `Good` or `GUID`. Hover is mostly limited to products, buildings, production chains, items and effect pools.

Expand Down Expand Up @@ -162,7 +217,8 @@ Converter actions:
- `animPath`: move anim to another folder, e.g. `anim`. Default is no change.
- `modinfo`: generate `modinfo.json`.
- `content_en`: generate `content_en.txt` file with same content as `modinfo.Description.English`.
- `rdpxml`: convert .rdp.xml into .rdp (using [FileDBReader](https://github.com/anno-mods/FileDBReader) and custom post-processing)
- `rdpxml`: convert .rdp.xml into .rdp. [More on a separate page](https://github.com/anno-mods/vscode-anno-modding-tools/blob/main/doc/working-with-particles.md)
- `cfgyaml`: generate CFG, IFO and FC files. [More in a separate chapter](#create-variants-from-templates).

Out folder variables:

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "anno-modding-tools",
"displayName": "Anno Modding Tools",
"description": "Modding tools for Anno 1800",
"version": "0.3.0-alpha",
"version": "0.3.0",
"publisher": "JakobHarder",
"repository": {
"type": "git",
Expand Down

0 comments on commit 56a8000

Please sign in to comment.