Git Changelog PFM (23-03-31) Features "Base Properties" item in actor editor is now hidden for components that have no base properties ( 58ad221 ) actor bones now show in viewport when hovering over a body part ( 254a3c2 ) actor property values are now initialized from project after main component initialization and before entity spawn ( e6d9b8d ) add "OnChannelAdded" and "OnChannelRemoved" callbacks for animation manager ( 3028942 ) add "Save as Copy" menu bar option ( 14219d1 ) add additional tooltip information to actor editor constraint icons ( 2e721f8 ) add additional version information ( c04a956 ) add AnimationManager::FindAnimation for finding/creating the animation of a specific actor ( b500690 ) add axis lines to translation gizmo ( 19ce11d ) add bloom component action for viewing scene bloom ( a4bc32e ) add context menu option to jump to target property for property references in actor editor ( 7ffe128 ) add context-menu option for going to driver properties of constraints in actor editor ( 75a804a ) add feedback messages when shader kernels are being built ( 5f9db8f ) add film clip context menu options for editing film clip properties ( d2162bb ) add gui.PFMViewport:ScaleSelectedActors ( d84df2a ) add hover text for selected bone in viewport ( 9674035 ) add interactive skeleton visualization ( 235e50c ) add menu option to convert scenebuild of current project to map ( de73ba9 ) add menu option to start lua debugger server ( bd6e21e ) add meta type information for transform properties of pfm_actor component ( 23bd079 ) add model explorer option to convert model from/to ascii/binary format ( 162f983 ) add mouse hover selection outline effect ( 8a5754b ) add option to create "child_of" constraint through actor editor ( 10d4a8d ) add option to remove drivers and constraints via icon in actor editor ( 4bebe88 ) add outline effect component ( 3ea6fe5 ) add PFMTreeViewElement:AddUniqueIcon and :ClearIcons ( 70bcef9 ) add saving / loading to ik rig editor ( 7348c27 ) add support for property reference component property types ( 49805d2 ) add support for read-only component properties in actor editor ( 1456594 ) add support for very large render resolutions ( 0ea820c ) add tiled rendering for pragma renderer ( 0f19281 ) add tutorial system ( a35ca15 ) add update-checker ( 8d965e4 ) add utility functions and identifiers for tutorial system ( 6030ef5 ) add vr_manager component (wip) ( b411791 ) add world axis gizmo ( 52ba356 ) adding a constraint or math expression now automatically adds a single-value animation channel if one doesn't exist ( c44eadc ) all logging categories are now enabled by default if log parameter is not specified ( ba01a4d ) animation drivers can now be created through actor editor ( eb05de4 ) anim: bones can now be selected by clicking a triangle weighted to that bone ( 1416fbb ) anim: non-selected IK bones can now be directly clicked and moved in viewport ( ea6f8d5 ) anim: selected bones are now highlighted ( b465641 ) apply changes for Silverlan/pragma@e6e7bb59 ( ab4cfcd ) asset,gui: add missing gui material files for detaching windows ( a353b92 ) bones in actor editor are now displayed in hierarchical order ( ca59b1c ) camera settings are now saved and restored to/from projects ( 132c05d ) change implementation of util_transform component to allow usage in secondary scenes/viewports ( df35060 ) component lists in actor editor now use localized component names ( 569e80c ) component properties with a single animation value can now be edited directly outside of graph editor ( caca401 ) components in actor editor are now listed directly below actors instead of "components" sub-item ( 703fa63 ) converting map to actors now takes scale into account ( e0e5d9a ) copying the property path of a property now includes the full path including actor id ( d41ff17 ) current project file name is now displayed in window title bar ( 363e53d ) dev: add option to assign actor component to x / y variable via right-click context menu in actor editor if developer mode is enabled ( 3a22890 ) disable bloom for transform gizmos ( 58e4438 ) disable motion editor button ( 3e8f00f ) ecs: add option to specify ik rig from file for ik_solver component ( ad57536 ) ecs: add pfm_project_manager component for creating PFM scenes outside of PFM ( f43f679 ) ecs: remove ik_solver component ( 5f7fc65 ) emission_factor for cycles pbr shader can now be used without emission texture ( 3e156cd ) enum-based component properties no longer list "Count" as an option in actor editor ( 6f9f12f ) gui: add ik rig editor ( 8d5dffc ) gui: add option to add simple non-editable text properties to control menues ( 6c1c3e5 ) hide render options not supported by selected renderer ( 2edcc14 ) ik rig editor updates and improvements ( 0b92277 ) ik: add ik components (wip) ( a63e07f ) ik: increase precision of ik solver ( 90d4081 ) implement changes for Silverlan/pragma@0c91c31c ( 4668b27 ) importing asset into model explorer now gives an option to import as collection or as single model ( 55b0565 ) importing assets via model explorer now imports into sub-directory ( e32e3ee ) improve skeletal bone visualization in viewport ( 0315c90 ) locale: add ik rig editor localizations ( 758c199 ) locale: add Japanese translation ( 2c9fa7b ) locale: add localization for components and component properties in actor editor ( cfc0579 ) locale: add missing localizations ( 9115eec ) locale: add missing localizations ( a464a92 ) locale: update localizations ( dfde1a8 ) math expression window now gives immediate feedback about validity of expression ( 88cfd5d ) model browser now automatically refreshes after importing assets ( 9de100f ) moving actor between collections is now instantaneous ( 50c2ff8 ) PFM projects can now be marked as read-only ( 0e423a5 ) pfm projects can now be saved/loaded in ascii format ( 4647fc2 ) pfm_actor component now also adds origin component ( a6793d8 ) placing an actor through the model catalog now assigns the model name to the actor's name ( f71b3f3 ) properties in actor editor now only display the base name of the property instead of the full name ( d31eb26 ) remove origin component from pfm_actor component ( e8f2679 ) rename "track_to" constraint to "look_at" (see Silverlan/pragma@da75b3f6 ) ( aab83b5 ) replace selection wireframe with outline effect ( d0fb7f5 ) selecting an actor in the viewport now automatically scrolls to it in the actor editor ( c5e5363 ) sfm projects can now be imported from directories other than "elements/sessions/" ( f41b93c ) shaders: add missing particle shader files ( d786f7e ) tutorial layout changes ( 7c4e058 ) UDM editor now has options for creating new UDM files, importing UDM data or saving as new file ( 1789cce ) various actor editor additions ( 74ac3b7 ) various ik rig editor additions and improvements ( 3019232 ) various tutorial system improvements ( c0c97e9 ) version info can now be clicked to copy it to clipboard ( 1ad002f ) vr: vr manager now automatically creates actors for all recognized tracked devices ( 1add829 ) Bug Fixes add missing include ( 2d00d50 ) constraint menu no longer shows up for string-based properties ( 73fcbc5 ) debug objects are now longer included in renders when using Pragma renderer ( edbdf52 ) fix "Save As" not updating internal file name to new file name ( e529ab0 ) fix ascii-based models not appearing in model explorer ( fda5dcd ) fix clicking mesh not detecting correct weighted bone properly ( 864004e ) fix component property values of type 'entity' not getting saved/loaded properly to/from a PFM project ( 68ca36c ) fix device type settings in render options being inverted ( fc4f53d ) fix gui.PFMTreeViewElement:SetIdentifier not registering identifier with parent ( 3f18518 ) fix importing map not importing prop_dynamic entities ( a446d9c ) fix incorrect class name for pfm_project_manager component ( 1dfd98c ) fix light sources not showing up in secondary viewports ( 8118eb8 ) fix low-resolution preview render image ( c0f888d ) fix lua error when auto-saving ( 0e818e4 ) fix lua error when baking lightmaps ( 84a714c ) fix lua error when changing component property values ( 1b55a9f ) fix lua error when changing property values ( 7d7492a ) fix lua error when clicking ik handle in viewport ( 25c38e2 ) fix Lua error when launching PFM ( 5baf87d ) fix Lua error when moving actor to empty collection ( b71a946 ) fix lua error when rendering if opencv module is not installed ( ab71e1e ) fix lua errors ( 8bec2e8 ) fix lua errors if actor is spawned with unknown component types ( 8bf3ff3 ) fix Lua errors in ik rig editor ( deb7eb2 ) fix lua errors when adding or removing constraints ( 70dddfe ) fix potential crash when selecting or de-selecting spot-light actor ( a3bc308 ) fix quick-ik in actor editor not working properly ( 68a190b ) fix removing pfm_skeleton component not removing visual bones ( 3ceb0c9 ) fix some items in actor editor tree having incorrect identifier assigned to them ( 1288805 ) ik: fix broken ik behavior for actors without the pfm_model component ( 8ed45f6 ) locale: fix changing language not being saved ( e997b2d ) resolve issue where actor editor component icons would disappear in some cases ( f2bd880 ) resolve issue where actor editor component property list would not get reloaded when component properties change ( a81095c ) resolve issue where camera projection matrix would not be reset properly after tiled rendering ( aebe5c8 ) resolve issue where clicking constraint icon in actor editor would not select associated property properly ( 1226112 ) resolve issue where incorrect slider step size would be used for slider UI elements ( 988bea9 ) resolve issue where removing an actor could result in corrupted actor references ( 6f9ad31 ) resolve issue where sky actor would appear with error texture ( 5ba11fc ) resolve issue where transform gizmo arrows would not transform in correct space ( 41b7ee3 ) resolve issue with actor model being initialized too late, causing dependent component property values to not be initialized properly ( fa03294 ) resolve various issues caused by filmmaker being initialized before game is ready ( d690b82 ) resolve various issues related to transform gizmo ( 1667afe )   Pragma (23-03-31) Features "scale" keyvalue for prop and transform components now accepts vector values ( 755e0cd ) add additional error reporting if model loading or importing fails ( e0853ac ) add base editor UI element identifiers ( 2fc6c4d ) add bloom component properties ( 56042d1 ) add console commands log_level_console and log_level_file for changing log levels on the fly ( 8a6becd ) add error handling when saving a model ( cd7524d ) add functions for getting parent pose of transform-based component properties ( e4c108b ) add git sha to version information ( 7b34f3c ) add global string table ( 6f67c6a ) add gltf import support for multiple mesh instantiations ( b70ee2a ) add gui.WIBaseEditor:GetContentsElement ( 31c18be ) add logging messages for lightmap system ( 6d7813e ) add missing log_file launch parameter ( 15c0e4c ) add model flag for indicating if model is world geometry ( 75930c4 ) add Model::RemoveUnusedMaterialReferences ( 91bfd95 ) add new logging system ( 7d8c965 ) add on-complete callback to util.import_assets ( 1ab7ffd ) add option to calculate projection matrix for tiled rendering ( d862e63 ) add ostream overloads for entity reference types ( 10554e5 ) add support for importing gltf scene as map with multiple models ( 802061e ) add support for Lua development and debugging with Visual Studio Code ( 405dabf ) add udm lua bindings ( b66c082 ) add udm.BaseSchemaType:ReloadUdmData ( 43357c3 ) add util::generate_two_pass_gaussian_blur_coefficients ( f1c9c92 ) add util::to_image_buffer overload for providing a pre-existing staging image ( 00397a6 ) add WorldData Lua bindings ( 68eaa49 ) anim: add multi-threading for animations ( 36029e2 ) anim: implement constraint influences ( ec65ae4 ) asset: add skybox materials ( 11fa969 ) asset: replace toolsnodraw texture ( 3b18acc ) code cleanup ( e4ad13f ) debug_aim_info command now attempts bhv raycast before physics raycast ( 6c27acb ) debug: add info.txt to crashdump ( 955642d ) debug: add logging information ( 74977af ) debug: crash dump now includes vendor information about all available GPUs on system ( 772db85 ) debug: crashdump now includes device id for available GPU devices ( 44fde2e ) debug: re-enable crashdump exception information ( b49bdaf ) ecs,animation: add animation constraint system ( e628639 ) ecs,lua: add option to specify type meta data as well as custom setters and getters for Lua-based component properties ( 8222143 ) ecs,lua: lua-based component properties using the PoseTypeMetaData type meta data are now automatically associated with respective pos/rot/scale properties ( 0c91c31 ) ecs: add "pose" property to ik solver component ( 07b37ee ) ecs: add BaseBVHComponent::GetVertex ( a62a322 ) ecs: add child_of constraint component ( 679f76e ) ecs: add component property meta type data ( fed2d66 ) ecs: add component property parent meta type ( 2d8f34f ) ecs: add constraint component events when driver or driven object has changed ( 88301a7 ) ecs: add constraint entity component types ( 1410021 ) ecs: add event callback when clearing material overrides for model component ( 904fa93 ) ecs: add ik_solver component ( a69e632 ) ecs: add methods for retrieving coordinate-based component properties in specific coordinate space ( b26c539 ) ecs: add origin entity component ( e9b5029 ) ecs: add pose type meta data for associated pose properties with pos/rot/scale properties ( 8b24818 ) ecs: add property component member type ( 5bde6fc ) ecs: add read-only member property flag ( a08a204 ) ecs: add track_to constraint component ( 06001d5 ) ecs: BaseGenericComponent::EVENT_ON_MEMBERS_CHANGED now includes event data struct with component information ( 23f75d9 ) ecs: implement constraints: limit_location, limit_rotation, limit_scale ( 34a3b26 ) ecs: improve performance of composite component ( 08aaacb ) ecs: rework and rename track_to constraint to look_at constraint ( da75b3f ) emission_factor material property can now be used without emission map ( 39fa66c ) Engine::AddTickEvent is now thread-safe ( c00bd5d ) entity model bodygroups are no longer reset on spawn ( 16c1177 ) ExprTk: update to version 0.0.2 ( e354bb2 ) force panima animations to always update, even if timestamp hasn't changed ( 6f23fb2 ) gui,lua: add gui.ScrollContainer:GetWrapperElement, :ScrollToElement* functions ( 4156f14 ) gui: add option to disable automatic rendering when setting scene for WIViewport GUI element ( 21c9131 ) gui: add option to disable menu item ( 489659b ) ik: add full-body ik system ( 8455946 ) improve bloom effect ( 17c4e54 ) improve lightmap quality ( 1cfd4d2 ) lad: add math alias definitions to meta lua documentation ( 810844b ) lad: add math alias definitions to meta lua documentation ( fd4b7b5 ) lad: update lua meta documentation files ( d1326d9 ) lightmap data cache component now initializes data cache automatically ( 6bdbe84 ) locale: add debug logging messages ( bd52a4a ) locale: add Japanese translation ( ee424f3 ) locale: add localization for components and component properties ( b6b1d40 ) locale: update localizations ( 31767f6 ) log system improvements ( 79a12ff ) loggers are now flushed whenever error or critical messages are printed ( 6cfcb81 ) log: info messages now have the "[info]" prefix if printed using the logging system ( 9113847 ) log: warning, error and critical messages are now completely colored in ( baede6a ) lua-based shaders no longer re-initialize material descriptor set when it is not necessary to do so ( c199a10 ) lua,ecs: add component property reference bindings ( 228dab7 ) lua: add console.invoke_change_callbacks binding ( c568ec2 ) lua: add constraint function bindings ( 727389f ) lua: add ents.AnimatedBvhComponent:RebuildAnimatedBvh binding ( dc377f4 ) lua: add ents.AnimatedComponent:GetEffectiveBoneTransforms binding ( d53c570 ) lua: add ents.EntityComponent:InvokeElementMemberChangeCallback binding ( 6af95ce ) lua: add ents.is_member_type_animatable binding ( 51a2271 ) lua: add ents.parse_uri and ents.create_uri bindings ( d69df6f ) lua: add equality operator for prosper.Window objects ( 3365a0a ) lua: add game.is_game_initialized, game.is_game_ready, game.is_map_initialized ( f3744d7 ) lua: add gui.get_element_under_cursor overload with base element parameter ( 2589c61 ) lua: add ik rig lua bindings ( 5b7735d ) lua: add Lua bindings for log library ( c536f87 ) lua: add math.Transform constructor with ScaledTransform argument ( c3ef7ed ) lua: add missing entity component type meta data bindings ( e655387 ) lua: add model, physics and misc bindings ( 807dc8c ) lua: add options for custom push constants and material data initialization for Lua-based shaders ( 03c9f4c ) lua: add panima function bindings for merging channels and animations ( 521991c ) lua: add panima.Channel:TestValueExpression ( 8705de2 ) lua: add parameter to asset.import_model and asset.import_gltf for importing model as collection or single model ( 2038c26 ) lua: add prosper.Window:GetWindowTitle ( 9c91196 ) lua: add string.snake_case_to_camel_case and string.camel_case_to_snake_case bindings ( 273feb0 ) lua: add support for displaying object types when debugging with lua-debug ( e5a474b ), closes /github.com/actboy168/lua-debug/issues/237#issuecomment-1477469263 lua: add support for displaying object values when debugging with lua-debug ( 2451782 ) lua: add udm.is_convertible binding ( 9535e18 ) lua: add util.ImageBuffer:Insert bindings ( 7cc2ff8 ) lua: ents.Entity:FindMemberInfo now also returns component reference ( 8018ad9 ) lua: rename ik.Solver:RemoveDragControl to ik.Solver:RemoveControl ( 9f498d7 ) map format can now contain entity component data ( de913ce ) performance improvements ( 71fb75c ) reduce weight of directional light sources when calculating dominant light direction ( b935e2b ) remove ambient color from shader render settings and add camera fov ( e6e7bb5 ) update intel vtune path references to version 2023.0.0 ( 812e0f7 ) update panima submodule ( 04c72ec ) update sharedutils submodule ( 7d0e338 ) update sharedutils submodule ( 048f8a4 ) update sharedutils submodule ( 8476465 ) update util_image submodule ( 8b48504 ) various animation driver updates and improvements ( 80953a8 ) windows: change console font to "Ubuntu Mono" ( f290627 ) Bug Fixes add missing include ( c16c6d1 ) add missing origin component source code files ( c1ad5eb ) changing collisions of a physics constraint having no effect ( e76ac98 ) clang compile error ( b147489 ) crash when doing mouse or keyboard input before main window has been created ( 4855962 ) ecs: add missing component property registration for bone pose property of animated component ( edb3798 ) ecs: fix enabling or disabling axis for child-of constraint not having any effect ( 362dbed ) ecs: fix Lua errors in lua_script component ( 343ec34 ) ecs: fix lua errors when loading lua_script entity component ( a32a0d4 ) ecs: fix space constraint component axes being inverted by default ( 83fae4a ) ecs: resolve various ik_solver component issues ( 9ab5716 ) ecs: resolve various ik_solver component issues ( 5931047 ) fix "color" keyvalue for color component being interpreted incorrectly ( 4a3faa4 ) fix "debug_hdr_bloom" console command not working properly ( a5ceec4 ) fix accessing invalid iterator when removing entity component from within OnRemove ( 6c60c49 ) fix BaseEntityComponent::SetTransformMember* functions applying value incorrectly if value is in world space and property expects value to be in local space ( 79a0a2c ) fix build error ( 9c5ff63 ) fix build error ( 313436a ) fix build error on latest Visual Studio version ( 20b1ad8 ) fix clang compile error ( 3b493af ) fix ClickComponent.raycast not applying filter correctly to static entities ( cfbfa5b ) fix component properties not being saved when saving map data ( 2a91492 ) fix component property references not working if property path has multiple path components ( 41bb680 ) fix crash when removing entity with panima component ( 30e029e ) fix importing gltf as model not applying mesh scaling correctly ( 87cf3cc ) fix importing gltf as multiple models resulting in invalid bodygroup references ( 3993611 ) fix invalid memory read access ( 8e2c045 ) fix limit location/rotation/scale components not working if no driver was specified ( 17362ef ) fix limit_distance component not working properly ( fcc60fb ) fix memory corruption issue ( 9dd303f ) fix ModelSubMesh::SetVertexWeight using wrong vertex weight set ( 3a30e1b ) fix obsolete model path ( cb063d2 ) fix potential crash when loading a map ( 19fa263 ) fix potential exception in BaseEntity::CreateMemberReference ( 1ce36ac ) fix potential null pointer access ( 6ddb2c6 ) fix pragma::get_component_member_name_hash and pragma::get_normalized_component_member_name returning incorrect results ( d66af40 ) fix warning about missing static_bvh_cache component during map load ( 82479eb ) gui: fix file explorer adding additional slash to path if file is in root directory ( 16f4def ) linux: fix build errors due to missing std::format library ( 5a25f4d ) linux: resolve compile errors ( 608da84 ) log: resolve various logging inconsistencies ( 0682925 ) lua,gui: resolve issue where "OnTextChanged" callback would not work for "WIText" GUI elements ( ce84793 ) lua: add ents.create_entity_uri and ents.create_component_uri bindings ( 1dfac80 ) lua: fix duplicate bound "tostring" method for entity components ( 954323a ) lua: fix ents.BhvComponent.HitInfo.entity not using correct lua object ( 1ae8906 ) lua: fix ents.UniversalMemberReference:GetPath not returning correct path in some cases ( 6bc89ff ) lua: fix error when calling log.prefix ( e8203c3 ) lua: fix incorrect constness for some lua bindings ( 7000a7f ) lua: fix lua error when calling ents.UniversalComponentReference:GetComponentName ( 12ba931 ) lua: fix module paths not being set up properly unless remote debugging is enabled for lua state ( 7de40ff ) lua: fix potential invalid memory access in util.generate_hair_data ( 7ae2ffd ) lua: fix type enums for ik rig constraints being bound with wrong class ( 7ef9257 ) lua: implement missing features for transform component property type ( d40c88d ) lua: resolve issue where udm GetValue functions would return nil if property is of type element ( 5a211e8 ) lua: resolve issue where universal entity reference constructors would not accept uuid objects ( f7b35d6 ) ModelSubMesh::GetVertexWeight - resolve issue where incorrect vertex weight set would be used ( fff66d9 ) resolve compile errors ( 6079768 ) resolve issue where console would not get initialized fully unless created at engine startup ( 1165a97 ) resolve issue where crashdump would not generate properly ( a0df754 ) resolve issue where debug render objects could accumulate and not be flushed when no scenes are being rendered ( a9ba75e ) resolve issue where entities in map generated from imported gltf would all have same uuid ( beca3c8 ) resolve issue where entity render buffer would not be initialized properly ( 6b9e379 ) resolve issue where ik rigs could not be saved ( 8500d0a ) resolve issue where importing a model through the model explorer would fail ( e93b81c ) resolve issue where lua source file could not be determined correctly ( 4ccd7ce ) resolve issue where Lua-script for Lua-based entity would not be loaded if invoked by creation of another Lua-based entity ( 6feee4a ) resolve issue where material and entity color factor would be interpreted as srgb instead of linear ( 6cc1778 ) resolve issue where objects from imported gltf assets would have incorrect rotation ( 656399a ) resolve issue where panima components would not be updated properly if entity has no animated component ( 85aaa9a ) resolve issue where saving a model would not save the reference animation correctly ( be93859 ) resolve memory corruption issues ( 7ed7018 ) resolve potential crash when multiple scenes with debug objects are rendered at the same time ( 31527e2 ) resolve potential crash with animation drivers when using parameter references of properties with certain types ( 3f34a22 ) temporarily disable multi-threading for animations ( 524ad34 )