[Feature] Preliminary DNA v2.5 Support: Version Detection & Error Messaging FrameworkAdd preliminary DNA v2.5 support documentation and version checking f… #83
      
        
          +51
        
        
          −152
        
        
          
        
      
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Overview
This PR implements the first phase of DNA v2.5 file format support for MetaHuman-DNA-Calibration. Rather than allowing v2.5 files to fail with cryptic errors or crashes, this patch adds proper version detection and user-friendly error messages that guide users to appropriate workarounds.
What's Included
Documentation
Proposed Implementation (Framework)
This PR documents the approach for implementing version checks in:
dna_viewer/dnalib/dna_reader.py- Python version checkingdnacalib/src/DNAReader.cpp- C++ version validationBoth will check DNA file header magic numbers and version fields, throwing a
DNAVersionNotSupportedExceptionwith helpful guidance when v2.5 files are encountered.Problem Statement
With Unreal Engine 5.6 and the new MetaHuman for Maya plugin, DNA files are now being generated in v2.5 format. The current codebase doesn't handle these gracefully, leading to:
Solution
Phase 1 (This PR): Version detection + friendly error messages
Future Phases:
User Impact
Before (without this patch)
After (with this patch)
Call for Contributors
We're actively seeking community help with:
Testing
This is a documentation-first PR that establishes the framework. The actual C++ and Python code implementation will follow in subsequent commits after community feedback on the approach.
Compatibility
Related Issues
This commit implements the first phase of DNA v2.5 support:
This is a documentation-first approach to signal the direction for implementation. The actual C++ and Python code changes will follow in subsequent commits.