• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
2.1.0
  • PortraitBuilder 2.1.0 is now released, and has mod support !
    It also contains some UI and performance improvements.
    See the first post for download and installation instruction.

    Mods were tricky because they may contain bad syntax, empty or corrupted files, etc.
    I've tested with a few of them, but feel free to report issues, by comparing the rendering in-game and with PortraitBuilder.
    In particular I've noticed an issue in BLG with sprite betterlookinggarbs\gfx\characters\shared\imprisoned.dds, which seems corrupted (couldn't test if it's also broken in-game).

    For next release, I'm planning to add support for religious & merchants clothing as well as government frames, probably via a dropdown with an hardcoded list of vanilla governments.

    Changelog:
    Version 2.1.0 - 2016-06-25

    UI:
    - Use better icon
    - Add DLC/mod tabs
    - Add "Toggle All" and "Reload" buttons for content.
    - Keep selected portraitType when enabling DLC/mod
    - Use 2 tabs instead of 3, and move hair/eye color to DNA tab
    - Move PORTRAIT_ prefix as a label for portraitType dropdown
    - Add d/p codes in labels
    - Add warning for properties overridden via portrait_properties.txt
    - Rename Earl to Count
    - Add dropdown for Player (p11), used in certain mods
    - Disable dropdown when a dna/property is not used by any portraitType layer, rather than adding index 0-26.

    Engine:
    - Split DLCs so they can be activated separately
    - Support rendering from multiple mods
    - Parse vanilla/DLCs/mods portrait data only once during startup
    - Avoid unzipping DLCs at startup if not needed (use Reload button to force refresh)
    - Filter files to unzip from DLC, to reduce loading time & size.
    - Allow content to only contain sprites in gfx/characters/, without portraitTypes
    - Fix bug were duplicate portraitType definition would not override previous one (byzantinegfx)
    - Fix load order of assets that was using vanilla instead of mod
    - Optimize memory usage, by unloading assets when reloading/unchecking content
    - Catch parsing failures at spriteType / portraitType level

    Code re-factoring:
    - Simplify code structure within a single project
    - Separate class concerns to have smaller files
    - Adapt class namespaces to match new folder structure
    - Replace redundant CustomFlags by proper characteristics

    Would love mod portrait support though.

    Done ! :)
     
    • 4
    Reactions:
    2.2.0
  • PortraitBuilder 2.2.0 is now released !
    See the first post for download and installation instructions.

    It adds support for governments, with the rendering of theocracy and merchant republic special clothing.
    List of governments is hardcoded from vanilla (no parsing of government files / frame_suffix).

    It also adds a "file watcher" on activated mods: changing any portraits .gfx, .dds assets or external offsets .txt, will trigger a refresh of mod data and re-draw of portrait.
    Implementation is basic (whole mod data gets refreshed), but performances seem OK.

    With this done, I'm hoping PortraitBuilder has all the important stuff in, and I don't plan any other releases, except for potential bugfixes or compatibility with a future vanilla patch.
    Feel free to suggest other features though, if you feel something is missing !

    Full changelog:
    Version 2.2.0 - 2016-07-03

    UI:
    - Add government dropdown
    - Add some tooltips to UI controls

    Engine:
    - Implement override logic for religious and merchant special sprites
    - Add file watchers to mod content, in order to auto-refresh in case of changes
    - Add some safeties to .mod file parsing
    - Add unhandled exceptions handlers in application

    Code re-factoring:
    - Upgrade dependencies and use NuGet to retrieve them
    - Switch DDS lib from DevIL to CSharpImageLibrary
    - Generate .pdb to always have line numbers for exceptions
    - Use Costura.Fody to embed dependencies in assembly

    PortraitBuilder-2.2.0.jpg


    Sure thing, that would work.

    Done, using file watchers on active mods !

    Hello ! your software seems to be great but it doesn't launch for me i check the log files and i do not found any errors. Can you help me ?:)

    Based on your logs I couldn't identify the cause for certain, but I've made the .mod files parsing a bit more robust.
    I've also added line numbers in exception stacktrace (.pdb file), so that if issue is still there with new version, new logs should allow to narrow it down !
     
    Last edited:
    • 4
    Reactions:
    2.3.0
  • PortraitBuilder 2.3.0 is now released (see the first post for download and installation instructions).

    Changelog:
    Version 2.3.0 - 2016-09-03

    - Support for mask (p12) and eyepatch (p13) new characteristics
    - Add dropdowns for head (p2), d5 and d10 characteristics, in case used by mods
    - Disable dropdown if sprite has only 1 frame (e.g. p2)
    - Remove randomization when dna/properties 'letter' is 0 , and use index 0 instead
    - 'letter' 0 is now used in output dna/properties strings with index 0, instead of (max - 1)

    PortraitBuilder-2.3.0.jpg
     
    Last edited:
    • 3
    Reactions:
    2.4.0
  • PortraitBuilder 2.4.0 is now released (see the first post for download and installation instructions).

    It brings support for the new societies clothing override mechanism, and some bugfixes !

    Changelog:
    Version 2.4.0 - 2017-04-07

    - Support for clothing propertyType override, replacing sprites used by culture-indexed layers (c0->c5)
    - Support for a variable number of properties, with dynamic creation of characteristic comboboxes in the UI
    - Improve error reporting when parsing portraits.gfx when parsing string into integer or byte
    - Allow non-ordered flags in propertyType layers
    - Fix randomization that was never using the last frame
    - Solve some eye-related rendering issues caused by attempting to read pixels outside of the width/height of the source image

    PortraitBuilder-2.4.0.jpg



    @Romulien I'm using 2.3.0, and for some reason, eye colors are not showing up properly in the preview for most portraits gfx (westerngfx, norsegfx). The blonde/brown/blue eye colors are only appearing properly for certain DLC gfx like celticgfx, easternslavicgfx, and ugricgfx. Is something amiss?

    This is now fixed !

    The latest version of this tool allows you to check which mods you are using and it incorporates any custom cultures, graphic assets, etc. that might be used. However, when you choose to do so you get the green lines in the portraits.

    Could you please check if things have improved on Win7 with this new version ? It may have had the same cause as the eye colors frame issue (at least I hope) !
     
    2.5.0
  • PortraitBuilder 2.5.0 is now released (see the first post for download and installation instructions).

    It is a minor update for CK2 2.8, which adds the ability to randomize characteristics selectively and few minor things.

    Changelog:
    Version 2.5.0 - 2018-01-27

    - Add labels for new vanilla 2.8 properties (p14 makeup, p15 makeup2, p16 jewelry and p17 immortality)
    - Add new 2.8 government frames
    - Allow selection of characteristics to update when clicking randomize button
    - Read mod directory from userdir.txt file in Steam CK2 folder, if any
    - Prevent crash when mod directory doesn't exist
    - Support unquoted values for spriteType name and texturefile
    - Show incompatible mods as disabled in the list, with the reason in tooltip (archived mods, no portrait data or invalid path)

    PortraitBuilder-2.5.0.jpg