
|
|
This file was automatically generated from diguy_changes.h. Do not edit this file directly; the changes will be lost.Contents:
| DI-Guy Version 12.5 |
| DI-Guy API |
| Version 12.5.1 |
- Fixed bug where customer sourced dds files failed to load because we assumed they were lz4'ed.
- Fixed bug where files with capitalized extensions eg "FLT" failed to load.
- Fixed bug where invalid xrefs caused parent bounding boxes to fail to register as possibly valid.
- Fixed hard crash when drawing empty octtree.
- Fixed matrix state glitch when drawing octtree and scene object bounds
- Fixed path planning bug in funnel code when far above the z origin.
- Fixed bug where browsing for a new scene object file name didn't force octtree recreation.
- Fixed logic bug in check visibility code.
- Fixed bug where changing appearances could cause single frame muzzle flashes and loss of character skinning matrices.
- Fixed bug where flt files were unable to have their material edited by the character viewer
- Fixed bug where changing character type caused all action beads to collapse on a path.
- Added additional guide example showing differences between similar and dissimilar character types.
- Fixed bug in built-in OpenGL renderer where fixed function mode didn't properly bind textures. Fixes textureless segmented characters rendering in Motion Editor.
- Fixed joystick not properly loading in I-Guy mode.
- Fixed ray testing against scaled scene objects.
- Fixed off by one error in link combo in character viewer.
- Fixed bug in Lua debugger. "Step over" and "Step out" buttons were not working correctly
- General improvements to code that tests get_enabled() and get_dead() on a character, the code will now also test the character's t_out compared to current time.
- Added diguyAgentParams:set_influence_box_enabled() (and get)
- Fixed bug with ground clamping on large scenarios.
- Fixed performance issue with receiving props over the network.
- Improved shadow pass rendering performance.
- Shader cleanup.
- Changed Graphics API shader samples to default point light #define to off.
- Fixed crash when executing gesture that wasn't made for a character.
- Fixed crash when loading degenerate flt file xrefs.
- Improved memory use when decompressing many dds files.
- diguyCharacter::set_orientation() now checks if the character has a vehicle controller and if so, it now allows the caller to hard-set the vehicle's orientation. Previously, only the vehicle controller determined this.
- diguyCharacter::find_path() now checks if the character_type contains the substring 'vehicle' and if so, the path produced will be wide enough to allow the character to pass, based upon character's bounding-box's width.
- Added a number of try/catch blocks to deal with running out of memory while loading extremely large scenarios.
- Added code/UI to allow DI-Guy Scenario to unload textures when not used for a long time. Off by default.
- Added diguyCharacter::trigger_shader_refresh(), a function that triggers a refresh of the shader for a character.
- Added a number of experimental diguyApp memory management functions:
CRITICAL api changes
Version 12.5.0
float AltitudeFunction( diguyScenario* scenario, float x, float y, float old_z);
- C++ callback:
float AltitudeFunction( diguyScenario* scenario, float x, float y, float old_z, int * valid);
- Graphics API
New Features
- bdiGraphicsInitGraphicsAPI.use_4x3_shader_matrices must be set to 0 if you aren't planning on upgrading shaders to use 4x3 matrices.
- As a performance optimization we are no longer transposing our internal matrix representation in C++ before sending to OpenGL. 4x4 matrix bind should get updated to
glUniformMatrix4fv(m_bind_location_ufrm_link_matrices, // uniform var location num_mats, // number of matrices !get_transposed_matrix_data(), // whether to transpose matrix mat_data); // pointer to matrix data
- New adaptive guide allowing characters to fix dead reckoning errors with appropriate step and strafe motions. Now the default in the networking system as well as featured in the guide example.
- New texture variation system allowing for infinite variations on next-gen characters. See diguyCharacter::set_use_texture_variations().
- Next-gen characters now have a number of multiple available head appearances.
- Motion engine should now be fully multi-threaded, thread control api is part of diguyApp.
- New C++ documentation system, utilizing doxygen.
- Fixed matrix update issues with motion lod system and skinned characters, motion lod system can be used again with them, same issues had been happening with segmented characters as well. We recommend using multi-threaded pipeline instead of motion lods at this point.
- New ground clamp option 'g' - approximation based on ground clamping vehicle bounds
- Scene objects can now be collada DAEs.
- Added support for bump maps on scene objects.
- New multi-threaded asynchronous texture loader, controllable via scenario UI and diguyCharacter::set_texture_load_behavior() and diguySceneObject::set_texture_load_behavior()
- Collision Infrastructure Improvements:
- Improved performance of ray tests with scenes with many props.
- Scene Object spatial partitioning system has been overhauled allowing scene objects to be reposition without recreating the octtree.
- Octtree memory usage has been reduced by 10%.
- Octtree is now available for end users who's objects are not flt files, see scene_object_mesh programming example.
- New Scene Object collision control API functions:
- diguyScenario::create_user_defined_scene_object()
- diguySceneObject::add_vertex_to_user_defined()
- diguySceneObject::add_triangle_to_user_defined()
- diguySceneObject::add_vertex_array_to_user_defined();
- diguySceneObject::add_triangle_array_to_user_defined()
- diguySceneObject::add_triangle_to_user_defined();
- diguySceneObject::build_user_defined();
- New API functions:
- diguyCharacter::get_facefx_node_value()
- diguyCharacter::get_max_shader_quality_level()
- diguyCharacter::get_texture_load_behavior()
- diguyCharacter::get_use_texture_variations()
- diguyCharacter::set_max_shader_quality_level()
- diguyCharacter::set_texture_load_behavior()
- diguyCharacter::set_use_texture_variations()
- diguyImpact::get_impact_velocity(float* x, float* y, float* z)
- diguyImpact::get_is_from_net_detonation()
- diguyImpact::get_DIS_munition_septet_value(int septet_index)
- diguyImpact::get_DIS_site()
- diguyImpact::get_DIS_host()
- diguyImpact::get_DIS_event_number()
- diguyImpact::get_DIS_munition_number()
- diguyImpact::get_DIS_detonation_result()
- diguyImpact::get_DIS_burst_warhead_type()
- diguyImpact::get_DIS_burst_fuze()
- diguyImpact::get_DIS_burst_quantity()
- diguyImpact::get_DIS_burst_rate()
- diguyScenario::get_character_type_from_appearance();
- diguyScenario::get_num_character_types_with_appearance()
- diguyScenario::get_weapon_fire_effects_enabled()
- diguyScenario::set_default_intersection_function()
- diguyScenario::set_intersection_function()
- diguyScenario::set_particle_module_disabled()
- diguyScenario::set_weapon_fire_effects_enabled()
- diguySceneObject::get_max_shader_quality_level()
- diguySceneObject::get_texture_load_behavior()
- diguySceneObject::set_max_shader_quality_level()
- diguySceneObject::set_texture_load_behavior()
- diguy_ogl_apply_active_lights();
- Upgraded lua/C++ binding library. Should greatly improve the readablity of error warnings when lua improperly calls C++.
- diguyCharacter::get_ai_state_string() signature has changed to have flags for optionally including callstack info.
- diguyCharacter::is_within_distance_n_of_member_of_group() factors in if a character is enabled.
- Fixes to the bead constraints system (and user interface) renamed beads should keep the script and decision constraints attached to them.
- Fixed bugs where script and decision beads attached to the end of paths and stop signs didn't always trigger, or triggered later then might be expected. This might introduce slight timing changes to existing scenarios.
- Characters are now sorted before drawing, and depending on the rendering pass drawn front to back or back to front.
- Fixed bug in diguyCharacter::force_partial_path() when a target action bead is specified.
- Fixed crash in diguyScenario::preload_appearance() when a non-existant appearance is specified.
- diguyScenario::preload_appearance() should now preload textures for appearances that are based on material swaps.
- References to aim algorithm 7 have been removed.
- Deprecated Functions Removed:
- diguyApp::create_load_manager() replaced with diguyScenario::create_load_manager()
- diguyApp::get_load_manager() replaced with diguyScenario::get_character_load_manager()
- diguyApp::get_load_manager() replaced with diguyScenario::get_character_load_manager()->set_enabled(0)
- diguyCharacter::set_max_impact_hits() replaced with diguyCharacter::set_weapon_max_impacts()
- diguyCharacter::get_paused() replaced with diguyCharacter::get_is_network_paused()
- diguyCharacter::get_visible() replaced with diguyCharacter::get_is_drawn()
- diguyCharacter::set_aim_param_desired_locate_time()
- diguyCharacter::get_aim_param_desired_locate_time()
- diguyCharacter::set_aim_param_seek_tolerance()
- diguyCharacter::get_aim_param_seek_tolerance()
- diguyCharacter::set_aim_interpolation_flag()
- diguyCharacter::get_aim_interpolation_flag()
- diguyCharacter::set_aim_smooth_flag()
- diguyCharacter::get_aim_smooth_flag()
- diguyCharacter::set_aim_divisions()
- diguyCharacter::set_aim_param_time_constant() replaced with set_aim_param_acquire_factor()
- diguyCharacter::get_aim_param_time_constant() replaced with get_aim_param_acquire_factor()
- diguyCharacter::set_aim_param_time_constant2() replaced with set_aim_param_new_aim_duration()
- diguyCharacter::get_aim_param_time_constant2() replaced with get_aim_param_new_aim_duration()
- diguyCharacter::set_aim_param_reset_time_constant() replaced with set_aim_param_new_aim_factor()
- diguyCharacter::get_aim_param_reset_time_constant() replaced with get_aim_param_new_aim_factor()
- Deprecated Callbacks Removed:
- diguyCrowd::CALLBACK_ID_NEW_FOCUS_CHARACTER use diguyCharacter::CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER
- diguyCrowd::CALLBACK_ID_ATTACKER_OUT_OF_TARGETS use diguyCharacter::CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS
- diguyCrowd::CALLBACK_ID_ATTACKER_NO_VISIBLE_TARGETS use diguyCharacter::CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS
- diguyCrowd::CALLBACK_ID_PURSUED_CHARACTER_REACHED use diguyCharacter::CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED
- diguyCrowd::CALLBACK_ID_WANDER_TARGET_REACHED use diguyCharacter::CALLBACK_ID_AGENT_WANDER_TARGET_REACHED
- Fixed bug with T-in/T-out and review data on scene object characters.
- Updated perl header file examples with lua equivalents.
- Character viewer debug shader can now be used on scene objects
- Fixed bug on blinking characters when t-in was not 0.
- Fixed Expressive Faces pop when interacting with gaze code.
- Added the ability to pause the shadow map update and lower the update frequency.
- Added controls for adjusting the shadow map frustum and shadow acne fudge factor.
- Character culling is now based on the base link, not the position link.
- New DI-Guy Author APIs:
DI-Guy Scenario
Version 12.5.0
- New lighting system triggered by particle effects and weapons fire.
- Improvements to 3d visuals for path editing.
- Merged some subwidgets in character page.
- Improved interactive Face Expression Editing.
- Improved determinism of fast forward, and setting current time via the VCR UI.
- Streamlined performance settings. Crowd Load Manager, Load Manager tabs have been phased out, settings are now located in the performance page.
- Changing camera settings will now force a motion update on all characters.
- Property tree UI's now have slider widgets, easier to change values interactively.
- Labels above character's heads now autoscale and draw z-sorted.
- Right click menu now contains a shortcut to turning on the debug label.
- Right click on log window selection can now go to package selected or Character selected.
- Shader UI includes the ability to edit character variation texture colors.
- Physx library has been rewritten to use Physx 3.2, this is upgraded from version 2.8, Physx installer should no longer be needed.
- Fixed a number of sound looping issues.
DI-Guy AI
Version 12.5.0
- Improved turning motion system, now on by default.
- Variant system now treats the normal variant as an indicator to automatically pick an appropriate variant for the character. Controlled by diguyCharacter::agent_set_auto_variant_selection()
- System will now cycle through appropriate motions randomly.
- LuaCharacter - sleep_ignore_messages avoids resuming the coroutine.
- AI movement callbacks are now queued up and triggered at the end of the multi-threaded update.
- New AI State Inspector - mini lua watch window, activate via right click menu.
- Added diguyCrowdProfile::create_character() short cut for using a profile to create a character.
- Significantly improved speed of collision influence calculation for crowds.
- Crowd profiles have been updated to use new variation system.
- Performance improvement for addingdeletingtransforming scene objects.
- Performance improvement for intersection testing against scene objects and props.
- New API functions:
Graphics API Changes
Version 12.5.1
- Added functionality to support color picking intersection testing for scene graph implementations.
- Added sample code demonstrating intersection testing with OpenSceneGraph.
- New API Functions:
Version 12.5.0
- Modified diguyOsgGraphicsMesh::build() to load appearance textures on demand instead of pre-loading all appearance textures.
- Added support for 4x3 skinned matrices, saves 25% of the bandwidth and uniform constants sent per character draw call. Now the default for OpenGL. Configurable via bdiGraphicsInitOgl.use_4x3_shader_matrices and bdiGraphicsInitGraphicsAPI.use_4x3_shader_matrices. diguy_graphics_get_osg_defaults() and diguy_graphics_get_dx9_defaults() have been added to make it a bit easier to get the defaults set up.
- Added sample code demonstrating use of 4x3 matrices for transform data.
- Greatly expanded shader techniques API, diguyGraphicsShaderTechnique can now be subclassed and end users can create new shaders on the fly with diguyGraphicsShaderTechnique::find_or_create_shader_variation(). End users can override existing functionality and return alternatively compiled shaders depending on their own criteria, sample code is provided demonstrating conditionally compiling in point light support but only using shader when necessary.
- Fixed matrix transpose mistake in diguyOglGraphicsLink.cpp
- Cleaned up computation of local space camera.
- Removed use of display lists from diguyOglGraphicsMaterial.cpp
- Cleaned up diguyOglGraphicsShaderInstance.cpp to reflect the use of shader techniques.
- Added sample code demonstrating updating lighting state for simple point lights on characters.
- Added sample code demonstrating using #defines to control compilation of various shader features.
- Added support for variation system to sample code, this is shown in diguyOglGraphicsShape and diguyOsgGraphicsShape.
- Added diguyOglGraphicsShaderTechnique demonstrating how to modify built-in shaders and overriding our existing shader LOD system.
- New API Functions:
- diguyGraphicsShaderProgram::get_num_additional_feature_names()
- diguyGraphicsShaderProgram::get_additional_feature_name()
- diguyGraphicsShaderProgram::has_additional_feature()
- diguyGraphicsShaderProgram::get_vertex_shader_filename()
- diguyGraphicsShaderProgram::get_pixel_shader_filename()
- diguyGraphicsShaderProgram::get_transposed_matrix_data()
- diguyGraphicsShaderProgram::load()
- diguyGraphicsShaderProgram::get_use_4x3_shader_matrix_data()
- diguyGraphicsShaderTechnique::get_shader_by_distance()
- diguyGraphicsShaderTechnique::get_program_index_by_distance()
- diguyGraphicsShaderTechnique::get_shadow_pass_shader()
- diguyGraphicsShaderTechnique::find_or_create_shader_variation()
- diguyGraphicsShaderTechnique::pick_shader_program()
- diguyGraphicsShaderTechnique::build();
- diguyGraphicsShaderTechnique::add_additional_shader()
- diguyGraphicsShaderTechnique::get_num_additional_shaders()
- diguyGraphicsShaderTechnique::get_additional_shader_at_index()
- diguyGraphicsShape::get_variation_texture()
- diguyGraphicsShape::get_variation_texture_size()
- diguyGraphicsShape::update_variation_texture()
- Init params: bdiGraphicsInitGraphicsAPI.transpose_shader_matrices
- Init params: bdiGraphicsInitGraphicsAPI.use_4x3_shader_matrices
DI-Guy Networking Changes
Version 12.5
- New API Functions:
- New Custom PDU's ( Note: Functionality currently limited to DIS. )
- DIGUY_CUSTOM_PDU_ID_SET_SHAPE_VARIATION replicates variation texture over the network
- DIGUY_CUSTOM_PDU_ID_EXECUTE_GESTURE replicates the diguyCharacter::execute_gesture() call over the network
- DIGUY_CUSTOM_PDU_ID_CHARACTER_SCALE replicates the diguyCharacter::set_scale() value over the network.
- DIGUY_CUSTOM_PDU_ID_SET_CHAR_APPEARANCE Now contains a second optional string for head appearances
DI-Guy Version 12.0
DI-Guy Scenario
Version 12.0.1
- Added visualization option for gaze vectors.
- Restored missing default face expressions and chain settings libraries to new.dss.
- Added display of more callback information to the Event Mapper User Interface.
- Fixed bugs with water shader.
DI-Guy AI Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy API
Version 12.0.3
- Updated network model map for vehicles and also resolved issue with vehicles stuttering on paths.
- Made fire and detonation PDUs use matching event ids. Added velocities to Fire PDUs. M16 velocity is used by default for all weapons but can be overridden in munition config file.
- Fixed DI-Guy Scenario bugs in copy/paste paths, action spreadsheet.
- Fixed minor content bugs involving missing torso on insurgent.
Version 12.0.2
- Fixed diguyApp::reload_shader_programs() to support the graphics API. See diguyOglGraphicsShaderProgram.cpp for minor change: shaders that are already loaded must be detached on reload.
- Added diguyCharacter::set_shader_lod() and diguyCharacter::get_shader_lod().
- Modified diguyCharacter::set_face_expression() to support a strength multiplier.
- Modified diguyOsgGraphicsMesh::build() to load appearance textures on demand instead of pre-loading all appearance textures.
- Call callbacks with id CALLBACK_ID_SCENE_OBJECT_IMPACT if diguyScenario::trigger_detonation() or diguyCharacter::trigger_detonation_on_character() are called.
- Values in diguy_dis_constants.h now available in scripting.
- Added a number of DIS detonation data values to diguyImpact; e.g., diguyImpact::get_DIS_detonation_result().
Version 12.0.1
- AI flee code now properly uses feeler callback to pick the longest available flee route when near buildings.
- Fleshed out FaceFX api, fixed a number of after action review issues, added the following functions:
- Updates to FaceFX sample content.
- Added the following functions to help enable advanced shader materials in the graphics api:
- diguyOglGraphicsShaderProgram::bind_uniform_with_location()
- diguyOglGraphicsShaderProgram::bind_uniform_with_location()
- diguyOglGraphicsShaderProgram::get_attrib_bind_location()
- diguyOglGraphicsShaderProgram::get_uniform_bind_location()
- Streamlined shader bind and unbind calls.
- Fixed issue where even with only 1 update thread was used some of the multi-threaded infrastructure was active.
- Added warnings to various add_callback_script functions to warn if the same callback is repeatedly added.
- Update Middle Eastern AI's to avoid perpetual memory growth.
- Changed multi-threading to only use the Qt threading framework when more than one thread is allocated to DI-Guy.
Version 12.0.0
- In API programs shadow disks are off by default. Now the "set_draw_character_shadow_disks" setting in .dss files will be ignored. To turn shadow disks on or off an explicit call to diguyScenario::set_draw_character_shadow_disks() needs to be made.
- Fixed diguyCharacter::agent_set_current_params_from_profile() so arguments are in proper order. Note: If you have existing calls to agent_set_initial_params_from_profile(), verify that you are getting proper behavior.
- Added the following functions:
- Removed the following experimental functions; should use minds instead:
- diguyCharacter::add_state_machine_instance()
- diguyCharacter::remove_state_machine_instance()
- diguyCharacter::remove_all_state_machine_instances()
- diguyCharacter::find_state_machine_instance()
- diguyScenario::get_num_state_machines()
- diguyScenario::create_state_machine()
- diguyScenario::destroy_state_machine()
- diguyScenario::get_state_machine_at_index()
- diguyScenario::find_state_machine()
- diguyScenario::get_num_state_machine_instances()
- diguyScenario::add_state_machine_instance()
- diguyScenario::remove_state_machine_instance()
- diguyScenario::get_this_state_machine_instance()
- diguyCrowd::all_members_add_state_machine_instance()
- diguyCrowd::all_members_remove_state_machine_instance()
- Removed the following deprecated functions:
- diguyApp::set_student_log_callback()
- diguyApp::student_log_print()
- diguyApp::set_user_query_yes_no_callback()
- diguyApp::user_query_yes_no()
- diguyApp::set_user_query_text_callback()
- diguyApp::set_user_query_item_callback()
- diguyApp::user_query_item()
- diguyApp::set_user_inform_callback()
- diguyApp::user_inform()
Graphics API Changes
DI-Guy Version 11 Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy API
Version 11.6.0
- Added diguyRegionPaintbrushMode enum to diguy_constants.h.
- Fixed problem with agent_set_current_params_from_profile() use in decision clauses.
- Made the following functions callable from decisions:
- Added the following functions:
- diguyApp::set_region_paintrush_mode()
- diguyApp::get_region_paintrush_mode()
- diguyApp::set_munition_type_DIS_impact_septet()
- diguyApp::set_munition_type_DIS_tracer_septet()
- diguyCharacter::trigger_detonation_on_character()
- diguyCharacter::get_vehicle_body_orientation()
- diguyScenario::trigger_decision_delayed()
- diguyScenario::trigger_script_delayed()
- diguyScenario::get_altitude_from_point()
- diguyScenario::destroy_region()
- diguyScenario::save()
- diguyScenario::save_as()
- diguyScenario::get_filename()
- diguyScenario::get_filename_without_directory()
- diguyScenario::get_unsaved()
- diguyScenario::set_unsaved(int unsaved)
- diguyRegion::get_random_factor()
- Remove unused playback mode enum DIGUY_SCENARIO_PLAYBACK_MODE_RECORD.
- Made changes to some scenario call operations. Previously the diguyScenario::post_draw() call had no effect; it now allows various post draw type operations to be optionally invoked. Previously these operations were automatically done at the end of diguyScenario::draw_pass2().
- Added the following functions:
Graphics API Changes
- Moved the following functions from diguyGraphicsShaderInstance to diguyGraphicsShaderProgram:
- diguyGraphicsShaderInstance::bind_link_matrices()
- diguyGraphicsShaderInstance::bind_color_array()
Your Graphics API subclasses will need to be updated. bind_link_matrices() will now potentially be called multiple times per character depending on its complexity. For example, animated faces from facefx will cause multiple matrix binds.
The signature for diguyGraphicsTexture::bind_now() has changed to diguyGraphicsTexture::bind_now(diguyTextureMapType texture_type) to support multi-texturing. Your Graphics API subclasses need to be updated.
Version 11.0.x
- Added ability to hear sounds when history is enabled and time is rewound to a point midway in the sound. Note that the function diguyScenario::set_history_max_sound_instances() lets users set how many sound instances to be remembered; default is 100.
- Updated where DI-Guy looks for its license file. It is looked for in this order:
- file specified by the environment variable DIGUY_LICENSE_FILE
- file specified by the environment variable BDILM_LICENSE_FILE
- file specified by the environment variable LM_LICENSE_FILE
- license.dat in DI-Guy installation flexlm subdir
- Turned off character shadow disks by default when using SDK; they're still on by default in DI-Guy Scenario.
Version 11.0.4
- Resolved issues with wheeled vehicles on paths, force_action, and resume_path
- Problem with vehicles not resuming their path and remaining motionless after force_action("still")
- Problem with vehicles resuming path and wheels not spinning
- Problems with position discontinuities when force_action("still") is applied to a vehicle on a path
Version 11.0.2
- Updated where DI-Guy looks for its license file. It is looked for in this order:
- file specified by the environment variable DIGUY_LICENSE_FILE
- file specified by the environment variable BDILM_LICENSE_FILE
- file specified by the environment variable LM_LICENSE_FILE
- license.dat in DI-Guy installation flexlm subdir
- Turned off character shadow disks by default when using SDK; they're still on by default in DI-Guy Scenario.
- Removed use of glCallList in materials for the Graphics API sample code and the internal OpenGL renderer. Call lists are deprecated and have more overhead then just calling material functions directly.
- Added early out sample code for materials to graphics API; end users should now have the tools to skip unnecessary material binds.
- Added a new geode/mesh merge as part of the bdg creation; should cut number of meshes and draw calls in half for most of the non- skinned characters.
- Added new draw stats profiler to improve feedback on pipeline bottlenecks. Profiler now available in Character Viewer. (Press Ctrl-P a few times.)
- Added linear draw pipeline init argument.
- Updated Benchmark sample program with new options and statistics.
- Fixed bug where get link positions would not take character scale into effect.
- Added the following functions to DI-Guy Graphics API:
- diguyGraphicsLink::get_link_transformation_matrix()
- diguyGraphicsLink::begin_character_draw()
- diguyGraphicsLink::end_character_draw()
- diguyGraphicsLink::get_use_linear_traversal_draw()
- diguyGraphicsLink::set_use_linear_traversal_draw()
- diguyGraphicsTexture::get_last_bound_texture()
- diguyGraphicsTexture::clear_last_bound_texture()
- Added sample code to the OpenGL graphics API reference implementation demonstrating the use of the link local transformation matrix to simplify the number of OpenGL function made.
- Added sample code to the OpenGL graphics API reference implementation to demonstrate using diguyGraphicsTexture::get_last_bound_texture() to minimize state changes.
- Added the following functions to DI-Guy OpenGL rendering API:
Version 11.0.1
- Added the following functions to DI-Guy Graphics API:
- Added sample code to the OpenGL Graphics API reference implementation to demonstrate using diguyGraphicsMaterial::get_last_bound_material() to minimize state changes.
- Fixed binary geometry serialization bug on x64 machines.
- Added diguyScenario::is_valid_character_group_pointer()
Version 11.0.0
- Removed deprecated functions:
- diguyChainSimulation::set_connection_character()
- New APIs:
- diguyFormation
- diguyVehicleController
- diguyViewButtonPanel (DI-Guy Scenario only)
Version 10.5.1
- Removed deprecated functions:
- diguyScenario::set_tin()
- diguyScenario::get_tin()
- diguyScenario::trigger_script_event()
- diguyScenario::add_custom_appearance()
- diguyScenario::add_custom_appearance_based_on_existing_appearance()
- diguyScenario::add_named_callback()
- diguyScenario::remove_named_callback()
- diguyScenario::call_named_callback()
- diguyScenario::set_iguy_character()
Version 10.1.7
- Added the following functions:
- diguyCharacter::set_max_unprocessed_impacts()
- diguyCharacter::get_max_unprocessed_impacts()
- diguyScenario::set_max_unprocessed_impacts()
- diguyScenario::get_max_unprocessed_impacts()
- diguyCharacter::reset_shader_program_to_default()
- diguySceneObject::reset_shader_program_to_default()
Version 10.1.6
- Added functions to diguyViewCamera and diguyViewCameraSettings:
- Added flag to diguyScenario that explicitly enables or disables tout ("T Out") for the scenario, instead of using the arbitrary value of 60000 seconds to mean tout should have no effect.
- Added flag similar to above that enables or disables character tout.
- Added the following functions:
- diguyCharacter::get_muzzle_link()
- diguyCharacter::get_muzzle_offset()
- diguyCharacter::stop_appearance_effect()
- diguyCharacter::set_weapon_tracers_enabled()
- diguyCharacter::get_weapon_tracers_enabled()
- diguyCharacter::set_weapon_shell_eject_enabled()
- diguyCharacter::get_weapon_shell_eject_enabled()
- diguyCharacter::set_weapon_smoke_enabled()
- diguyCharacter::get_weapon_smoke_enabled()
Version 10.1.4
- Added diguyCharacter::CALLBACK_ID_AGENT_MIND_CURRENT_STATE_CHANGED.
- Added the following functions for getting and setting mind data.
- Added the following functions for setting agent params, and other agent behavior.
Version 10.1.3
- Added the following blink functions to diguyCharacter.
- diguyCharacter::set_automatic_blink_duration_in()
- diguyCharacter::get_automatic_blink_duration_in()
- diguyCharacter::set_automatic_blink_duration_out()
- diguyCharacter::get_automatic_blink_duration_out()
- diguyCharacter::set_automatic_blink_target_in()
- diguyCharacter::get_automatic_blink_target_in()
- diguyCharacter::set_automatic_blink_target_out()
- diguyCharacter::get_automatic_blink_target_out()
- diguyCharacter::set_automatic_blinks_enabled()
- diguyCharacter::get_automatic_blinks_enabled()
- Added the following gesture functions to diguyCharacter.
- Added the following misc functions to diguyCharacter.
Version 10.1.1
- Added the following functions to diguyCharacter.
Version 10.1.0
- Added the following functions for improved LOD handling.
- Added the following functions to diguyCharacter.
DI-Guy Scenario
Version 11.5.1
- Fixed intersection test issue with scene objects
- Fixed bogus fog changed notification
- Improved sound history recording and playback
Version 11.0.1
- Fixed crash with using qt_invoke without lqt loaded.
DI-Guy Motion Editor
Version 11.0.1
- Fixed Motion Arc extended info handling.
- Fixed issue with the poser not being available on some skinned character links.
Version 11.0.0
- Initial support for handling skinned characters.
DI-Guy Character Viewer
Version 11
- Added Shadow and normal previewer.
- Added LOD picker.
DI-Guy for Vega Prime
Version 11.5.1
- Initial support for vegaPrime 5.x.
- fixed crash on exit using some modules.
- Changed setScriptPerlEnable default from true to false.
Version 11.0.1
- Initial support for vegaPrime 4.x.
DI-Guy Networking
Version 11.0.1
- Fixed a number of bugs with transmitting gazing and aiming behavior over network.
- Improvements to log messages.
DI-Guy Applications Version 10 Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy API 10
Version 10.0.10
- Impact processing on characters now considers mind wakeup callbacks when deciding how the impact affects the character, in addition to the straight callbacks that are considered now.
- Added functions:
- Added the following diguyCharacter callbacks that report when an agent is being push around by other characters of vehicles.
- diguyCharacter::CALLBACK_ID_AGENT_NON_ZERO_REPULSION
- diguyCharacter::CALLBACK_ID_AGENT_ZERO_REPULSION
Version 10.0.8
- Added merging of regions during scenario merge.
- Fixed merging of crowds to include merging of crowd behavior regions.
- Added diguyScenario::CALLBACK_ID_PLAYBACK_MODE_CHANGED.
- Added diguy_set_diguy_base_dir_path() function.
- Added remove_on_scenario_load argument to most add_default_*_callback() functions; allows for "permanent" callbacks to be added that persist through scenario loads. The default is
- meaning remove the callback when a scenario is loaded.
Version 10.0.6
- Fixed visual issues of skinned appearances when the character is scaled or is using a motion LOD greater than 1.
- Fixed issue where default scenario callbacks were not being called.
- Added functions:
Version 10.0.5
- Fixed hard crashes with on-screen labels outside of the ogl pipeline.
- Fixed issues with octtree creation and visibility checks.
- Fix for vc8 mdd examples using lua.
- Added missing header file for DI-Guy Bench Marking example.
- Added infrastructure for hooking up callbacks so visibility tests can work in the SDK. See the following functions:
Version 10.0.4
- Fixed bug where green boxes were appearing at the origin in some DI-Guy Graphics API examples.
- Characters with skinned appearances specified will switch to their default unskinned appearance on platforms without skinning support.
- Added diguyScenario::get_altitude_function() and diguyScenario::set_altitude_function() mainly needed for force local path via the API.
- Added bdiGraphicsInitGraphicsAPI::characters_have_world_space_triangle_query and bdiGraphicsInitGraphicsAPI::scene_objects_have_world_space_triangle_query function allow octtree to be built from internally loaded scene objects. Note: this functionality requires that diguyGraphicsMesh::free_loader_memory() not be called.
Version 10.0.3
- Changed diguyScenario::set_default_lod_ranges() to accept "all" for the character type. Passing "all" will set the default LOD ranges for all character types, not just one specific one.
- Added the following functions to DI-Guy Graphics API for more flexibility in handling graphics LODs.
Version 10.0.1
- Fixed bugs with intersecting characters added to the octtree.
- Fixed bugs where custom directory env variable was being ignored when looking up lua scripts.
- Added functions diguyCharacter::create_complete_pose_override() and diguyCharacter::destroy_complete_pose_override().
- Fixed bug where OGL skinned characters were missing some polygons; please see graphics API samples if you are seeing this bug. Your VBO class may need slight changes.
Version 10.0.0
- Added support for character "type maps". Type maps add extra data to characters that make it easier to decide which character type and appearance best match the desired role for characters to be added to the scenario. See the class diguyCharacterTypeMap, and information about the "Appearance Wizard" for DI-Guy Scenario.
- Added the following functions to diguyCharacter API:
- diguyCharacter::get_nearest_character_type_map()
- The DI-Guy Graphics API example directories osg_12_examples and osg_22_examples have been removed. They have been replaced with osg_2_examples.
- The osg_2_examples reference implementation now has support for skinned appearances. It uses the DI-Guy built-in geometry loader instead of OSG's, as DI-Guy has some specific requirements for loaded skinned geometry.
- diguyScenario::add_callback() and diguyScenario::add_callback_script() have been modified with an addition argument that specifies whether the callback should remain after a new scenario has been loaded. The previous behavior was for the callback to not be removed, which could cause problems. Users will now need to explicitly request that the callback remain.
Version 9.1.5
- The ability to show bar graph information has been added to the diguyViewLabel class. See diguyViewLabel::enable_bar_graph().
- Added the following functions to diguyCharacter API:
- Added the following functions to DI-Guy Graphics API:
- diguyGraphicsLink::post_build()
- diguyGraphicsLink::set_shader_instance()
- diguyGraphicsMaterial::get_is_unlit()
- Added new DI-Guy Graphics API classes: diguyGraphicsShaderProgram and diguyGraphicsShaderInstance.
- Added time_to_live to network.cfg file.
- Removed the following experimental functions:
- diguyScenario::load_shader()
- diguyScenario::reload_shader_programs()
- Added new DI-Guy functions to allow SDK users to intercept fire requests and plug in their own intersection test; see diguyScenario::set_fire_weapon_intersection_function() for more info.
Version 9.1.4
- Added the following functions to diguyCharacter API:
- The way that weapon sounds are handled has been changed.
- The following functions have been deprecated:
- The above deprecated functions are replaced by:
- Added the following diguyCharacter callbacks to make it easier to tie events to editing characters in the UI.
- diguyCharacter::CALLBACK_ID_UI_MOUSE_DOWN
- diguyCharacter::CALLBACK_ID_UI_MOUSE_UP
- Added diguyViewPainter class that allows the drawing of lines and
other primitives in DI-Guy Scenario 3D view windows. For access to this object call diguyApp::get_painter().
- Added diguyScenario::CALLBACK_ID_POST_DRAW, allowing the scripting engine a chance to draw in the 3D view in DI-Guy Scenario. Characters with minds are also given the opportunity to draw; see the default luaCharacter script.
Version 9.1.2
- Added diguyImpact::get_impact_type() and diguyImpact::get_impact_type_string() which provide information about how the impact was generated. New accessors for querying normal information are also available.
- Added new Lua Scripting module:
- The Lua module has all the functionality of the current Perl module.
- Lua is popular in the game development industry for it's speed and efficiency. Lua script execution is much less performance intensive than a similar Perl script.
- Lua is the basis for the new DI-Guy AI Mind framework.
- Scripts are no longer limited in length (was 32K).
- Deprecated functions:
- diguyCharacter::get_base_link() replaced with diguyCharacter::get_position_link()
- Added the following diguyCharacter callbacks to make it easier to tie events to editing characters in the UI.
- diguyCharacter::CALLBACK_ID_UI_PRE_TRANSLATION
- diguyCharacter::CALLBACK_ID_UI_POST_TRANSLATION
Version 9.1.1
- Added the following function to diguyCharacter API:
- Added the following functions to diguyCharacter API for getting and setting character variables with a compact function name:
- Sound Module Improvements:
- Adding looping flag to diguyCharacter::play_3d_sound() and diguyCharacter::play_sound() allows sounds to repeat until explicitly stopped with diguyCharacter::stop_sound() or diguyCharacter::stop_all_sounds()
- 3D Sounds should now Doppler shift depending on the velocity of the emitter and listener.
- More a number of diguySound functions have been added to allow querying a sounds properties.
- Fixed problem with the OpenFlight geometry loader. Light point records were causing the loader to fail.
- Added two new diguyCharacter callback ids:
- diguyCharacter::CALLBACK_ID_POST_CREATE_GEOMETRY
- diguyCharacter::CALLBACK_ID_PRE_DESTROY_GEOMETRY
- Added new plugin function, post_reset(). Allows plugins to do reset operations at the end of a scenario reset, instead of only at the beginning.
Version 9.1.0
- Added the following functions to diguyCharacter API:
Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy Scenario 10
Version 10.0.2
- Fixed the appearance of state functions in the code browser.
Version 10.0.0
- Added the "Appearance Wizard" to places where character type and appearance can be selected. The Appearance Wizard provides an interactive UI for selecting desired attributes of the character to be created, such as category, age, sex, race, military branch, carried object, etc.
- Character types and appearances are now marked as "Recommended" and "Not Recommended". Many older character types and appearances have been nominally replaced with newer versions which should be preferred over the older ones. By default DI-Guy Scenario will show only the preferred ones, but can be changed to show all of them. Scenarios that currently use now not-recommended character types and appearances will still work as before.
Version 9.1.3
- Improvements to autocomplete, including DIGUY_* constants as well as dynamic analysis of lua objects.
Version 9.1.2
- Added new documentation viewer, accessible under the help menu.
Version 9.1.1
- When selecting which agents' parameters are going to be edited, multi-select can now be used.
- Replaced Scenario Elements, Character Elements, View Settings, Event Handlers, and DI-Guy AI Elements windows with a single revamped Scenario Elements window that has collapsible tab groups.
- Removed experimental, incomplete "Merge Blitz" capability.
Version 9.1.0
- Script editing now uses an editing component based on Scintilla, this provides syntax highlighting/coloring, line numbering, basic auto-complete, and code folding. Currently supported control keys:
- Ctrl '{' or Ctrl '}' - jump to matching brace
- Ctrl f - find dialog
- F3 - find again
- Added a number of ui improvements:
- Beads now display the time they occur instead of just an index.
- The Action Spreadsheet is available in the character elements page.
- A number of element types can now be sorted in their selector view at the top of the page. Most widgets can be sorted by index and name. Some add the ability to be sorted by time, appearance, character type, etc.
- The path page has a sorted list of all beads on a path.
DI-Guy AI 10
Version 10.0.4
- Added new AI_Populate SDK example; demonstrates populating the environment with lua minds based Agents via the SDK.
Version 10.0.3
- Improved behavior of paintbrush far from origin and at different heights.
- Added bright red log/package indicator on lua syntax errors.
- Improved behavior of code browser recompile button, pops up log window on syntax errors.
Version 10.0.2 - Fixed hard crash in path planner when pursuing with no behavior region set. - Fixed a number of bugs with agents colliding with props. - Fixed bug with crowd awareness code far from the origin.
Version 9.1.4
- Significant improvements to A* path planning performance, 10x speed up in most cases.
Version 9.1.3
- Improvements to path planning API, added the following functions to diguyCharacter API for navigating the world
Version 9.1.2
- New Lua based mind framework:
- New Lua Mind Editor in UI
- The crowd/people blitzers can now create characters with minds.
- Added the following functions to diguyCharacter API:
- Added diguyCharacter::CALLBACK_ID_AGENT_VEHICLE_COLLISION; this callback is triggered on a vehicle when a vehicle hits an agent.
- Added diguyRegion, an API wrapper for painted meshes. Retrievable with the function diguyScenario::find_region().
- Vehicle bounds are now smoothed when the vehicle changes speed.
- Added simple gazing model into agent focus behavior.
- Added Idle Behavior, agent will stop moving and be responsive to focus and simple requests but won't spontaneously move.
- Added diguyCharacter::agent_begin_behavior() allows starting a behavior by name. Typically some of the more elaborate functions are preferred, but this can be useful for idling and such.
- Changes to None behavior. Agent will attempt to do less and clear out some transient state to make the behavior of the behavior more consistent.
Version 9.1.1
- The following diguyCrowd callbacks are deprecated, and have been replaced with diguyCharacter equivalents.
- diguyCrowd::CALLBACK_ID_NEW_FOCUS_CHARACTER
- diguyCrowd::CALLBACK_ID_ATTACKER_NO_VISIBLE_TARGETS
- diguyCrowd::CALLBACK_ID_ATTACKER_OUT_OF_TARGETS
- diguyCrowd::CALLBACK_ID_PURSUED_CHARACTER_REACHED
- diguyCrowd::CALLBACK_ID_WANDER_TARGET_REACHED
- diguyCrowd::agents_flee_crowd()
- Added the following diguyCharacter callbacks to make it easier to detect important events in agent behavior.
- diguyCharacter::CALLBACK_ID_AGENT_NEW_BEHAVIOR
- diguyCharacter::CALLBACK_ID_AGENT_NEW_FOCUS_CHARACTER
- diguyCharacter::CALLBACK_ID_AGENT_ATTACK_OUT_OF_TARGETS
- diguyCharacter::CALLBACK_ID_AGENT_ATTACK_NO_VISIBLE_TARGETS
- diguyCharacter::CALLBACK_ID_AGENT_PURSUE_TARGET_REACHED
- diguyCharacter::CALLBACK_ID_AGENT_PURSUE_TARGET_LOST
- diguyCharacter::CALLBACK_ID_AGENT_MINGLE_TARGET_REACHED
- diguyCharacter::CALLBACK_ID_AGENT_MINGLE_TARGET_LOST
- diguyCharacter::CALLBACK_ID_AGENT_WANDER_TARGET_REACHED
- diguyCharacter::CALLBACK_ID_AGENT_WANDER_TARGET_LOST
- diguyCharacter::CALLBACK_ID_AGENT_FLEE_AREA_LEFT
- diguyCharacter::CALLBACK_ID_AGENT_FLEE_AREA_ENTERED
- diguyCharacter::CALLBACK_ID_AGENT_TRAVEL_WAYPOINT_REACHED
- diguyCharacter::CALLBACK_ID_AGENT_TRAVEL_FORWARD_DEST_REACHED
- diguyCharacter::CALLBACK_ID_AGENT_TRAVEL_BACKWARD_DEST_REACHED
- DI-Guy AI agents can now flee from multiple characters, groups, and locations instead of just one.
- Functions diguyCharacter::agent_set_current_params_from_profile() and diguyCrowd::set_current_params_from_profile() have a new argument, retain_focus_objects. Setting this to 1 allows the specified to be loaded without changing the agents' current focus character or group.
DI-Guy Motion Editor
- Added support for filtering the action table editor, eases editing of large action tables.
- Added code to reverse motions.
- Grabbing a pose on a Linear Offset should interpolate properly.
- Motion arc list and action table motion list are now in sync.
DI-Guy Character Viewer 10
Version 10.0.0
- Added "Appearance Wizard" button to make selecting an appropriate character type and appearance easier.
DI-Guy for Vega Prime 10
Version 10.0.4
- Initial release compiling with vp 3.0.
Version 9.1.2
- Added support for turning on DI-Guy AI from vpDiguySettings UI. DI-Guy AI functionality is limited inside of Vega Prime
- Added support for turning on Lua scripting module from the the UI.
- Fixed long standing issue with character's having link offsets applied multiple times. (Also in 9.0.4)
DI-Guy Networking
Version 9.1.6
- Fire PDUs position should now be the muzzle of the gun, the entity type should match the munition type fired, and the velocity should be the normalized direction of the muzzle.
- Fixed issue where agents on non-flat terrains were sending erroneous z values.
DI-Guy Applications, 9.0 and Earlier Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy API
Version 9.0.4
- Added new argument to diguyCharacter::force_action() that allows the forced action to begin partway into the action.
- Added the following functions to diguyCharacter API:
Version 9.0.1
- Added new guide example, see $(DIGUY)\programming_examples\diguy_ogl\guide_example
- Added the following functions to diguyCharacter API:
- diguyCharacter::get_distance_to_impact()
- diguyCharacter::set_is_scene_object()
- diguyCharacter::get_is_scene_object()
- diguyCharacter::set_apply_actor_scale_to_action_bead_xy_travel() deprecated; use diguyCharacter::set_apply_actor_scale_to_action_bead_travel() instead
- diguyCharacter::get_apply_actor_scale_to_action_bead_xy_travel() deprecated; use diguyCharacter::get_apply_actor_scale_to_action_bead_travel() instead
- Manually invoking a diguyCharacter perl script callback via diguyCharacter::manually_invoke_event_handler() will now have the $callback_object variable properly set.
- Minor munition system improvements:
- Munitions sound effects now include sound gain.
- Added diguyScenario::trigger_detonation(), a function for creating a detonation at an arbitrary xyz location.
- Fixed bug with location of munition particle effects.
- Added new Munition system demonstration; see AI_Munitions_Demo.dss in scenarios directory.
- Improved default 3d sound behavior; prior default 3d sound falloff was much too aggressive. Future DI-Guy releases will make more of these values tuneable.
Version 9.0.0
- Promoted the following functions from experimental to official status:
- diguyScenario::find_character_at_screen_coords()
- diguyScenario::get_impact_at_screen_coords()
- diguyScenario::get_intersection_at_screen_coords()
- diguyScenario::force_octtree_generation()
- diguyScenario::intersect_static_geometry()
- diguyScenario::add_character_to_octtree()
- diguyScenario::remove_character_from_octtree()
- diguyCharacter::set_apply_actor_scale_to_action_bead_xy_travel()
- diguyCharacter::get_apply_actor_scale_to_action_bead_xy_travel()
- Added functions to allow user to specify custom feeler functions:
- Fixed more issues with recent changes to reduce path memory overhead.
- Changing current appearance will now complain less if the resulting change doesn't require recompilation of path data.
- diguy_dis_constants.h now includes custom PDU enumeration.
- Changes made to aim algorithm 8 parameter functions in an effort to make them more descriptive. Note that only the set functions are listed; the corresponding get functions have changed, too.
- diguyCharacter::set_aim_param_time_constant() deprecated; use diguyCharacter::set_aim_param_acquire_factor() instead
- diguyCharacter::set_aim_param_reset_time_constant() deprecated; use diguyCharacter::set_aim_param_new_aim_factor() instead
- diguyCharacter::set_aim_param_time_constant2() deprecated; use diguyCharacter::set_aim_param_new_aim_duration() instead
Version 8.6.3
- Fixed some issues with recent changes to reduce path memory overhead.
Version 8.6.2
- Changes made to support multiple active formations. New arguments added to diguyCharacter::call_formation() and diguyCharacter::break_formation() to support multiple formations. Default behavior remains the same as before.
- Significant memory savings when dealing with characters with long paths.
- Added new argument to diguyCharacter::set_current_appearance() function: allow_actor_change. Previously changes to a character's appearance that would result in an actor (size of character) change were not allowed. Passing 1 (the default) for this argument now allows such a change.
Version 8.6.1
- Added function diguyCharacter::get_current_traveled_path().
- Improved logic for picking dead action.
- Removed deprecated functions:
- diguyLoadManager::set_max_update_period()
- diguyLoadManager::set_nonvisible_update_rate()
- diguyLoadManager::set_zone_bounds()
- diguyLoadManager::set_zone_parameters()
- Improved DIS/HLA Networking:
- Added support for Flat Earth and Geocentric coordinates.
- Coordinate system changes can now be applied while the system is connected to the network.
- DI-Guy characters can now have different Munition types which are sent over the network as part of the detonation pdus.
- Improved Munition Support:
Heavy rewrite/solidification of our munition and detonation code.
- Characters now have a munition type, defaults to "m16".
- Munition definitions are stored in the munition_type.cfg file. They have a number of required and optional fields including septet, radius, and special effects to create when triggered.
- The munition name and radius is now part of diguyImpact structure. This allows the end user to build damage models in scripts that are based on the munition type of an impact, along with fall-off effects based on distance from impact location.
- Characters hit by broadcast detonations will now call the CALLBACK_ID_IMPACT callback if they have one, this emulates what happens when characters are shot by other DI-Guys. If they are members of a crowd and the crowd has an impact callback that will be called, if no impact callback exists they will die.
- Crowds should now react to remote detonations.
- Impacting a scene object will now transmit a detonation.
Version 8.5.0
- Many new function calls available from decisions.
- Changed default aim algorithm from 7 to 8. To change it back to 7, call diguyCharacter::set_aim_algorithm(), passing 7 as the aim_algorithm argument.
- Improved diguyCharacter::check_character_visibility(). Character will now use the cervical joint as the source point, and test multiple positions on the target.
- Promoted diguyCharacter version 8 aim algorithm functions from experimental to official.
- Characters that are flagged as scene object are no longer baked into the world octtree. Editing them no longer requires an expensive octtree rebuild.
- Fixed access bug in diguyScenario::find_path_shape().
- Added functions:
Version 8.1.0
- Added function diguyScenario::preload_sound()
- Added callback id diguyScenario::CALLBACK_ID_SAVE_SCENARIO_FILE
- Added experimental functions:
Version 8.0.6
- Fixed issue where turreted vehicles broadcast angle did not match the DIS standard.
- Added experimental aim functions. These functions are for the new DI-Guy version 8 aim algorithm.
- diguyCharacter::set_aim_algorithm()
- diguyCharacter::get_aim_algorithm()
- diguyCharacter::set_aim_param_seek_tolerance()
- diguyCharacter::get_aim_param_seek_tolerance()
- diguyCharacter::set_aim_param_time_constant()
- diguyCharacter::get_aim_param_time_constant()
- diguyCharacter::set_aim_param_time_constant2()
- diguyCharacter::get_aim_param_time_constant2()
- diguyCharacter::set_aim_param_reset_time_constant()
- diguyCharacter::get_aim_param_reset_time_constant()
- diguyCharacter::set_aim_param_azimuth_acquired_range()
- diguyCharacter::get_aim_param_azimuth_acquired_range()
- diguyCharacter::set_aim_param_elevation_acquired_range()
- diguyCharacter::get_aim_param_elevation_acquired_range()
- diguyCharacter::set_aim_param_max_per_frame_adj_factor()
- diguyCharacter::get_aim_param_max_per_frame_adj_factor()
- diguyCharacter::set_aim_converge_every_frame()
- diguyCharacter::get_aim_converge_every_frame()
- diguyCharacter::aim_converge()
Version 8.0.5
- Fixed issue with TXP geometry loader. If external textures are marked as "Unknown" format, the actual format is now derived from the filename extension in the case of .rgb, .rgba, .int, and .inta texture files.
Version 8.0.4
- Improved documentation for function diguyScenario::update().
- Fixed some issues with I-Guy and its use of joystick input. I-Guy input for DI-Guy 8 now more closely matches that of previous versions.
- Fixed some issues with muzzle flashes. In particular, muzzle flashes were not consistently showing up in DI-Guy Scenario, both during initial simulation and during review data playback.
- DI-Guy now includes a DIGuyLicenseTool application that makes it easier to gather the appropriate information needed to request a license from Boston Dynamics. This utility program can be run during Applications installation, or, after installation is complete, from the DI-Guy folder in the Start Menu.
- Fixed a problem with programming examples that used OpenAL with the VC7 static libs (Makefile.vc7_md, for example) would crash when an .ogg file was loaded.
Version 8.0.3
- Fixed some issues with I-Guy:
- Firing the I-Guy's weapon now correctly uses the trajectory to the crosshair, instead of along the weapon barrel.
- Keyboard control of looking up and down now possible; use 'Page Up' and 'Page Down' keys.
- Fixed problem with networked characters climbing hills.
- Fixed problem with networked characters transitioning too quickly.
- Added Visual Studio 7.1 solution for diguy_ogl/simple_playback example.
- Fixed issue with diguyCharacter::stop_all_sounds() and diguyScenario::stop_all_sounds() not saving history events.
Version 8.0.2
- Fixed problem with some textures not loading properly.
- Fixed problem with DirectX examples not shutting down cleanly if there is a license problem.
Version 8.0.1
- Fixed issues with temporary characters not always being destroyed.
- Fixed issues with temporary characters showing up in review playback.
- Fixed issues with appearance effects being recycled properly.
- Fixed problem with eyes not participating in gazing.
- Rework of many examples in the programming_examples directory. Some new examples added, some older ones removed.
- Added README.txt files to diguy_plugin examples that better describe what the examples show, and how to use them in DI-Guy Scenario.
Version 8.0.0
- Initial 8.0 release candidate.
- Setting of tin (T In) and tout (T Out) calls for characters have been tightened up. For example, a character's tin can no longer be set to before the current scenario t. It could be before, but would cause potential problems. Warning messages are printed to the log when improper tin or tout times are attempted.
Version 7.1.20
- Added new diguySignal and diguyScenario functions:
- The signal info_text field allows signals to be tagged in the DI-Guy Scenario Signal Palette with text different than the signal name. The new show all and hide all functions take an optional filter that can be used to make the operation work on a subset of the signals.
Version 7.1.19
- Fixed problem with vehicle_wheels character in which first frame of playback had wheels in incorrect position.
- Improved documentation for diguyCharacter Performance Functions.
- Improved documentation for diguyCharacter functions that deal with enabling and disabling characters in various ways.
- Added functions:
- diguyLoadManager::set_zone_all_blends_disabled()
- diguyLoadManager::get_zone_all_blends_disabled()
- diguyLoadManager::set_zone_shape_switches_disabled()
- diguyLoadManager::get_zone_shape_switches_disabled()
- diguyLoadManager::set_zone_shape_callbacks_disabled()
- diguyLoadManager::get_zone_shape_callbacks_disabled()
- diguyLoadManager::set_zone_graphics_api_shape_update_disabled()
- diguyLoadManager::get_zone_graphics_api_shape_update_disabled()
- diguyCharacter::get_is_active()
- diguyCharacter::set_invisible_flag()
- diguyCharacter::get_invisible_flag()
- Added function diguyCharacterGroup::get_is_network_paused(), and deprecated function diguyCharacterGroup::get_paused()
- Added function diguyCharacterGroup::get_visible(), and deprecated function diguyCharacterGroup::get_is_drawn()
- Made the following functions callable from decisions:
Version 7.1.18
- Added functions:
- Changed the name of several experimental functions:
- diguyCharacter::start_appearance_effect() -> diguyCharacter::begin_appearance_effect()
- diguyCharacter::stop_appearance_effect() -> diguyCharacter::end_appearance_effect()
- The following experimental functions were promoted to official API status:
- diguyScenario::create_temporary_character()
- diguyScenario::send_character_to_recycle_bin()
- diguyScenario::retrieve_character_from_recycle_bin()
- diguyScenario::set_playback_mode()
- diguyScenario::set_playback_mode_stop()
- diguyScenario::set_playback_mode_play()
- diguyCharacter::get_is_temporary()
- diguyCharacter::translate_all_paths()
- diguyCharacter::rotate_all_paths_about_point()
- diguyCharacter::rotate_all_paths_about_current_waypoint()
- diguyCharacter::manually_invoke_event_handler()
- The ability to change the tin ("T In") time of a scenario has been removed. THIS CHANGE WILL AFFECT SCENARIOS THAT USED THIS FUNCTIONALITY. Setting the tin of a scenario to anything other than 0 has always had unintended side-effects for DI-Guy, which is why this capability has been removed. The functions diguyScenario::set_tin() and diguyScenario::get_tin() are now deprecated as a result. (Note that diguyCharacter::set_tin() has not been changed.)
Version 7.1.16
- Added the following functions:
Version 7.1.14
- Fixed issues with scenario merging. Chain settings and particle systems in particular did not merge well.
Version 7.1.13
- The following experimental functions were promoted to official API status:
- diguyCharacter::set_minimum_cpl()
- diguyCharacter::get_minimum_cpl()
- diguyCharacter::get_maximum_possible_current_cpl()
- diguyCharacter::maximize_current_cpl()
- diguyCharacter::set_automatic_cpl_switching_enabled()
- diguyCharacter::get_automatic_cpl_switching_enabled()
- diguyCharacter::set_current_cpl()
- diguyCharacter::get_current_cpl()
- diguyCharacter::set_position_accumulation_disabled()
- diguyCharacter::get_position_accumulation_disabled()
- diguyCharacter::set_all_blends_disabled()
- diguyCharacter::get_all_blends_disabled()
- diguyCharacter::set_shape_switches_disabled()
- diguyCharacter::get_shape_switches_disabled()
- diguyCharacter::set_shape_callbacks_disabled()
- diguyCharacter::get_shape_callbacks_disabled()
- diguyCharacter::set_graphics_api_shape_update_disabled()
- diguyCharacter::get_graphics_api_shape_update_disabled()
- diguyCharacter::optimized_update()
- diguyCharacter::get_is_recycled()
- diguyCharacter::get_last_impact_record()
- diguyCharacter::get_last_impact_number()
- diguyCharacter::get_last_impact_been_processed()
- diguyCharacter::set_last_impact_been_processed()
- diguyCharacter::get_last_impact_link()
- diguyCharacter::get_last_impact_link_is()
- diguyCharacter::set_weapon_projectile_is_visible()
- diguyCharacter::get_weapon_projectile_is_visible()
- diguyCharacter::start_appearance_effect()
- diguyCharacter::stop_appearance_effect()
- diguyApp::set_precompute_quaternions_enabled()
- diguyApp::get_precompute_quaternions_enabled()
- diguyApp::set_num_rendering_passes()
- diguyApp::get_num_rendering_passes()
- The following deprecated functions were removed:
- diguyApp::set_use_varsets_enabled()
- diguyApp::get_use_varsets_enabled()
- diguyCharacterGroup::set_all_members_t()
Version 7.1.12
- Added new functions to diguyCharacter:
- diguyCharacter::set_position_to_other_character_position()
- diguyCharacter::set_desired_position_to_current_position()
- diguyCharacter::set_desired_position_to_waypoint()
- diguyCharacter::set_desired_position_to_path_waypoint()
- diguyCharacter::set_desired_position_to_path_shape_waypoint()
- diguyCharacter::find_guide()
Version 7.1.11
- The following functions were added to diguySensorRegion that make it easier to write callback handlers for sensor regions:
- get_autosense_callback_candidate_entered()
- get_autosense_callback_candidate_left()
- Characters now fire live rounds by default when diguyCharacter::fire_weapon() is called. THIS IS A CHANGE FROM PREVIOUS DEFAULT BEHAVIOR. The old behavior can be restored in two ways:
- In DI-Guy Scenario, the Weapon Params tab on the Character Elements palette has a checkbox called "Weapon Fires Live Rounds". The checkbox can be unchecked, followed by pressing the "Copy to All Characters" button.
- In a program using the DI-Guy API, the function diguyCharacter::set_weapon_fires_live_rounds() can be called.
- Character Labels Visibility is now set to 'None' in the default .dss file.
- Added function to diguyCharacterGuide:
- diguyCharacterGuide::remove_all_disabled_guides()
- Made the following functions available to Decision Beads and Decision Events:
- Removed DI-Guy Graphics API programming example ogl_examples_high_precision/simple_playback_high_precision. Replaced it with streamlined example ogl_examples/simple_playback_far_positions.
- Fixed problem with props/scene objects showing up at origin in after-action review.
Version 7.1.10
- Fixed a problem with the DI-Guy Graphics API that prevented textures on some characters from being correctly bound under certain circumstances.
Version 7.1.9
- The following optional functions were added to plugins:
- void key_press()
- void key_release()
- Added diguyIGuyController class for C++ and script control over the I-Guy character.
- Setting the dead reckoning time threshold is now done by setting the variable time_threshold in the network.cfg file. The variable tick_period has been deprecated and will no longer have any effect. The default value is 5 seconds.
Version 7.1.8
- Added callback and event handling support for scenario variables:
- diguyScenario::add_default_variable_callback()
- diguyScenario::remove_default_variable_callback()
- diguyScenario::remove_default_variable_callback_with_user_data()
- diguyScenario::add_default_variable_callback_script()
- diguyScenario::remove_default_variable_callback_script()
- diguyScenario::register_variable_event_handler()
- diguyScenario::register_variable_event_handler_from_library()
- diguyScenario::register_variable_event_handler_script()
- diguyScenario::has_registered_variable_event_handler()
- diguyScenario::unregister_variable_event_handler()
- diguyVariable::CALLBACK_ID_VALUE_CHANGED
- diguyVariable::add_callback()
- diguyVariable::remove_callback()
- diguyVariable::remove_callback_with_user_data()
- diguyVariable::add_callback_script()
- diguyVariable::remove_callback_script()
- diguyVariable::map_event_handler_to_callback_id()
- diguyVariable::unmap_event_handler_from_callback_id()
Version 7.1.7
- Added parameters polygon_offset_factor and polygon_offset_units to bdiGraphicsInitOgl structure to allow for better control over subface rendering in OpenGL.
- Addressed some issues with diguyGraphicsLink and far positions.
Version 7.1.6
- Added functions to diguySensorRegion:
- Added experimental functions diguyScenario::create_temporary_character() and diguyCharacter::get_is_temporary(). These functions allow for the creation of 'temporary' characters that are not saved in a .dss file and are recycled on scenario reset. Temporary characters are useful as fired munitions, effects, etc.
- Added functions to diguyCharacterGuide:
- Added new callbacks to diguyCharacter:
- diguyCharacter::CALLBACK_ID_GUIDE_POSITION_ACQUIRED
- diguyCharacter::CALLBACK_ID_GUIDE_POSITION_UNACQUIRED
- diguyCharacter::CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED
- diguyCharacter::CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED
- diguyCharacter::CALLBACK_ID_CURRENT_TOUT_REACHED
- Added function diguyCharacter::set_custom_orientation_rx_and_ry(). This function allows the roll and pitch components of a character to be set without taking the character off of its current path, if there is one. The character's up vector (as set by diguyCharacter::set_up_vector()) must be 'c' (custom) for these values to have an effect.
- Added new distance calculation functions:
- Added new experimental functions for locating a nearby character. These functions have a check_visibility argument; if 1, the function will do a simple ray trace against scene object geometry.
- Added diguySensorRegion::contains_character_by_type()
- Added diguyCharacter::force_local_path() new function that can grab a preexisting path. copy and transform it into the local space of the character and switch to it.
- Removed function diguy_dis_get_action_from_entity_state() from diguy_module_dis.h. diguyCharacter::get_action_from_entity_state() should be called instead to map DIS values to an action.
Version 7.1.5
- Added experimental transformation functions for paths:
- Added experimental performance tuning functions:
- Deprecated experimental performance tuning functions:
- diguyApp::set_use_varsets_enabled()
- diguyApp::get_use_varsets_enabled()
Version 7.1.4
- Added function diguyCharacterPath::get_path_shape(), that provides access to a path's underlying path shape.
- Added functions diguyCharacter::get_nearest_active_character() and diguyCharacter::get_nearest_active_character_in_group(). These functions will walk through either all characters or all characters in a group, and return the nearest character that is both alive and enabled. An optional argument specifies whether to skip characters that are invisible to the caller because a scene object is in the way.
- Added convenience functions diguyCharacter::get_distance() and diguyCharacter::get_distance_xy() for getting the distance between two characters.
Version 7.1.3
- Deprecated diguyChainSimulation::set_connection_character() function. Replaced with diguyChainSimulation::set_chain_mass_connection_character().
- Added ability to set all chain mass positions in the call diguyChainSimulation::set_chain_mass_position() by passing -1 for the chain_mass_index.
- Added ability to fix all chain mass positions in the call diguyChainSimulation::set_chain_mass_position_is_fixed() by passing -1 for the chain_mass_index.
- Added aiming ability for characters with turrets.
- Fixed problems with debug versions of programming examples that caused heap corruption on some Windows systems.
Version 7.1.2
- Added new callback to diguyCharacter:
- diguyCharacter::CALLBACK_ID_DESIRED_ACTION_REACHED
Version 7.1.1
- Added a new experimental character type called "chain_simulation" that can do realtime simulation of chains, ropes, and hoses. The appearance of the chain_simulation character determines its simulation settings. Chain simulation settings are created and on the DI-Guy Scenario Chain Sim Settings page, or via the diguyChainSettings class. Runtime parameters of the chain simulation are set by obtaining a diguyChainSimulation object via the diguyCharacter::get_chain_simulation() call.
- Fixed issues with diguyCharacter::set_current_appearance(). 0 was returned even if appearance change failed; not correctly returns -1 on failure.
- Added new experimental functions to event bead classes. These functions make it possible to specify that event beads should begin and/or when a specific action bead or waypoint is reached. Members are:
- diguyCharacterPathAimBead::get_begin_at_object_name()
- diguyCharacterPathAimBead::set_begin_at_object_name()
- diguyCharacterPathAimBead::get_end_at_object_name()
- diguyCharacterPathAimBead::set_end_at_object_name()
- diguyCharacterPathDecisionBead::get_begin_at_object_name()
- diguyCharacterPathDecisionBead::set_begin_at_object_name()
- diguyCharacterPathDecisionBead::get_end_at_object_name()
- diguyCharacterPathDecisionBead::set_end_at_object_name()
- diguyCharacterPathGazeBead::get_begin_at_object_name()
- diguyCharacterPathGazeBead::set_begin_at_object_name()
- diguyCharacterPathGazeBead::get_end_at_object_name()
- diguyCharacterPathGazeBead::set_end_at_object_name()
- diguyCharacterPathScriptBead::get_begin_at_object_name()
- diguyCharacterPathScriptBead::set_begin_at_object_name()
- diguyCharacterPathScriptBead::get_end_at_object_name()
- diguyCharacterPathScriptBead::set_end_at_object_name()
- Function diguyApp::load_plugin() has three new optional arguments: required_by_scenario, unload_on_scenario_close, and accepts_mouse_input.
- Added functions to diguyImpact:
- Added functions to diguyScenario:
- Added functions to diguyCharacter:
- Character label information is now saved in the scenario file and restored when the scenario is loaded.
Version 7.1.0
- Added function diguy_get_app(), a cleaner function for retrieving the diguyApp object than diguyApp::get_app().
- Added experimental transformation functions for paths:
- diguyCharacter::translate_all_paths()
- diguyCharacter::rotate_all_paths_about_point()
- diguyCharacter::rotate_all_paths_about_current_waypoint()
- diguyCharacterGroup::translate_all_paths()
- diguyCharacterGroup::rotate_all_paths_about_point()
- diguyCharacterGroup::rotate_all_paths_about_current_waypoint()
- Added functions diguyApp::get_diguy_base_dir() and diguyApp::get_diguy_subdir().
- Added diguyCharacter::get_parent() function.
- Added diguyViewLight::set_shadowmap_size() and diguyViewLight::get_shadowmap_size(); allows setting shadow map resolution. Must be a power of 2.
- Made various internal performance enhancements for scenario updates.
- Fixed a problem with motion LODs updating all links every now and then, even if the current action hasn't changed.
- Made the scenario be able to go past 60000 seconds. Now a scenario tout greater than 60000 seconds is interpreted as unlimited.
- Fixed a problem with motion LODs updating too many links.
- Made various internal performance enhancements for scenario updates.
- Added performance tuning functions:
- diguyCharacter::set_automatic_cpl_switching_enabled()
- diguyCharacter::get_automatic_cpl_switching_enabled()
- diguyCharacter::set_minimum_cpl()
- diguyCharacter::get_minimum_cpl()
- diguyCharacter::get_maximum_possible_current_cpl()
- diguyCharacter::maximize_current_cpl()
- diguyCharacter::get_current_cpl()
- diguyCharacter::set_position_accumulation_disabled()
- diguyCharacter::get_position_accumulation_disabled()
- diguyCharacter::set_all_blends_disabled()
- diguyCharacter::get_all_blends_disabled()
- diguyCharacter::set_shape_switches_disabled()
- diguyCharacter::get_shape_switches_disabled()
- diguyCharacter::set_shape_callbacks_disabled()
- diguyCharacter::get_shape_callbacks_disabled()
- diguyCharacter::set_graphics_api_shape_update_disabled()
- diguyCharacter::get_graphics_api_shape_update_disabled()
- diguyCharacter::optimized_update()
- diguyScenario::optimized_update()
- diguyScenario::send_character_to_recycle_bin()
- diguyScenario::retrieve_character_from_recycle_bin()
- diguyGraphicsLink::get_data_ptr()
- diguyGraphicsLink::get_translation_data_index()
- diguyGraphicsLink::get_rotation_data_index()
- diguyGraphicsLink::get_scale_data_index()
- diguyGraphicsLink::get_quat_data_ptr()
- diguyGraphicsLink::get_quat_data_index()
- diguyApp::set_use_varsets_enabled()
- diguyApp::get_use_varsets_enabled()
- diguyApp::set_precompute_quaternions_enabled()
- diguyApp::get_precompute_quaternions_enabled()
Version 7.0.9
- Rewrote portions of network mapping code, custom pdus/specialized motions will now work with more characters. This requires a new version of data, but any character that has been properly tagged with variants and postures should transmit better.
- Rewrote speed code, networked characters should scale speed to try and match packets that are coming in.
Version 7.0.8
- Trying to get the position of a invalid link will behave a bit better.
Version 7.0.6
- Creating a path when a character has none will properly set the initial path name.
Version 7.0.5
- Fixed a crash that sometimes happened while reading comments out of texture .attr files.
Version 7.0.3
- Fixed a problem with the diguyGraphicsShape::update() function not always being called.
- Fixed various bugs with VR-Link and DI-Guy time sync code.
- Added warning if diguyCharacter::set_desired_action() is called with 0.0f as the speed.
Version 7.0.2
- Fixed a problem with gazing and aiming not zeroing in on the correct positions when using DI-Guy for Vega.
Version 7.0.1
- Deprecated "named_callback" functions in diguyApp. Event handler functions should be used instead.
- Renamed some diguyViewCamera functions:
- diguyViewCamera::get_world_offset_position() has become diguyViewCamera::get_segment_origin()
- diguyViewCamera::get_local_position() has become diguyViewCamera::get_position_segment_offset()
- diguyViewCamera::get_local_fix() has become diguyViewCamera::get_fix_segment_offset()
- Added function diguyCharacterGroup::update_all_members(), and deprecated function diguyCharacterGroup::set_all_members_t()
- Fixed problem with deleting one scenario and creating another causing a crash.
- Fixed crash problem with function diguy_set_cfg_file().
- Changed the default settings of automatic switching of graphics LODs and motion LODs, as set by diguyScenario::set_automatic_graphics_lod_switching() and diguyScenario::set_automatic_motion_lod_switching(). Previously automatic LOD switching was always enabled unless explicitly disabled by calling the above functions. Now automatic LOD switching will be disabled by default in DI-Guy API applications, but remain enabled by default in DI-Guy Scenario.
- Added the following functions for adding and removing appearances:
- diguyScenario::add_custom_appearance() deprecated; use diguyScenario::add_appearance().
- diguyScenario::add_custom_appearance_based_on_existing_appearance() deprecated; use diguyScenario::add_appearance_based_on_existing_appearance().
- Promoted the following functions from experimental to official status:
- diguyCharacter::get_label_text()
- diguyCharacter::set_label_text()
- diguyCharacter::get_label_is_visible()
- diguyCharacter::set_label_is_visible()
- diguyCharacter::set_label_text_color()
- diguyCharacter::get_label_text_color()
- diguyCharacter::set_label_background_color()
- diguyCharacter::get_label_background_color()
- Removed diguyLoadManager camera functions (load manager camera now always tracks the scenario's primary view camera):
- diguyLoadManager::add_camera()
- diguyLoadManager::add_view_camera()
- diguyLoadManager::move_camera()
- diguyLoadManager::change_view_camera_settings()
- diguyLoadManager::remove_camera()
- diguyLoadManager::remove_all_cameras()
Version 7.0.0
- Fixed problem with diguyCharacter::set_speed(). The set speed was being reset to the action's default speed after a short time, which is not correct behavior.
- Changed values returned by diguyCharacter::get_aim_azimuth() and diguyCharacter::get_aim_elevation() to be character- relative rather than world-relative.
Version 6.1.10
- Fixed event propagation bug when event tout is -1 and scenario tout is changed.
- Added optional actor argument to diguyScenario::add_custom_appearance() function. This fixes a problem with characters not being able to switch to custom appearances with diguyCharacter::set_current_appearance() because of actors being different.
- Added simple_playback_high_precision and view_far_position that demonstrate off the use of high precision position values.
Version 6.1.9
- Fixed problem with various diguyWaypoint "get" functions that return angles (e.g., diguyWaypoint::get_yaw_in()); they weren't properly returning angles in degrees.
- Fixed problem with merging scenarios: merged waypoints at the origin were not being rotated correctly.
- Fixed problem with config file appearance syntax. The item "shapeset:shape" format caused a crash; it now works again.
- Fixed problems with required plug-in list not saving or resetting properly.
Version 6.1.8
- Far positions rendering are now off by default, though DI-Guy Scenario and DI-Guy Scenario UI V6 turn them on. Practically this means that while internally things are done at a higher precision format, the render camera being in local space will be a change that needs to be explicitly asked for.
- Added the following functions for controlling far position state:
- Added accessors for setting character and scene object culling on/off.
- Added accessors for setting character and scene object bounding volume visualization on/off. (only works for OpenGL)
- Fixed a bug with diguyCharacter::set_current_appearance().
- Added warning message if a proposed appearance change is null; fixes crash bug.
- diguyScenario::trigger_script_event() deprecated; use diguyScenario::trigger_script().
- Added function diguyScenario::trigger_decision().
Version 6.1.7
- Added new experimental functions. (Experimental functions are typically for probationary features whose final functionality or API has not been fully worked out.)
- diguyCharacter::set_weapon_projectile_is_visible()
- diguyCharacter::get_weapon_projectile_is_visible()
- diguyCharacter::get_label_text()
- diguyCharacter::set_label_text()
- diguyCharacter::get_label_is_visible()
- diguyCharacter::set_label_is_visible()
- diguyCharacter::set_label_text_color()
- diguyCharacter::get_label_text_color()
- diguyCharacter::set_label_background_color()
- diguyCharacter::get_label_background_color()
- diguyScenario::find_character_at_screen_coords()
- diguyScenario::set_playback_mode()
- diguyScenario::set_playback_mode_stop()
- diguyScenario::set_playback_mode_play()
- Removed the function diguyLoadManager::set_enable_culling().
- Added optional arguments initial_posture and initial_variant to diguyScenario::set_iguy_character().
- Added function diguyScenario::get_time_of_day().
- Fixed bug in diguyCharacter::is_speaking(). It was sometimes improperly returning FALSE.
- Added the following functions that control whether the scenario will be reset (as if diguyScenario::reset() were called) when a merge happens:
- Now incoming XC_MERGE_SCENARIO PDUs do not cause the running scenario to stop and reset.
- Now incoming XC_MERGE_SCENARIO PDUs cause a XC_MERGE_SCENARIO_COMPLETE PDU to be sent when the merge operation is done.
- Now incoming XC_LOAD_SCENARIO PDUs cause a XC_LOAD_SCENARIO_COMPLETE PDU to be sent when the load operation is complete.
- Added the following functions:
- Now incoming XC_TIME_NOW messages cause the scenario to chase sync.
- Now incoming XC_EVAL_SCRIPT messages cause the script therein to be evaluated.
- diguyScenario::load() has been changed to not accept .flt filenames. The new function diguyScenario::create_scene_object() should be used instead.
- Added the following functions:
- Fixed problem with DX99 version of the library that prevented gazing from working correctly.
- Added better detection of and error message for missing DI-Guy Data installation.
- Renamed experimental "shot" class, function names, and callback ids to use the more generic term "impact":
- diguyShot
- diguyShot (class name) -> diguyImpact
- get_shooter_name() -> get_attacker_name()
- get_shooter() -> get_attacker()
- get_shot_number() -> get_impact_number()
- set_shot_number() -> set_impact_number()
- get_shot_been_processed() -> get_impact_been_processed()
- set_shot_been_processed() -> set_impact_been_processed()
- CALLBACK_ID_GOT_SHOT -> CALLBACK_ID_IMPACT
- CALLBACK_ID_SHOT_SUCCESS -> CALLBACK_ID_FIRE_WEAPON_SUCCESS
- get_last_shot_record() -> get_last_impact_record()
- get_last_shot_number() -> get_last_impact_number()
- get_last_shot_been_processed() -> get_last_impact_been_processed()
- set_last_shot_been_processed() -> set_last_impact_been_processed()
- get_last_shot_link() -> get_last_impact_link()
- get_last_shot_link_is() -> get_last_impact_link_is()
- set_max_shot_hits() -> set_max_impact_hits()
- CALLBACK_ID_ENVIRONMENTAL_DETONATION -> CALLBACK_ID_SCENE_OBJECT_IMPACT
- get_last_env_shot_info() -> get_last_env_impact_info()
- Added function diguyExerciseInterface::send_pdu_xc_time_now().
- Added code to properly respond to incoming XC_TIME_NOW PDUs.
Version 6.1.6
- Added functions and diguyExerciseInterface class for enhanced networking support:
- diguyApp::get_exercise_interface()
- diguyExerciseInterface::send_pdu_xc_load_scenario()
- diguyExerciseInterface::send_pdu_xc_merge_scenario()
- diguyExerciseInterface::send_pdu_xc_trigger_script()
- diguyExerciseInterface::send_pdu_xc_control()
- diguyScenario::set_tin_time_of_day()
- diguyScenario::get_tin_time_of_day()
- Added new functions diguyView::get_width() and diguyView::get_height().
- Experimental plugin infrastructure has been reworked a fair amount.
- Function diguyScenario::add_plugin() has been changed to diguyApp::load_plugin().
- Function diguyScenario::remove_plugin() has been changed to diguyApp::unload_plugin().
- The following functions will be imported when a plugin is loaded. Note that not only diguy_version() must be implemented:
- void diguy_version(int* version_major, int* version_minor, int* version_point)
- void initialize_plugin(diguyApp* app)
- void deinitialize_plugin(diguyApp* app)
- void initialize(diguyScenario* s)
- void deinitialize(diguyScenario* s)
- void pre_update(diguyScenario* s)
- void post_update(diguyScenario* s)
- void pre_draw(diguyScenario* s)
- void post_draw(diguyScenario* s)
- void reset(diguyScenario* s)
- diguyPluginMouseCursor get_mouse_cursor(diguyScenario* s)
- void mouse_press(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
- void mouse_drag(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
- void mouse_release(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
- void mouse_move(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
- void save_review_data(diguyScenario* s, const char* filename)
- void load_review_data(diguyScenario* s, const char* filename)
- Added an additional argument, merge_settings, to the diguyScenario::merge() function.
- Added the following functions to enable better control of merging scenarios:
- Added the following functions:
- Added the following functions in support of 3D positional sound:
- Added new optional argument "gain" to diguyCharacter::play_sound() function.
- Made following functions available to Decision Beads and Decision Events:
- Removed unused variable "working_directory" from bdiExFaceInit structure. Replaced with variable "placeholder", leaving the option open for future init variables. Calls passing NULL for the bdiExFaceInit structure to diguy_exface_initialize() will not need to change.
- Fixed problem with Decision Bead that incorrectly put function variable_less_than_string() in variable query functions instead of character query functions.
- Added script_type argument to diguyScenario::eval_script() and diguyScenario::eval_script_file() functions.
Version 6.1.5
- Fixed problem that newly created characters were not appearing until the next scenario tick dt boundary was crossed.
- diguyCharacter::set_t() deprecated; use diguyCharacter::update().
- Added new function diguyCharacterPath::get_length().
- Fixed potential crash from call to function diguyCharacterPath::update().
- Character positions now stored in higher precision format.
- Added new functions:
- New local space camera. DI-Guy can now render in the local space of the camera. This allows DI-Guy to avoid putting large values on the rendering stack, avoiding numerical imprecision on objects that are far from the origin.
- Added new local space camera functions:
- diguyScenario::set_render_camera()
- diguyViewCamera::get_local_fix()
- diguyViewCamera::get_local_position()
In OpenGL, use gluLookAt(local_position_x, local_position_y, local_position_z, local_fix_x, local_fix_y, local_fix_z, 0.0, 0.0, 1.0); to emulate the DI-Guy camera.
Version 6.1.4
- Added new function diguyGraphicsShape::get_is_hidden().
- Added new functions to diguyCharacterGroup class:
- Added new functions to diguySensorRegion class:
- Removed unused functions from diguySensorRegion class:
- diguySensorRegion::get_characters_in_region()
- diguySensorRegion::update_characters_in_region()
- diguySensorRegion::update_candidate_characters_in_region()
Version 6.1.3
- Added new utility function diguy_convert_euler_angle_order(). This function should help DI-Guy API users convert the DI-Guy standard Euler angle order of ZXY (yaw then roll then pitch) into other Euler angle orders.
- Added new argument rampup_interval to function diguyCharacter::add_motion_texture(). This function makes it possible to more smoothly enter a motion texture. Previously the rampup was hard-coded to 0.2 seconds. If the function is to end existing motion textures, it also uses the passed rampup interval as the rampdown interval for ending the existing motion textures.
- Fixed annoying error message that was printed when motion textures ended.
- Added new variants that can be added to custom motions:
Version 6.1.2
- Changed win32 programming examples so that when examples are compiled for different versions of LIBC (i586_md_debug as opposed to i586_md, for example), the object files will be placed in separate directories.
- Added new function calls that will free memory allocated by the DI-Guy Graphics API loader once platform-specific objects have been created:
- Fixed a problem with gazing in which a character with orientation change enabled would do an extra shuffle to the left and back again when the character was already facing the gaze angle at gaze start.
- Added new side-effects to characters that die, including those for which the diguyCharacter::die_now() function is called:
- all aiming is ended
- all gazing is ended
- all pointing is ended
- head nodding and shaking are stopped
- all gestures are aborted
- all sounds originated by the character are stopped
- Added new function call limitations to dead characters. The following function calls will have no effect on dead characters:
- diguyCharacter::add_motion_texture()
- diguyCharacter::aim_at_angle()
- diguyCharacter::aim_at_angle_local()
- diguyCharacter::aim_at_character()
- diguyCharacter::aim_at_point()
- diguyCharacter::aim_at_point_local()
- diguyCharacter::create_and_force_bridge_path()
- diguyCharacter::execute_gesture()
- diguyCharacter::execute_1stage_gesture()
- diguyCharacter::execute_2stage_gesture()
- diguyCharacter::execute_3stage_gesture()
- diguyCharacter::fire_screen_space_bullet()
- diguyCharacter::fire_weapon()
- diguyCharacter::fire_weapon_n_times()
- diguyCharacter::force_action()
- diguyCharacter::force_action_and_path_shape()
- diguyCharacter::force_action_with_duration()
- diguyCharacter::force_partial_path()
- diguyCharacter::force_path()
- diguyCharacter::gaze_at_angle()
- diguyCharacter::gaze_at_angle_local()
- diguyCharacter::gaze_at_character()
- diguyCharacter::gaze_at_point()
- diguyCharacter::gaze_at_point_local()
- diguyCharacter::lpoint_at_angle()
- diguyCharacter::lpoint_at_angle_local()
- diguyCharacter::lpoint_at_character()
- diguyCharacter::lpoint_at_point()
- diguyCharacter::lpoint_at_point_local()
- diguyCharacter::nod_head()
- diguyCharacter::play_sound()
- diguyCharacter::push_path()
- diguyCharacter::resume_interrupted_path()
- diguyCharacter::set_aim()
- diguyCharacter::set_desired_action()
- diguyCharacter::set_nod()
- diguyCharacter::shake_head()
- Added diguyCharacterPath::get_point_at_distance() function that makes it possible to sample path points. The function is very similar to diguyPathShape::get_point_at_distance().
- Changed diguyScenario::create_waypoint() function to take an additional argument. Waypoints created with the function can now have different initial weights for entering and leaving the waypoint.
Version 6.1.1
- Added new member function:
- diguyLoadManager::remove_all_cameras()
- Added new member functions to diguyVariable that allow for setting and getting the initial value of the variable, and for retrieving the scenario and/or character the variable belongs to:
- diguyVariable::get_scenario()
- diguyVariable::get_character()
- diguyVariable::get_initial_value_as_int()
- diguyVariable::get_initial_value_as_float()
- diguyVariable::get_initial_value_as_string()
- diguyVariable::set_initial_value_as_int()
- diguyVariable::set_initial_value_as_float()
- diguyVariable::set_initial_value_as_string()
- Added character variables to characters. Character variables are almost exactly like scenario variables but are local to each character instead of being shared across the scenario. For example, all characters in a scenario could be given a variable named "panic_level" that tracks how panicked the character is. Character variables use the same class as scenario variables: diguyVariable. The following functions are available for accessing character variables:
- diguyCharacter::get_num_variables()
- diguyCharacter::get_variable_at_index()
- diguyCharacter::find_variable()
- diguyCharacter::find_or_create_variable()
- diguyCharacter::destroy_variable()
- diguyCharacter::variable_equal_to_int()
- diguyCharacter::variable_greater_than_int()
- diguyCharacter::variable_less_than_int()
- diguyCharacter::variable_equal_to_float()
- diguyCharacter::variable_greater_than_float()
- diguyCharacter::variable_less_than_float()
- diguyCharacter::variable_equal_to_string()
- diguyCharacter::variable_greater_than_string()
- diguyCharacter::variable_less_than_string()
Version 6.1.0
- Added new functions to the DI-Guy Graphics API to make it easier to know which character links or shapes belong to, and to easily get a pointer to the character's base link:
- Added new function diguyGraphicsLink::get_transformation_matrix(). This function provides access to the link transformation in matrix form rather than separate vectors for translation, rotation, etc.
- Added new blend functions "StepHalfway" and "Waver". The "StepHalfway" blend function makes an instant step from 0 to 1 halfway through the blend. The "Waver" blend function wavers from 0 to 1 back to 0 and back to 1 using a three-quarter sine wave.
- Added functions to diguyScenario API:
- Added functions to diguyCharacterGesture API:
Version 6.0.8
- Changed DI-Guy Graphics API to not print a warning if a geometry file is not found. This allows external loaders to load their own version of a geometry file without warnings, and without the file having to be present in $DIGUY/geometry.
- Added function diguyCharacter::is_group_member().
- For Windows, added the DI-Guy version number as a suffix to the .dll that gets installed in the bin directory.
Version 6.0.6
- Changed default for gaze parameter "orientation enabled for gaze". In DI-Guy 5.x this parameter defaulted to 0 for all characters except the sergeant. In earlier versions of 6.0 this was changed to "1 if character has turning actions, else 0". This change has, however, resulted in too much confusion and user astonishment. The new (and hopefully final) change is to default the parameter to 0 for all characters. This fixes a backwards incompatibility problem where some version 5 characters that were gazing would leave their path on version 6 and thus not complete the actions specified by their path.
- Implemented function diguyCharacter::end_aim(). This function had been omitted from the DI-Guy API.
- Fixed problem with initial value of scenario variables, where the integer value of each variable was initialized to zero, even if the intended initial value was nonzero.
- Fixed problem when merging two scenarios with different values for tick dt. Decision beads, Script event beads, Aim beads and Gaze beads were being improperly scheduled.
Version 6.0.5
- Fixed diguyCharacter::get_aim_azimuth() and diguyCharacter::get_aim_elevation(). They were returning zero. Now they return meaningful values if the character is aiming.
Version 6.0.4
- DI-Guy can now use OpenGL's multitexturing mechanism. The OpenGL texture unit that DI-Guy will use can be set by setting the bdiGraphicsInitOgl::use_multitexture_extension and bdiGraphicsInitOgl::texture_unit initialization variables.
Version 6.0.3
- Fixed a problem with DI-Guy Graphics API functions not being correctly declared for DLL use.
- Fixed a problem with calling path edit functions on a path that is in use. The change was not being fully propagated to the character's motions.
- Eliminated GoThere camera instability at low frame rates.
- Eliminated aiming instability at low frame rates and at low desired locate times.
Version 6.0.2
- No changes.
Version 6.0.1
- Fixed problem with motion scaling where the scale factor was being applied twice in some cases. (PR 3029)
- Removed deprecated diguyCharacter functions:
- diguyCharacter::force_action_by_name()
- diguyCharacter::get_desired_action_name()
- diguyCharacter::set_desired_action_by_name()
- diguyCharacter::force_partial_path_by_name()
- diguyCharacter::force_path_by_name()
- diguyCharacter::push_path_by_name()
- diguyCharacter::set_parent_by_name()
- Removed deprecated diguySensorRegion function diguySensorRegion::contains_character_by_name().
- Removed deprecated diguySignal function diguySignal::play_sound().
- Removed deprecated diguyScenario function diguyScenario::find_or_create_face_expression().
Version 6.0.0
- Made aiming precise. Characters now actually aim at the targets specified by aim beads, rather than giving an approximation of proper aim.
- Made aiming dynamic. Character aiming motion is now much more realistic, homing in on the specified target.
- Added new diguyCharacter functions:
- diguyCharacter::aim_at_angle()
- diguyCharacter::aim_at_angle_local()
- diguyCharacter::aim_at_point()
- diguyCharacter::aim_at_point_local()
- diguyCharacter::aim_at_character()
- diguyCharacter::set_aim_param_desired_locate_time()
- diguyCharacter::get_aim_param_desired_locate_time()
- diguyCharacter::get_aim_is_acquired()
- diguyCharacter::get_aim_is_steady()
- diguyCharacter::set_weapon_near_range()
- diguyCharacter::set_weapon_far_range()
- Added diguyLoadManager class. Members are:
- diguyLoadManager::add_camera()
- diguyLoadManager::add_view_camera()
- diguyLoadManager::move_camera()
- diguyLoadManager::change_view_camera_settings()
- diguyLoadManager::remove_camera()
- diguyLoadManager::set_enable_culling()
- diguyLoadManager::set_nonvisible_update_rate()
- diguyLoadManager::set_zone_bounds()
- diguyLoadManager::set_zone_parameters()
- diguyLoadManager::set_max_update_period()
- Added new diguyApp functions:
- diguyApp::create_load_manager()
- diguyApp::get_load_manager()
- diguyApp::destroy_load_manager()
- Added new diguyCharacter functions:
- Added new diguyApp class. There is only one diguyApp object per application. It is available after the diguy_*_initialize() call by calling the static function diguyApp::get_app(). The diguyApp object will hold data that is application-wide, which in the past has been somewhat artificially placed in the diguyScenario class.
- Removed support for character history types DIGUY_HISTORY_TYPE_FIRST and DIGUY_HISTORY_TYPE_LAST. Characters saved using these history types will have their history type set to DIGUY_HISTORY_TYPE_COMPLETE.
- Moved some static functions from diguyScenario to diguyApp:
- diguyScenario::add_default_callback() deprecated; use diguyApp::add_default_scenario_callback()
- diguyScenario::remove_default_callback() deprecated; use diguyApp::remove_default_scenario_callback()
- diguyScenario::remove_default_callback_with_user_data() deprecated; use diguyApp::remove_default_scenario_callback_with_user_data()
- diguyScenario::add_default_callback_script() deprecated; use diguyApp::add_default_scenario_callback_script()
- diguyScenario::remove_default_callback_script() deprecated; use diguyApp::remove_default_scenario_callback_script()
- Deprecated two diguyCharacterPath callback ids. A decision bead or script bead at the appropriate place in the path should be used instead of the deprecated callbacks:
- CALLBACK_ID_TIME_LEFT has been changed to CALLBACK_ID_TIME_LEFT_DEPRECATED
- CALLBACK_ID_TIME_INTO has been changed to CALLBACK_ID_TIME_INTO_DEPRECATED
- Fixed problem with gestures not range checking stage argument. If 0 was passed as the stage in some functions, memory overwrites could have occurred or garbage results could have been returned. Also updated doc of affected functions to specify that stages are between 1 and 3.
- Added functions to character for manually applying path bead effects:
- Added new diguyCharacterPathDecisionBead class. Members are:
- diguyCharacterPathDecisionBead::get_name()
- diguyCharacterPathDecisionBead::set_name()
- diguyCharacterPathDecisionBead::get_distance_into_path()
- diguyCharacterPathDecisionBead::set_distance_into_path()
- diguyCharacterPathDecisionBead::get_length()
- diguyCharacterPathDecisionBead::set_length()
- diguyCharacterPathDecisionBead::get_tin()
- diguyCharacterPathDecisionBead::set_tin()
- diguyCharacterPathDecisionBead::get_duration()
- diguyCharacterPathDecisionBead::set_duration()
- Added new diguyCharacterPathAimBead class. Members are:
- diguyCharacterPathAimBead::get_name()
- diguyCharacterPathAimBead::set_name()
- diguyCharacterPathAimBead::get_distance_into_path()
- diguyCharacterPathAimBead::set_distance_into_path()
- diguyCharacterPathAimBead::get_length()
- diguyCharacterPathAimBead::set_length()
- diguyCharacterPathAimBead::get_tin()
- diguyCharacterPathAimBead::set_tin()
- diguyCharacterPathAimBead::get_duration()
- diguyCharacterPathAimBead::set_duration()
- Added new diguyCharacterPathGazeBead class. Members are:
- diguyCharacterPathGazeBead::get_name()
- diguyCharacterPathGazeBead::set_name()
- diguyCharacterPathGazeBead::get_distance_into_path()
- diguyCharacterPathGazeBead::set_distance_into_path()
- diguyCharacterPathGazeBead::get_length()
- diguyCharacterPathGazeBead::set_length()
- diguyCharacterPathGazeBead::get_tin()
- diguyCharacterPathGazeBead::set_tin()
- diguyCharacterPathGazeBead::get_duration()
- diguyCharacterPathGazeBead::set_duration()
- Added function diguyCharacter::find_waypoint(). This function finds a waypoint by name.
- Added functions to access new bead types. Also added find functions for action beads and script beads. The following functions have been added to diguyCharacterPath:
- diguyCharacterPath::find_waypoint()
- diguyCharacterPath::find_action_bead()
- diguyCharacterPath::find_script_bead()
- diguyCharacterPath::get_num_aim_beads()
- diguyCharacterPath::get_aim_bead_at_index()
- diguyCharacterPath::find_aim_bead()
- diguyCharacterPath::get_num_decision_beads()
- diguyCharacterPath::get_decision_bead_at_index()
- diguyCharacterPath::find_decision_bead()
- diguyCharacterPath::get_num_gaze_beads()
- diguyCharacterPath::get_gaze_bead_at_index()
- diguyCharacterPath::find_gaze_bead()
- Added functions to diguyCharacterGesture API:
- diguyCharacterGesture::set_table_action_begin()
- diguyCharacterGesture::get_table_action_begin()
- diguyCharacterGesture::set_table_action_end()
- diguyCharacterGesture::get_table_action_end()
- diguyCharacterGesture::get_table_action_now()
- diguyCharacterGesture::get_table_action_next()
- diguyCharacterGesture::get_rampup_duration()
- diguyCharacterGesture::set_rampup_duration()
- diguyCharacterGesture::get_rampup_blend_function_name()
- diguyCharacterGesture::set_rampup_blend_function_name()
- diguyCharacterGesture::get_rampdown_duration()
- diguyCharacterGesture::set_rampdown_duration()
- diguyCharacterGesture::get_rampdown_blend_function_name()
- diguyCharacterGesture::set_rampdown_blend_function_name()
- diguyCharacterGesture::get_table_action_rep_duration()
- diguyCharacterGesture::get_table_transition_duration()
- diguyCharacterGesture::get_default_blend_duration()
- diguyCharacterGesture::get_num_table_actions()
- diguyCharacterGesture::get_table_action_at_index()
- Added functions for setting initial motion texture parameters:
- Plugins require a license.
- Moved to flexlm 10.1 on Windows for license management.
- Particles now work in locked scenarios.
- Made characters with non default actors display properly in Vega Prime.
- Saving review data now saves all generated data, not just up to the time slider.
- Fixed a bug with history saving.
Version 5.3.5
- Fixed problem with .flt loader not dealing well with .flt files that contain multiple nodes that have the same name. The .flt loader now more vigorously checks for name collisions.
- Removed one unused level of Motion LODs. The unused LOD 6 was not mentioned in documentation nor was it used in motion generation code. This change requires use of DI-Guy Data 5.3.5.
- Worked on diguyCharacterGesture API:
- diguyCharacterGesture::get_num_stages() deprecated; use diguyCharacterGesture::get_num_progression_stages()
- diguyCharacterGesture::set_stage_duration() deprecated; use diguyCharacterGesture::set_progression_stage_duration()
- diguyCharacterGesture::get_stage_duration() deprecated; use diguyCharacterGesture::get_progression_stage_duration()
- diguyCharacterGesture::get_stage_optimal_duration() deprecated; use diguyCharacterGesture::get_progression_stage_optimal_duration()
- Worked on diguyCharacterGesture documentation. Added more which functions can be called for which gesture types.
- Added type diguyCharacterGestureType and corresponding function diguyCharacterGesture::get_type().
- New experimental shooting functionality:
- Added callback diguyCharacter::CALLBACK_ID_GOT_SHOT.
- Added callback diguyCharacter::CALLBACK_ID_SHOT_SUCCESS.
- Added new find all hits functionality.
- Added new diguyShot class accessible from scripts, records who got shot and where.
- Characters can now shoot multiple targets; added max_shot_hits to control the maximum number of shots to report. By default scene objects stop bullets.
- Weapon spread shots test against the octtree first (speed up).
- Fixed some bugs with review data.
- Experimental plugin infrastructure:
- Added functions diguyScenario::add_plugin() and diguyScenario::remove_plugin().
- The following functions can be exported from the dll to plug into DI-Guy code:
- void initialize(diguyScenario* s)
- void deinitialize(diguyScenario* s)
- void pre_draw(diguyScenario* s)
- void post_draw(diguyScenario* s)
- void update(diguyScenario* s)
- void reset(diguyScenario* s)
- void save_review_data(const char* filename)
- void load_review_data(const char* filename)
- See Documentation for more information.
Version 5.3.4
- Added new callbacks for use with the diguyCharacter::add_callback() function:
- CALLBACK_ID_CURRENT_APPEARANCE_CHANGED
- CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED
- Added new gesture type: table gestures. Table gestures are much like character action tables, and allow a single gesture to employ many different motions.
Version 5.3.3
- Improved SDK's initialization time. Version 5.3.3 should take about half the time of version 5.3.2 to initialize.
- Changed default override stage of function diguyCharacter::create_pose_override() from 2 to 3.
- Improved documentation for diguyCharacter "Pose Functions" section.
- Improved documentation for diguyScenario::set_automatic_motion_lod_switching() function.
- Added function diguyCharacter::end_all_gestures(), a gentler way than diguyCharacter::abort_all_gestures() to stop a character's active gestures.
- Fixed problem with changing an existing character's type via the diguyCharacter::set_character_type() function. The geometry of the character wasn't displaying properly until the scenario was reset. This has been fixed.
- Fixed documentation for the diguyCharacterPoseOverride::get_pose_in_radians() function; it was incorrectly implying that it could be used to read the current pose of the character, when it really only returns the most recent pose as set by diguyCharacterPoseOverride::set_pose_in_radians().
- Fixed problem where specifying a non-existent default appearance for a character caused a crash.
- Fixed problem where characters with no links due to config file syntax errors caused a crash.
Version 5.3.2
- Added missing initial position and orientation functions to diguyCharacter:
- Added set_name() functions to most DI-Guy API objects.
- Added better access to path data such as waypoints and action beads. The following functions have been added to diguyCharacterPath:
- diguyCharacterPath::update()
- diguyCharacterPath::get_num_waypoints()
- diguyCharacterPath::get_waypoint_at_index()
- diguyCharacterPath::create_waypoint()
- diguyCharacterPath::get_num_action_beads()
- diguyCharacterPath::get_action_bead_at_index()
- diguyCharacterPath::create_action_bead()
- diguyCharacterPath::destroy_action_bead()
- diguyCharacterPath::get_num_script_beads()
- diguyCharacterPath::get_script_bead_at_index()
- diguyCharacterPath::create_script_bead()
- diguyCharacterPath::destroy_script_bead()
- Added better access to path shape data such as waypoints. The following functions have been added to diguyPathShape:
- Added new diguyCharacterPathActionBead class. Members are:
- diguyCharacterPathActionBead::get_name()
- diguyCharacterPathActionBead::get_action()
- diguyCharacterPathActionBead::set_action()
- diguyCharacterPathActionBead::get_distance_into_path()
- diguyCharacterPathActionBead::set_distance_into_path()
- diguyCharacterPathActionBead::get_length()
- diguyCharacterPathActionBead::set_length()
- diguyCharacterPathActionBead::get_derive_length_flag()
- diguyCharacterPathActionBead::set_derive_length_flag()
- diguyCharacterPathActionBead::get_tin()
- diguyCharacterPathActionBead::set_tin()
- diguyCharacterPathActionBead::get_duration()
- diguyCharacterPathActionBead::set_duration()
- diguyCharacterPathActionBead::get_derive_duration_flag()
- diguyCharacterPathActionBead::set_derive_duration_flag()
- diguyCharacterPathActionBead::get_desired_duration()
- diguyCharacterPathActionBead::set_desired_duration()
- diguyCharacterPathActionBead::get_derive_desired_duration_flag()
- diguyCharacterPathActionBead::set_derive_desired_duration_flag()
- diguyCharacterPathActionBead::get_motion_reps()
- diguyCharacterPathActionBead::set_motion_reps()
- diguyCharacterPathActionBead::get_derive_motion_reps_flag()
- diguyCharacterPathActionBead::set_derive_motion_reps_flag()
- diguyCharacterPathActionBead::get_transition_before_bead_flag()
- diguyCharacterPathActionBead::set_transition_before_bead_flag()
- Added new diguyCharacterPathScriptBead class. Members are:
- diguyCharacterPathScriptBead::get_name()
- diguyCharacterPathScriptBead::set_name()
- diguyCharacterPathScriptBead::get_script()
- diguyCharacterPathScriptBead::set_script()
- diguyCharacterPathScriptBead::get_distance_into_path()
- diguyCharacterPathScriptBead::set_distance_into_path()
- diguyCharacterPathScriptBead::get_length()
- diguyCharacterPathScriptBead::set_length()
- diguyCharacterPathScriptBead::get_tin()
- diguyCharacterPathScriptBead::set_tin()
- diguyCharacterPathScriptBead::get_duration()
- diguyCharacterPathScriptBead::set_duration()
- Changed API of diguyWaypoint object to have more intuitive function names. Old function names have been deprecated but will still work.
- Improved behavior of reflected characters when the remote scenario is reset. After remote reset, on remote play, local reflected characters now immediately perform their desired actions rather than gradually transitioning into them.
- Switched to using asynchronous I/O for DIS networking. This improves DI-Guy's robustness on networks with lots of entities.
- Fixed problem with diguyPathShape::get_length(). The diguyPathShape::update() function must be called after waypoints have been added to the path shape for the length to be updated. After the update() call, get_length() will return a valid length. (PR 2852)
- Fixed problem with diguyCharacter::get_current_path_index() function. The value 0 was being returned when the character was not on a path, and when the character was on the first path. The return value for "not on a path" has been changed to -1. (PR 2856)
- Fixed problem with diguyCharacter::get_path_name_at_index() function. An empty string was being returned when the path at the specified index had a zero-length name, and when there was no path at the specified index. The return value for no path at index has been changed to NULL.
- Fixed problem which, under DIS using DI-Guy custom information, caused newly created reflected characters not to receive custom action information for up to five seconds. Now custom action information is sent immediately after the first entity state PDU is sent.
Version 5.3.1
- Added support for "live reckoning". Live reckoning provides more accurate display of the behavior of remote characters, using less networking bandwidth.
- Added network support for multiple concurrent scenario instances. Characters in all scenarios are published to the network. Incoming entities are created in the scenario which is passed to diguy_dis_go_online() or diguy_hla_go_online().
- Improved behavior of reflected entities when the local scenario is reset.
- Removed some options from network.cfg. It is recommended that the current network.cfg be deleted and let DI-Guy recreate it.
- Improved behavior of reflected entities when the remote scenario is paused. Now they can move to their correct location even when paused, rather than staying still in a location that is suboptimal.
- Fixed bug preventing incoming (reflected) non-soldier characters from walking when DI-Guy custom action information is not available.
- Removed Review Data dt data member from diguyScenario objects and from the DI-Guy Scenario UI. Any scenario review data is now recorded at the scenario's tick dt.
- Added access to the DirectX 9 world stack used by DI-Guy through the new function diguy_dx9_get_world_stack(). This allows users of DI-Guy for DirectX 9 to offset the origin used by characters from 0,0,0. Use of the new function is demonstrated in the example program $DIGUYprogramming_examplesdiguy_dx9/offset_example.
- Made it possible to set the tick dt of a scenario using the function diguyScenario::set_tick_dt(). This was previously possible only in the DI-Guy Scenario UI.
- Made it possible to turn off review data generation for scenarios. By default, scenarios created in the DI-Guy Scenario editor will have review data enabled; scenarios created using the DI-Guy API will have review data disabled. Turning on review data can add significantly to memory usage. Changing review data settings can be done using the function diguyScenario::set_history_type().
- Turned off review data by default for characters created using the DI-Guy API. The significantly reduces the memory overhead of each character. Review data can be re-enabled using the function diguyCharacter::set_history_type().
- Added new callbacks for use with the diguyCharacter::add_callback() function:
- CALLBACK_ID_PRE_DIE
- CALLBACK_ID_POST_DIE
- CALLBACK_ID_PRE_FIRE_WEAPON
- CALLBACK_ID_POST_FIRE_WEAPON
- Fixed problem with setting character's current appearance too soon after the character was created. This caused a crash.
Version 5.2.2
- New function diguyCharacter::set_weapon_fires_live_rounds() sets whether firing causes collision search for characters to be killed. Default is to fire blanks. Old scenarios that used this functionality need to call this function to re-enable firing to kill other characters.
- Fixed problem for expressive faces in Vega. If a model without texture or material was drawn just before the expressive face, the expressive face would inherit its color.
- Fixed various memory leaks.
Version 5.2.1
- Improved DIS/HLA Networking:
- Motion behavior improved when receiving standard PDUs in DIS.
- Motion behavior improved when not using DI-Guy Custom FOM in HLA.
- Improved vpNet/DI-Guy for Vega Prime interaction:
- DI-Guy for Vega Prime now shares the network connection created by vpNet (MaK Technologies networking add-on to MultiGen-Paradigm's Vega Prime product).
- Special programming no longer required to have DI-Guy for Vega Prime/vpNet work together.
- Users need to maintain two separate modelmaps, but mapping to NULL is now implemented for both vpNet and DI-Guy, so that entities being drawn by other modules in Vega will not be drawn a second time by DI-Guy for Vega Prime and vice-versa.
- Programming examples have been expanded to show simple examples of vpNet/DI-Guy for Vega Prime interaction. Note that these programming examples are copied to the samples directory of the Vega Prime installation.
- Added function call diguy_net_get_character_from_id() which returns the diguyCharacter associated with the entity id. Works with both DIS and HLA. (see ref. manual).
- Added option hla_advisories to network.cfg. When using HLA, if the RTI uses advisories, hla_advisories should be set to 1. If not, set this to zero. Mismatch between the settings should be avoided.
- Fixed problem for expressive faces in Vega. The normals on the head were being scaled incorrectly, causing strange shading artifacts.
- Fixed problem for expressive faces in Vega. If more than one expressive face was in a scene, all expressive faces would use the texture of the first expressive face.
Version 5.2.0
- Added dynamic (dll) versions of DI-Guy libraries for win32.
- Discontinued support of MT and MTd versions of DI-Guy libraries for win32.
- Fixed nmake-based makefiles for win32 programming examples so that they'll work if DI-Guy is installed in a directory with spaces.
Version 5.1.25
- Initial release of version 5.1.
Versions 5.1.0 - 5.1.24
- These versions are 5.1 pre-releases.
Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
DI-Guy Scenario
Version 9.1.4
- Scenario can now be stopped, run, and reset in I-Guy Input Mode by hitting Shift-Space (toggle stop and run) an Shift-Ctrl-Space (reset). Keyboard reset can be disabled in I-Guy mode in the I-Guy Page.
Version 9.1.0
- Large rework of Object pages. There is now one Scenario Objects page that contains all of the pages from previous versions' Scenario Elements, Character Elements, View Settings, Event Handlers, and DI-Guy AI Elements. Pages are separated into multiple tab groups.
Version 9.0.2
- Fixed bug where network page wouldn't remember current coordinate converter settings when closed and reopened.
Version 9.0.0
- Near and far parameters of character weapon parameters are now always enabled, and will alway be taken into consideration. Before they only had an effect if the "spread" of a weapon was greater than 0.
- New command line flag added: -runtime_only. If this flag is specified, DI-Guy Scenario will not attempt to check out the development license feature but instead will remain in runtime mode, leaving the development license available to another program.
Version 8.6.3
- Changing a character's character type no longer deletes all action beads. The actions of the existing beads are changed to the nearest equivalent of the new character type.
- Region/crowd painting now works on scene object grids. delayed loading of grids should be more responsive as well.
- Fixed issues with feelers: changes made via UI now change all crowd members, 3D rep of feelers now updated immediately when changed and on reset.
- Fixed set_playback_mode_play() so that it works in decisions.
- Ctrl-a will now restore previous visibility settings if hit 2 times in a row.
- Added experimental feeler callback option.
- Minor UI preference bug fixes.
Version 8.6.2
- Improved speed of particle system rendering.
- Fixes to scene object grid rendering.
- Fixed problem that character initial path could not be deleted.
- If last character path is deleted, initial position and orientation controls now become enabled as they should.
- Added preference for changing the fast-forward playback factor. Default is 4. Can be changed in the Preferences dialog.
- Symbolic View: Characters merging into a crowd symbol should now work outside of ortho_xy view.
- 3d UI: Added right click pop-up menu to character mode.
- Added smoothing to ground clamp function.
Version 8.6.1
- Added one click movie creation to DI-Guy Scenario.
- More of the UI has up/down sorting arrows.
- Added is_speaking as a decision bead query.
- Fixed bug with "this_character" not properly having sub-objects listed in decision beads.
- Added the ability for labels to reflect character state, accessible in the character label UI.
- Fixed math issues with scene object sub-culling, feature should be significantly more robust with scaled and rotated scene objects.
- Character's added to dynamic octtree and scene object characters should require less memory, and be more efficient.
- Minor improvements to advanced light UI.
- Action bead page now lists the current action's information.
- Fixed bug where 1st person I-Guy could not be killed.
- Better performance when populating or repopulating crowds.
Version 8.5.0
- Initial DI-Guy SAF release.
- Added new SAF Elements palette that provides access to DI-Guy SAF objects.
- Added shortcut ctrl-a: turns off all supplemental visuals, providing better viewing for non-demo scenario run.
- Added "Ortho XY" Projection Mode to Camera settings. This provides an alternative planview that uses an orthonormal projection rather that a perspective-based one.
- Added "Symbolic View" checkbox to Camera settings. When this is checked characters will be represented as flat polygons rather than their full animated graphics. This, along with the Ortho XY Projection Mode, provides a good SAF-like view of a scenario.
Version 8.0.3
- Fixed issue with I-Guy not using a joystick for input, even through the UI says it is enabled.
- Fixed issue with children's bounding volumes not being factored into culling calculation.
- User interface polish:
- Added more context sensitive input mode buttons.
- Labels identifying what character and path is selected have been replaced with combo boxes, allowing for faster editing of complex scenarios.
- Fixed various other small UI issues.
Version 8.0.2
- Fixed issue with sound not playing properly when scenario is fast-forwarded.
- Fixed issues with jittery camera in I-Guy 3rd person mode.
- Multisync masters now send and receive characters over the network.
Version 8.0.0
- Initial 8.0 release candidate.
- Improved plugin interface so that existing plugin name can be changed instead of just being deleted and a new one created.
- DI-Guy plugin libraries can now be browsed for in the Plugins page, instead of just typing in the library name.
- Added limits to the Tick dt parameter in the Performance page. The Tick dt must now be >= 0.01 seconds, and <= 0.1 seconds.
Version 7.1.19
- Made improvements to DI-Guys sound system, sounds will now pause along with the scenario and can now be fast forwarded and rewound (to a degree).
Version 7.1.16
- Added 'Init. Up Vector' combo box to Character page. Allows user to set the up vector that the character will use. Previously this could only be done via script of decision.
Version 7.1.15
- Added '-safe_mode' flag to command line. Passing this flag on the command line will cause DI-Guy Scenario to start up using default preferences, which may resolve some unexpected issues.
Version 7.1.14
- Added chain settings to Merge Settings UI.
- Fixed issues with selecting a different path by clicking on one of its waypoints in Path Edit Input Mode.
Version 7.1.12
- Review data for new scenarios is now turned off by default.
- New characters created in DI-Guy scenario now have no review data by default. Characters from existing scenarios will not be affected. Note that this removes the ability to rewind scenarios unless some review data is turned back on.
Version 7.1.11
- Sounds now stop when a scenario loops or is rewound. Added a 'Stop All Sounds' button to the Scenario palette Sound page, to make it easier to stop playing long sounds.
- Window menu now always opens UI windows instead of toggling whether they are shown or hidden. If a window is already open, it is brought to the top of the window stack.
- The F-key shortcuts for opening UI windows have changed behavior. Pressing F2 for the Time Control window, for example, will make the Time Control window visible by either opening it or bringing it to the top. Old behavior toggled whether windows were shown or hidden. Use Shift-F-key to use old toggle behavior (hide if showing, show if hidden).
- Character Labels Visibility is now set to 'None' in the default .dss file.
Version 7.1.8
- Fixed problem with restoring all event mappings when reloading a previously saved scenario.
Version 7.1.7
- Switch to new installer setup. Should better detect and remove previous versions, and in general be more stable.
- Added preliminary support for TerraPage .txp files in scene objects.
- Fixed issue with OpenAL not being able to play sounds on some machines.
Version 7.1.6
- Added 3rd Parameter to Decision Beads.
- Added diguyCharacter::create_and_force_bridge_spath() and diguyCharacter::force_local_path to Decision Beads editor.
- Application now asks user to confirm whether an existing file can be overwritten when Save As is selected.
- Added Comment field to Decisions and Decision Beads.
- Added new cursor to represent current input mode.
- Added events page to character as well as signal and sensor region. Same basic functionality as the event mapper but more distributed UI design.
Version 7.1.4
- Added functionality to the character elements page that allows character list to be reordered using up and down arrows next to the list box.
- Character list box will now display disabled characters in gray.
Version 7.1.3
- Added offset XYZ line edits for aiming at characters on Aim Bead page.
Version 7.1.2
- Added new "Character" Input Mode. While in this mode clicks and drags will have the following effects:
click and drag translate character shift-click and drag rotate character
- Made 'Delete' key work on more object types in the 3D window, depending on the current Input Mode:
Character or PeopleBlitzer delete current character Path Edit or Path Insert delete current waypoint Action Edit or Action Insert delete current action bead Sensor Edit or Sensor Insert delete current sensor region Group delete current group
Version 7.1.1
- Added new "Group" Input Mode. While in the mode clicks and drags will have the following effects:
click and drag translate all group characters shift-click and drag rotate all group characters ctrl-click add or remove clicked character to group
- Added Chain Sim Settings page to the Scenario Elements palette.
- Added edit boxes to event beads (Aim, Decision, Gaze, and Script beads) that allow beginning and end of beads to be tied to specific waypoints or action beads.
- Added ability to set character label colors on the Character page.
- Added optional labels for action beads in the 3D window that show the action name and the time at which the action begins.
- Current selected character index is now saved in .dss file and restored when the scenario is loaded.
- Revamped Plugins page. Each plugin now has these parameters:
Required By Scenario If checked, this plugin is required for proper execution of this scenario. When the scenario is loaded this plugin will be loaded as well if it is not already active. Default is unchecked. Unload on Scenario Close If checked, this plugin will be unloaded if this scenario is closed or a new scenario is opened. Default is unchecked. Accepts Mouse Input If checked, this plugin will receive mouse events via the mouse plugin functions when the input mode is "Plugin". Default is checked.
- Added new camera frustum culling functionality that works on the subshapes of a scene object. The functionality can be turned on via a check box in the performance page, or via diguyScenario::set_scene_object_sub_culling_enabled() and diguyScenario::get_scene_object_sub_culling_enabled(). Potentially this can lead to 100%-200% rendering speed increase for large well segmented terrains. Note currently scene object culling must be on for this to work.
Version 7.1.0
- Revamped Cut and Paste operations to use the merge functionality that makes sure objects added to a scenario have unique names.
Version 7.0.8
- Camera speed UI input was broken, should be responsive again
- Hitting cancel in particle system texture map property widget will no longer delete the currently selected texture.
- Fixed Camera Affected by Script events check box; was actually an SDK fix.
Version 7.0.5
- Enhanced character path following so that waypoints that have a roll parameter specified will roll the character as it travels along the path.
- Enhanced character path following so that characters can now pitch "upside-down" along paths.
Version 7.0.3
- Look At button now works for reflected characters.
Version 7.0.1
- Velocity Noise on particles will now get transformed with the parent's orientation.
- Fixed problems with various guide algorithms not working well if the desired z coordinate is not at the same altitude as the character.
- Re-enabled "-C cfg_file" command line flag.
Version 6.1.10
- Fixed problem that prevented some parameters from being editable in the Decision editor; in particular, when param 2 was an appearance or a string.
- Fixed aim trajectory rendering to more consistently render and use the proper color.
- Fixed problem with I-Guy characters not being able to move forward and back.
- Particles are more aggressive about requesting that octtree is rebuilt.
- High velocity particles, stuck particles and bouncing particles all interact better after colliding with scene geometry.
- BDI_LOG_FATAL errors will behave better in DI-Scenario, giving the option to save before exiting.
- Fixed decision beads pseudocode description crash.
Version 6.1.9
- Fixed problem with OpenGL renderer that prevented objects with subfaces from rendering correctly.
- Fixed problem with Draw Mode radio buttons in the Preferences dialog not having the correct effect on rendering.
- Changed info popups to show up as dialog windows separate from the main window. This prevents the Primary 3D Window from un-maximizing when an info popup pops up.
- Fixed problem that scene objects did not correctly look in custom directory for models.
- Added code to check positions of DI-Guy Scenario windows; if windows will not be visible (are off-screen, etc.), they are moved to screen coordinate 0,0.
- Updated Networking Settings page to be consistent with V6 UI.
- Numerous fixes to Networking Settings page.
- Added About box with version information.
- Fixed bug that preferences weren't correctly saved if app was closed by clicking 'X' button in upper right corner.
- Fixed various problems with values entered into edit boxes being clobbered.
- Added plugins page to DI-Guy Scenario to match page from V6 UI.
Version 6.1.8
- Fixed world space collisions for particles, functionality was temporally broken.
- Particle UI should be now be almost entirely working in DI-Guy Scenario.
- Added load particle descriptions button to UI.
- Added collision plane rendering check box to UI.
- Added check box to particle page that optionally turns off placeholders.
- Added orientation flag to particles, useful for parented emitters.
- Renaming particles should validate names and echo to other appearance menus.
- Adding or removing particle descriptions now properly updates the appearance section of the character page and people blitzer.
- Particle manager was getting updated unnecessarily causing particles to playback 2x as fast.
- Fixed a focus out problem that yielded a hard lock up if a load manager error message was produced.
- Waypoints and sensor regions visuals weren't being properly updated when data changed.
- Editing a Scene object triggers the unsaved flag more often.
- Fixed a glitch where shadows and the profiler wouldn't work together.
- Added UI for setting character and scene object culling active.
- Added UI for setting character and scene object bounding volume visualization active.
Version 6.1.7
- Added UI for setting the character's label text and controlling whether the label is visible to the Character page.
- Added new visibility option for Character Labels on the Visibility page: Per Object.
- Major reworking of the DI-Guy Scenario user interface in preparation for the DI-Guy 7 release. A version of the program with the old interface (henceforth called the V6 UI) will be available in releases for awhile with a different filename. As time goes on new features that appear in DI-Guy Scenario may not appear in the V6 UI.
- Changed the sound module of DI-Guy Scenario to be based on OpenAL. This fixed a problem with sounds playing back too fast on certain systems, and allows for 3D position sounds.
Version 6.1.6
- Added "+plugin
" command line argument. This will load the specified plugin as the application is starting up. This is essentially the same as calling diguyApp::load_plugin() before the initial scenario is created. - Added "Plugin" page. This allows a scenario designer to specify which plugins are required for proper execution of the scenario.
- Fixed crash bug that occasionally occurred when the "Trigger Now" button was clicked on the Script and Decision pages.
- Added UTM Coordinates to the Networking page.
- Added "Decisions", which are similar to Script Events but have a UI for constructing logic similar to Decision Beads.
Version 6.1.4
- Fixed minor problems with decision bead page. The parameters for the sensor region function contains_character_by_type_and_appearance() did not include quotes and were not alphabetized.
- Added buttons "Add All" and "Remove All" to Group page.
Version 6.1.1
- Added Load Manager page to the Scenario window. Now users can enable load management, and adjust load management parameters from within DI-Guy Scenario.
- Particle warm up time should now work properly on reset.
- Added particle system life time, after which it will no longer emit particles.
- Added new Particle position and velocity noise options, should allow for better control and movement options.
- Added character variable querying to decision beads, can now query variables with: variable_equal_to_(float, int, string), variable_less_than_(float, int, string) and variable_greater_than_(float, int, string).
- Added character variable actions to decision beads, can now have actions that affect variables, using variable_set_value_as_(float, int, string) and variable_increment and decrement. string) and variable_greater_than_(float, int, string).
- Can now use decision beads to check whether someone's been shot, as well as where the shot hit.
- Changed how decision beads get pointers to objects; previously if an object was referenced multiple times in a decision bead (e.g., multiple queries were made of character "soldier-1" in the if clauses), the same object was searched for multiple times. Now a pointer to the object is just searched for once.
- Added Variable page to Character window. This page allows for creation, deletion, and editing of character variables. Character variables are almost exactly the same as scenario variables, but are private to each character instead of being shared across the entire scenario.
Version 6.1.0
- Ctrl-'u' now pushes a scenario undo onto the undo stack.
- Space bar toggles between play and pause; Ctrl-space bar does a reset.
Version 6.0.8
- DI-Guy Scenario now properly sets the network Force ID for outgoing entities based on group membership. Groups net_friendly, net_opposing, and net_neutral should be used to indicate the Force ID of outgoing entities.
- DI-Guy Scenario now assigns incoming entities to group net_friendly, net_opposing, or net_neutral based on the incoming Force ID.
- Incoming entities cannot now be assigned to or removed from groups. As well, groups to which incoming entities belong cannot be deleted.
Version 6.0.2
- Fixed problem with "Deflate" compression method for movie frame capture.
- Changed label of "Reset" button on Movie Settings page to "Reset Next Frame Number", to differentiate it from the Reset button on the Control palette.
Version 6.0.1
- Added setting of Scenario Review Data on Scenario Performance page to .dss file. It was not being saved and restored as scenarios were saved and loaded.
- Changed scenario "Loop" functionality. If no characters have review data, the scenario will reset and play rather than rewind and show review data.
- Removed unused "Altitude" edit box from Networking property page. (PR 3002)
- Changed gaze bead logic so that faster gazes are possible. The desired locate time for gaze beads was effectively limiting the maximum angular velocity. Now if a gaze bead overrides gaze parameters, it also turns off use of the desired locate time for each link. (PR 3030)
Version 6.0.0
- Added "GoThere" camera movement. In Camera mode, if there is neither a Look At character nor a Look From character selected and the camera projection mode is "free camera", if you hold the Shift key and left-click on anything in the scene, the camera will rapidly travel to what you Shift+clicked on and turn around to face the location from which the camera came. This also works from modes other than camera mode, if you press and hold Alt+Shift while left-clicking.
- Changed Aim Bead UI to match Gaze Bead UI. Note that now aiming is also precise, and dynamic. See DI-Guy aiming change above.
- Fixed problem with current light and fog settings being overwritten when a .dss file was loaded. (PR 2019)
- Fixed problem with primary view of scenario returning 0 when diguyScenarioView::is_showing() was called on it. The correct value is now returned. (PR 2954)
- Added ability to change window title of primary view using the call diguyView::set_window_title(). (PR 2953)
- Fixed problem with looking at scene objects that are translated away from the origin. (PR 2722)
- Fixed problem for character paths on load. Paths that weren't the initial path of the character weren't being fully initialized until they were used by the character. Now all paths receive an initial update call on load. (PR 2791)
- Added new command line argument: -no_info_popup_server. Adding this argument to the command line causes DI-Guy Scenario to not attempt to start the program DIGuyInfoPopupServer. If the server is not started, info popup windows will not appear.
- Fixed problem that if the Initial Script Filename on the Script Event property page specified a script that didn't exist, no warning was given. Now a log message at Warn level is printed for a missing script file. (PR 2826)
- Fixed problem that prevented Performance settings from taking effect unless the scenario was saved and reloaded.
- Added edit box for setting character's initial motion texture gain. (PR 2845)
- Added UI preference for turning off the "DI-Guy Scenario by Boston Dynamics" overlay.
Version 5.3.5
- Changed edit box for setting character's initial motion texture into a combo box that shows which motion textures are available.
Version 5.3.2
- Small improvement to particle system UI, fixed outstanding issues with texture map browser widget. Color Widgets go right to a color picker. Clicking on static text opens subitems.
- Particle Systems now populate better between ticks, i.e. release intervals smaller then the update time now work.
- Performance improvements to the particle systems.
Version 5.3.1
- Removed Review Data dt data member from diguyScenario objects and from the DI-Guy Scenario UI. Any scenario review data is now recorded at the scenario's tick dt.
- Split Visibility / Performance page into two separate pages named Visibility and Performance.
Version 5.3.0
- Made it possible to turn off review data generation for scenarios. By default, scenarios created in the DI-Guy Scenario editor will have review data enabled; scenarios created using the DI-Guy API will have review data disabled. Turning on review data can add significantly to memory usage. Changing review data settings can be done using the function diguyScenario::set_history_type(), or using the Review Data Type radio buttons on the Visibility / Performance page of the DI-Guy Scenario editor.
Version 5.2.3
- Added joystick gain settings to Preferences. The gains allow DI-Guy Scenario users to adjust how sensitive the joystick will be. Gains of 1.0 retain previous behaviors. Gains less than 1.0 make joystick control less sensitive; i.e., it will take a larger movement to achieve a response. Gains more than 1.0 make joystick control more sensitive; i.e., it will take a smaller movement to achieve a response.
Version 5.2.1
- Special Effects: DI-Guy Scenario now offers a new add-on option for particle-based special effects. Examples of particle effects include smoke, fire, debris, missile trails, rotor wash, explosions, and dust trails. A Particles tab is now available in the Scenario palette for easy control of effects parameters include size, number, color, texture map, velocity, wind effect, and gravity.
- Fixed crashing bug when undoing path changes.
- Fixed minor issues with using soldier character backward actions and companion waypoints.
- Fixed problem where character sounds were not consistently playing when a scenario looped.
- Fixed problem where path shapes were not always being drawn when they should have been.
- Fixed problem where having path shapes in a scenario caused the program to crash on exit.
- Fixed crashing bug when shutting down a scenario that contains characters with guides.
Version 5.2.0
- Added ability to show character names as floating labels next to the character in the 3D window. Name labels can be shown for current character only, all characters, or no characters. Access via the Scenario | Visibility / Performance property page.
- Added "Look At" buttons for characters, waypoints, and path beads on respective Elements pages.
- Added special effects such as smoke and fire.
- Fixed perl script interpreter so that it will work if DI-Guy is installed in a directory with spaces.
- Fixed problem where LOD range scale factors weren't taking effect for scene objects.
DI-Guy AI
Version 9.0.1
- Fixed bug where characters were improperly going through walls.
- Fixed a number of minor crashes with creating behavior paths.
Version 9.0.0
- To enable DI-Guy AI in programs using the DI-Guy SDK, the header file "diguy_ai.h" must be included, and the functions diguy_ai_initialize() and diguy_ai_deinitialize() must be called at the appropriate times.
- New command line flag added to DI-Guy Scenario for optionally. disabling DI-Guy AI. By default DI-Guy Scenario will look for the diguy_ai license feature and check it out if it is present. By putting "-module diguy_ai" on the command line, DI-Guy Scenario will not attempt to enable DI-Guy AI.
- Fixed problem with DI-Guy AI agents having trouble killing animals.
- Painting a non-continuous region will be more likely to successfully create a behavior path, the longest path from the start point to the mouse up location is used.
- Fixed issues with feelers: changes made via UI now change all crowd members, 3D rep of feelers now updated immediately when changed and on reset.
- Fixed problem that agent feeler collide distance could not be greater than turn distance.
- It is now possible to add a feeler callback to enable DI-Guy AI agents to interact better with static geometry in the SDK. See the following functions for more details:
- diguyCharacter::agent_set_feeler_function()
- diguyCharacter::agent_get_feeler_function()
- diguyScenario::agent_set_default_character_feeler_function()
- Crowds and agents can now flee a group. Accessed via:
Version 8.6.3
- Crowd UI Improvements:
- Selected member will now only show postures and variants that it has available.
- Selected edit mode with display better visual cues indicating which crowd members will be affected by changes
- Added look at member button.
- Crowd Blitzing: Blitzing a crowd into an area that is non-contiguous will now attempt to find the longest path from the start point to the end point, This should fix a frequent failure case with the Blitzer.
Version 8.6.1
- DI-Guy SAF references changed to DI-Guy AI.
Version 8.6.0
- New DI-Guy SAF functions:
- diguyCharacter::agent_set_current_behavior_region_border_is_solid()
- diguyCrowd::set_all_members_enabled()
- diguyCrowd::set_current_behavior_region_border_is_solid()
- diguyCrowd::is_current_behavior_and_focus_group()
- diguyCrowd::is_current_behavior_and_focus_character()
- diguyCrowd::is_current_behavior()
- diguyCrowd::is_crowd_dead()
- diguyScenario::set_create_network_crowds()
- diguyScenario::get_create_network_crowds()
Version 8.5.0
- Initial DI-Guy SAF release.
- Added/updated DI-Guy SAF classes:
- diguyAgentParams
- diguyCrowdProfile
- diguyCrowd (extensive changes, promoted from experimental)
- New DI-Guy SAF functions:
- diguyScenario::destroy_crowd()
- diguyScenario::get_num_crowds()
- diguyScenario::find_crowd()
- diguyScenario::get_crowd_at_index()
- diguyScenario::create_crowd_profile()
- diguyScenario::destroy_crowd_profile()
- diguyScenario::get_num_crowd_profile()
- diguyScenario::find_crowd_profile()
- diguyScenario::get_crowd_profile_at_index()
- diguyScenario::create_group_in_region()
- diguyCharacter::agent_attack_group()
- diguyCharacter::agent_flee_character()
- diguyCharacter::agent_flee_location()
- diguyCharacter::agent_remove_all_flee_objects()
- diguyCharacter::agent_mingle_in_region()
- diguyCharacter::agent_pursue_character()
- diguyCharacter::agent_pursue_group()
- diguyCharacter::agent_travel_behavior_path()
- diguyCharacter::agent_travel_path_shape()
- diguyCharacter::agent_travel_region_border()
- diguyCharacter::agent_wander_region()
- diguyCharacter::agent_stop_behavior()
- diguyCharacter::agent_set_current_focus_character()
- diguyCharacter::agent_set_current_focus_group()
- diguyCharacter::agent_get_initial_params()
- diguyCharacter::agent_get_current_params()
- diguyCharacter::agent_set_current_params_from_profile()
- diguyCharacter::agent_get_current_focus_character()
DI-Guy Motion Editor
Version 9.0.1
- Added sample bvh file to motions directory, should help document how DI-Guy expects bvh files to be structured.
Version 9.0.0
- If motions are added to an action table, the proper default actor is now set automatically.
- Improved support for editing offset poses, should be much easier, and not cause abrupt joint behavior.
- Changing the actor of a motion arc now immediately applies the new scale to the motion, improvements to actor choosing, motion scaling, and importing code.
- Fixed a number of action table editing issues: including hard crash with undo, "remove unused motions" causing corrupted action tables.
- General UI improvements:
- +/- keys behave more intuitively with regards to the yawpitchroll of the poser.
- Shift key alters magnitude of +/- change.
- Poser editing gizmo now auto-scales based on camera distance.
- Editing mode is now displayed in 3D window title bar.
- Initial directories for me project, importing motions and saving motions are now set to expected values.
Version 8.6.3
- Fixed issue with zero length animations causing div by zero.
- Fixed minor bug with action tables not properly updating when unused motions were removed.
Version 7.1.11
- Fixed problem that many error messages would appear when saving action tables.
Version 7.1.0
- Fixed various problems with setting variants and angle extents for 2-axis motions in the Action Table Editor.
- Added sliders for testing aim actions in the Action Table Editor.
Version 6.1.9
- Fixed a number of bugs introduced with the upgrade to high precision positions.
Version 6.1.0
- Added new gesture table editor, allows for the modification of the action tables of table gestures.
- Null motion arcs are now editable, with blend type and duration as parameters.
Version 6.0.6
- BVH file import now supports joint translations in addition to rotations.
- Resultant BDM files contain only relevant variables.
Version 6.0.0
- Initial 6.0 DI-Guy Motion Editor release.
DI-Guy Character Viewer
Version 8.0.2
- Added view selection buttons that load new camera settings.
Version 6.1.9
- Fixed a number of bugs introduced with the upgrade to high precision positions.
- Fixed character transparency.
- Fixed selecting the default appearance.
Version 6.0.2
- Added default settings file that shows Character Type Appearance Action selection page.
Version 6.0.1
- Fixed problem where appearances that used a different actor than the default actor for a character did not correctly display.
Version 6.0.0
- DI-Guy Character Viewer added to DI-Guy Applications Suite. Allows quick review of character types, appearances, and actions.
DI-Guy for Vega Prime
Version 9.0.3
- vpNet 2.2 should now be enabled.
- Fixed issue with skyLight lighting and shaders not being properly applied.
- Fixed Memory leak when characters were unrefed to zero. Note a slight change to the basics example.
Version 9.0.1
- Fixed issue with new vpDiguys not having their locations properly set when reading out of an acf.
- Fixed issue with vpDiguyCharacters parented to vpTransforms not being properly created.
Version 9.0.0
- DI-Guy for Vega Prime now works with VP 2.2.
Version 8.6.3
- Fixed crash on exit when a vpDiguyCharacter parent was not a scenario.
- Fixed bug where characters would multiply render if they were parented to a vpObject
- parented and translated characters will should start broadcasting over the network with proper values.
Version 8.0.3
- Moved example_acfs to their own subdirectory instead of in
simple_playback directory.
- Added warning about setting channel LOD scale to zero, can cause
character to not draw.
- Fixed an issue where not having a valid license could cause vp
applications to crash.
- Fixed licensing issue effecting vpDiguyvpNetHLA/stealth.
- Basics Programming example now demonstrates ground clamping. As well as some other polish to programming examples.
Version 8.0.2
- Improved reporting of version information during installation.
Version 8.0.0
- Initial 8.0 release candidate.
- vpDiguy using vpNet should now support all coordinate conversion routines that vpNet supports.
- Memory usage and rendering performance improvements.
Version 7.0.8
- Fixed HLA networking licensing issue. Shouldn't need explicit hla license with vpNet.
- Added new autogenerated vpDiguy SDK docs.
- Added code to basics example that demonstrates creating a character after configure.
- Added documentation about vpDiguy openAL audio module's incompatibility with vpAudio module.
- Added static versions of vpDiguy libraries, updated autolinking code in vpDiguyCpp.cpp.
Version 7.0.7
- Fixed a number of vpNet related bugs.
- NOTE: In order to make vpNet interaction more solid reading of UTM coordinates out of Scenario Objects in vpDiguy has been disabled. UTM coordinates should be specified explicitly in the Net Connection gcf panel and the DI-Guy Scenario Network Page.
Version 7.0.6
- Fixed a number of recreation/looping related bugs.
Version 7.0.3
- Turned on vpNet/vpDiguy networking.
- Updated all the acfs to be vp 2.0 compliant.
- Updated vpDiguy gcf to include new 7.0 content.
- Fixed bug in UTM support.
- Fixed problem if multiple diguy particles attempt to instantiate the same type of vpFX. Fixed memory leak as well.
- Fixed divide by zero bug in networking code, could cause 0th character to never show up.
- Fixed bug where a character with an appearance change would not be recreated properly if a scenario was looping.
Version 7.0.0
- Fixed a couple of vpDiguyScenario function calls to print a warning if the functions are called before configure, instead of crashing.
- diguyCharacter's position syncs with vpDiguyCharacter on creation.
- Distributed rendering should now support mapping from DI-Guy
Version 6.1.11
- Consolidated networking examples, moved vpnet_(send/receive)_(dis/hla).acf into simple_playback because they didn't have unique c++ code.
- Added postLoad function to vpDiguyCharacter building code to try and enable sensor prime.
- Added vpDiguyScenario::set_time_independant_of_vp_sim_time() and vpDiguyScenario::get_time_independant_of_vp_sim_time() Allows time to be disconnected from sim time.
Version 6.1.10
- Renamed vpDiguyScenario::SetSyncCameraEnable() to vpDiguyScenario::setSyncCameraEnable().
Version 6.1.9
- Added per scenario time offset code.
Version 6.1.8
- Code now compiles against Vega 2.0 libraries:
- Added 2.0 style copy constructor for diguyCharacters to use in cloning.
- Fixed a bug where locked off joints issued warnings.
- Fixed a bug where some dynamic matrixes weren't being properly updating, fixes gazing inside Vega.
- Altered how diguyScenarios get loaded to accommodate new merging code.
- Unsupported Vega sound module now uses openAL.
Version 6.1.1
- gcfs and xsd no longer use "DI-Guy" in the naming convention; instead "Diguy" is now used. This avoids uncompilable code generated from lynxPrime's export .cpp functionality, as well as being more consistent with Vega conventions.
Version 6.0.8
- Fixed serious bug affecting HLA networking in DI-Guy for Vega Prime. This bug was causing various problems, ranging from missing or extra apparent network entities, to entities appearing at the wrong location.
Version 6.0.7
- Changed all Vega Prime code/acfs that specify "DI-Guy" to "Diguy". This should allow cpp exports to work better.
- Renamed vpDiguy.h/cpp to vpDiguySettings to better match acf info.
- Added Vega Prime view settings example that shows off camera sync code.
- Added Vega Prime simple example that shows how to initialize and run with no acf or dss.
Version 6.0.6
- Fixed problem which inadvertently disabled standard Vega Prime "X" key functionality (enable / disable the position strategy for all observers) in a vpDiguy application.
Version 6.0.5
- Fixed problems preventing DI-Guy for Vega Prime from working with DIS/HLA for Vega Prime. DI-Guy for Vega Prime now works with Vega Prime 1.2.2 from MultiGen Paradigm and vpNet 1.2.2 from MAK Technologies. Prior versions of vpNet are not supported.
Version 6.0.2
- Switched bdiString to bdiString* in vpDiguyCharacter.h, to remove a dependency on a header file that is not distributed.
Version 6.0.1
- Fixed problem in vpDiguy DIS networking. Outgoing entities were being published with entity numbers which conflicted with those being used by Vega Prime entities. On the receiving end, this would cause characters to pop from place to place.
Version 5.3.4
- Added a circle example program to programming_examples/vpdiguy.
Version 5.3.3
- DI-Guy characters types are now listed in a Character Type combo box.
- A character type sensitive list of appearances are now listed in an Appearance combo box.
- A character type sensitive list of actions are now listed in an Action combo box.
- A character type sensitive list of head appearances are now listed in a Head Appearance combo box.
- Altering the xyz position, heading or scale factor of a character now reflects on the character immediately.
- Adding a ground clamp to a DI-Guy Scenario node now adds the ground clamp to all of its children that don't currently have a ground clamp.
- Added new DI-Guy Settings functionality, including turning on/off scripting, sound effects, facial expressions, and the mapping of DI-Guy particles to Vega particles.
- Added new options to DI-Guy Scenario panel.
- Added toggle for showing scene objects found in the scenario file.
- Added Sync Camera option that will slave the observer/motion controls to the DI-Guy camera.
- Adding a DI-Guy character directly to a scene now creates one without a scenario being necessary.
- DI-Guy characters dropped into a vpNet model map are now correctly cloned. (Requires the latest version of vpNet.)
Version 5.2.1
- Better integration with MaK's vpNet module (see above).
- Installation now occurs as a separate module on the DI-Guy CD.
- Installation now automatically copies samples, documents to the Vega Prime installation as well as registering the DI-Guy for Vega Prime module.
DI-Guy Data, 9.0 and Earlier
Version 9.0.1
- Added character soldier_sa80, a British soldier with desert and temperate appearances using a sa80, based on the soldier_07 character. Available appearances:
- uk_desert_sa80
- uk_temperate_sa80
- Added character "projectile" with meters per second motions. Character projectile appearances:
- rpg_fired
- sa7_fired
- stinger_fired
- javelin_fired
- 120mm_tank_round_fired
- at4_fired
- 40mm_fired
- Added sound files: m203_hit.wav, fire_m203.wav, arabic_street_sounds.wav sa7_flight.wav, sa7_fired.wav, stinger_fired.wav, stinger_flight.wav, javelin_flight.wav, javelin_impact.wav, at4_fired.wav, at4_flight.wav at4_impact.wav, javelin_fired.wav, pk74_fired.wav, m1a1_fired.wav
Version 9.0.0
- Some character types have been made deprecated, and made "legacy" character types. If these character types are used in an existing .dss file or are created by a diguyScenario::create_character() call they will be created, but by default they will not show up in any DI-Guy Scenario character type selection controls. The legacy character types are:
- soldier_m249
- soldier_m4
- soldier_qk
- soldier_signals
- soldier_fire
- soldier_pistol
- soldier_melios
- afghan_child_crowd
- male_pedestrian3
- mped_sweeper
- mped1_misc
- mped2_misc
- mped3_misc
- mped5_crowd2
- mped5_crowd3
- mped5_crowd4
- mped5_crowd5
- mped5_crowd6
- fped2_misc
- fped3_crowd2
- suspect3
- marshaller
- esil
- soldier_precise
- launcher
- suspect
- suspect2
- fped_mother
- sergeant
Version 8.0.0
- New character types:
- chain_simulation
- civilian_cc
- soldier_cc
- soldier_at4
- soldier_javelin
- soldier_m249
- soldier_m9
- soldier_m4
- train
- New human appearances:
- 3 Security Guards
- Hazmat Suits level A B and C
- Assortment of Hazmat props
- 10 different Close Combat civilians
- Close Combat BDU and DCU with M9, M249, M240, M60, AT4, Javelin M4 with M203, M16 with M203 Stinger weapons
- Close Combat Opfor with SA16, RPG7, AK47 and PK74 weapons
- 3 Iraqi Insurgents
- 2 Iraqi Soldier
- 2 Iraqi Police
The following soldier appearances can have M9, M249, M240, M60, AT4, Javelin M4 with M203 and M16 with M203 weapons:
- 4 BDU with IBA
- 4 ACU with IBA
- 4 USMC with IBA
- 4 USMC desert with IBA
- New turret vehicle and technical vehicle appearances:
- gaz_truck_w_ZSU23_turret
- gaz_truck_w_ZSU23_turret_blown
- toyota_pickup_tech_turret
- toyota_pickup_tech_turret_blown
- humvee_50cal_grn_turret
- humvee_50cal_grn_turret_blown
- humvee_50cal_des_turret
- humvee_50cal_des_turret_blown
- m1a2_abrams_grn_turret
- m1a2_abrams_grn_turret_blown
- m1a2_abrams_des_turret
- m1a2_abrams_des_turret_blown
- t72_tank_grn_turret
- t72_tank_grn_turret_blown
- t72_tank_des_turret
- t72_tank_des_turret_blown
- m2a3_bradley_grn_turret
- m2a3_bradley_grn_turret_blown
- m2a3_bradley_des_turret
- m2a3_bradley_des_turret_blown
- leclerc_tank_descamo_turret
- leclerc_tank_descamo_turret_blown
- leclerc_tank_camo_turret
- leclerc_tank_camo_turret_blown
- Added Motions to Soldier and Soldier2 characters:
- stand_ready_8th_turn_left
- stand_ready_8th_turn_right
- stand_ready_qtr_turn_left
- stand_ready_qtr_turn_right
- stand_aim_extreme
- kneel_aim_extreme
- walk_aim
- walk_aim_back
Version 7.0.0
- New character types:
- chem_bio_pedestrian
- fdc_chock_and_chains
- fdc_fuelman
- fdc_grounding
- fdc_pallet
- fdc_pedestrian
- firefighter
- fireman_silver
- vehicle_technical
- vehicle_turret
- vehicle_wheels
Version 6.1.2
- Vehicles and props now have more accurate bounding volumes.
- Fixed problem with config file appearance syntax. The item "shapeset:shape" format caused a crash; it now works again.
- Replaced default scene object (setsdefault_stagedefault_stage.flt) with new default (setsdefault_stage7flt/default_stage7.flt). The new default_stage7.flt scene object has a number of different areas in which example scenarios can be placed.
Version 6.1.1
- Added new appearance "invisible_human"; Using this appearance for a human character will remove all geometry from the character, effectively making it invisible.
Version 6.1.0
- Added ability to specify in config files how long a null transition should take, and which blend function it should use.
Version 6.0.2
- Modified stroll motions of female_pedestrian character to move hands further away from body.
- Fixed some facing issues for soldier-type characters in transition motions between stand_aim and kneel_aim actions.
Version 6.0.1
- Added particle_puff.rgba to list of effects textures.
- Fixed the standing hip height of actor greg. It had been mistakenly changed to match that of actor bill. This caused problems for motion scaling for some actor / appearance combinations. (PR 3029)
Version 6.0.0
- Initial 6.0 DI-Guy Data release.
Version 5.3.5
- Removed one unused level of Motion LODs from data loaders config entries. The removed LOD 6 always had 0 variables in it, which wasn't useful for anything. This change requires use of DI-Guy Applications 5.3.5.
Version 5.3.2
- Changed format of Motion Texture (motex) entries in DI-Guy config files. The new format gives motion textures their own config entry keyword, separate from motion arcs. This allows DI-Guy to know exactly which motions are going to be used as motion textures. Custom motion textures using the old format need to be updated.
- Changed format of gesture entries in DI-Guy config files. Custom gestures using the old format need to be updated.
Version 5.3.1
- Fixed problem with airport_crowd character selecting wrong action for default moving action.
- Added sergeant2 character, which is similar to the sergeant character but better deals with transitions between actions.
- Added fped_mother2 character, which is similar to the fped_mother character but better deals with transitions between actions.
Version 5.2.2
- Running motion has been improved for the following characters: afghan_fighter, cbd, soldier, soldier2, soldier_precise, soldier_qk. Scenarios from previous revisions using these motions may behave slightly differently.
Copyright (C) 1992-2012 Boston DynamicsALL RIGHTS RESERVED.
These coded instructions, statements, and computer programs contain unpublished proprietary information of Boston Dynamics and are protected by Copyright Laws of the United States. They may not be used, duplicated, or disclosed in any form, in whole or in part, without the prior written consent from Boston Dynamics.
RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the government is subject to restrictions as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Sofware clause at DFARS 252.227-7013 and/or in similar or successor clauses in the FAR, or the DOD or NASA FAR Supplement, or to subparagraphs (c)(1) and (c)(2) of the Commercial Computer Software--Restricted Rights at 48 CFR 52.227-19, as applicable. Unpublished-rights reserved under the Copyright Laws of the United States.
Contractor/Manufacturer is:
Boston Dynamics/78 Fourth Avenue/Waltham MA 02451.