top of page

업데이트 내역 | v1.5.0

(2024년 8월 20일 빌드)

개선된 기능

1. IK 개선

- 기존의 CCD 알고리즘보다 개선된 FABRIK 알고리즘이 추가되었습니다. (링크)
- 캐릭터의 업데이트 및 에디터 제어시 각각 어떤 IK 알고리즘을 선택할지 결정하는 옵션이 추가되었습니다.
- 기존의 작업물에는 CCD 방식이 유지되고, 업데이트 후 생성된 캐릭터의 기본값은 FABRIK으로 설정되었습니다.
- 부모-자식 관계에 의해 제한되었던 IK 컨트롤러를 더 유연하게 사용할 수 있도록 개선되었습니다. (
링크)
- IK 컨트롤러의 처리 순서를 사용자가 결정할 수 있는 "Depth" 속성이 추가되었습니다.
- IK 컨트롤러에서 각도 제약(Angle Constraint) 설정 시 약간의 완충 효과를 주는 "Soft Limit" 옵션이 추가되었습니다. (링크)
- 본 선택시의 IK 컨트롤러 관련 UI가 개선되었습니다.
- 메시 그룹의 "Default Transform" 모드가 켜진 경우 IK 컨트롤러가 비활성화되도록 변경되었습니다.
- 메시 그룹의 Bone 탭에서 "본 편집 모드"가 꺼진 상태에서 Rigging 결과에 IK가 반영되도록 변경되었습니다.
- "각도 제약"이 설정되지 않은 경우 에디터와 인게임에서의 IK 컨트롤러 결과가 최대한 같아지도록 개선되었습니다.
- "각도 제약"이 설정된 경우, IK의 연산 시작시 FK와 Prefer Angle 중에서 어떤 값을 사용할지에 대한 옵션이 추가되었습니다. (FABRIK 용)

2. 추가된 에디터 기능

- 왼쪽의 컨트롤 파라미터 탭에서 사용자가 자주 사용하는 컨트롤 파라미터들의 값들을 "스냅샷" 방식으로 저장하여 활용하는 기능이 추가되었습니다. (링크)
- 선택한 키프레임들의 위치를 배율에 따라 변경하는 기능이 추가되었습니다. (링크)
- 재질 프리셋의 쉐이더 에셋의 경로가 수정된 경우 에셋의 이름을 바탕으로 자동 탐색을 수행하는 기능이 추가되었습니다. (링크)

3. 에디터 사용성 개선

- 메시 그룹에 메시나 자식 메시 그룹을 추가하기 위한 다이얼로그에서 Select All 버튼을 누를 경우 현재 탭의 객체들만 선택되도록 변경되었브니다.
- 마지막으로 선택했던 모디파이어가 다시 선택되도록 개선되었습니다.
- 키(Key)들이 이미 생성된 모디파이어에서 "노란색 눈 아이콘"을 눌러서 메시를 등록할 때, 선택된 키 외의 다른 키에서의 메시의 가시성이 "기본값"으로 설정되도록 변경되었습니다. (기존에는 모디파이어 등록 시점의 메시의 가시성 값이 일괄 적용)
- 눈 아이콘을 눌러서 가시성을 변경하면 선택된 모든 대상들의 값이 동시에 변경되도록 개선되었습니다.
- 유니티 2022부터 에디터의 툴팁 UI가 다시 나오도록 변경되었습니다.
- 컨트롤 파라미터에 대한 타임라인 레이어를 동시에 여러개 선택할 수 있도록 개선되었습니다.
- 애니메이션 화면의 여러 요소들이 좁은 화면에 보여지도록 레이아웃이 개선되었습니다.
- 왼쪽 Hierarchy에서 객체를 복제(Duplicate)한 경우, 복제된 대상이 원래의 대상의 바로 아래에 보여지도록 변경되었습니다.
- 컨트롤 파라미터로 동작하는 모디파이어에서 키를 추가하는 경우, 추가된 키에서의 객체의 상태가 "기본값 (기존 방식)"과 "보간된 값 (새로운 방식)"중에서 어느 값을 가질지 여부를 설정하는 옵션이 설정 다이얼로그에 추가되었습니다.

4. 성능 및 메모리 처리 개선

- 등록된 재질 프리셋과 쉐이더 에셋 정보가 늘어나면 에디터를 열때마다 긴 시간이 소요되는 문제가 수정되었습니다.
- 에디터의 메모리 GC 처리에 의한 성능 저하 문제가 개선되었습니다.
- 에디터와 인게임에서 불필요한 메모리를 생성하는 코드들이 다수 수정되었습니다.
- 모디파이어와 관련된 데이터들을 체크확인하고 연결하는 내부 코드의 성능이 개선되었습니다.
- 작업 과정에서 유니티 에디터에 전달하는 "Dirty" 관련 코드가 개선되었습니다.

5. 2개 이상의 카메라에 대한 처리 개선

- 2개 이상의 카메라들의 변경을 모니터링하는 방식에 대한 옵션이 Bake 다이얼로그에 추가되었습니다. (링크)
- 인게임 중에 카메라의 개수나 속성이 변경되는 경우 클리핑 마스크 최적화 기능이 이에 대응하지 못하여 렌더링 품질이 저하되는 문제가 수정되었습니다.
- 조건에 맞는 경우에 2개 이상의 카메라에서도 클리핑 마스크 최적화를 수행하는 기능이 더 원활하게 수행되어 가능한 높은 품질로 렌더링하도록 개선되었습니다.
- 빌보드 모드에서 유효한 카메라가 없어지는 경우 업데이트 에러가 발생되는 문제가 수정되었습니다.
- SetRenderingCameras 함수와 같이 카메라 변경과 관련된 함수 내부에 커맨드 버퍼 재설정이 동작하도록 변경되어 사용자가 ResetMeshesCommandBuffers와 같은 함수를 호출할 필요가 없어졌습니다.

- 인게임 시 캐릭터의 위치가 갑자기 변하는 경우의 지글본 연산을 보정하는 기능이 "크기"와 "회전" 값도 같이 체크하도록 개선되었습니다.
- 낮은 FPS로 메시를 갱신하는 옵션 중 "Per Time (Not Sync)"를 사용하는 경우, 시간 배속(Time Scale)에 비례할지 결정하는 옵션이 추가되었습니다. (링크)
- Bake 다이얼로그에 "Light Probes", "Reflection Probe" 옵션이 추가되었습니다. (링크)
- 모디파이어의 Extra 옵션에 의해서 변경된 이미지를 초기화하는 스크립트 함수(ResetTextureForExtraOptionAll, ResetTextureForExtraOptionByName)가 추가되었습니다. (링크)
- 유니티 2023 및 URP 16부터 클리핑 처리가 변경됨에 따라 "URP (2023)" 재질 프리셋이 추가되었습니다.
- 유니티 메뉴에서 AnyPortrait 항목이 다른 메뉴와 독립되어 보여지도록 변경되었습니다.
- 유니티 메뉴에서 AnyPortrait 에디터를 여는 메뉴의 이름이 "2D Editor"에서 "Open Editor"로 변경되었습니다.
- Vector 타입의 컨트롤 파라미터로 보간을 할 때, 보간 연산이 실패되는 경우를 방지하도록 코드가 개선되었습니다.
- 물리 효과 등의 연속적인 처리를 위해서 보이지 않는 메시에도 모디파이어 결과를 적용할지 여부를 선택하는 옵션이 Bake 다이얼로그에 추가되었습니다. (
링크)
- 에디터 실행시와 Bake 수행시 Rigging 모디파이어의 가중치가 자동으로 Normalize 되도록 변경되었습니다.
- 부모 객체의 회전이 빌보드 연산에 더해지도록 만드는 옵션이 추가되었습니다. (링크)

수정된 문제점

- 초기화 직후 또는 렌더링되는 첫 프레임에서 지글본을 포함한 물리 효과가 이상하게 연산되는 문제가 수정되었습니다.
- 메시 그룹의 Bone 탭에서 외곽선 렌더링 모드 상태에서 본을 선택할 수 없는 문제가 수정되었습니다.
- 백업 파일로부터 캐릭터를 로드한 직후에 루트 유닛 화면에서 애니메이션 리스트가 나타나지 않는 문제가 수정되었습니다.
- 메시 그룹에 메시나 자식 메시 그룹을 2개 이상 추가한 직후에 오른쪽 Hierarchy 화면에서 객체들의 순서가 올바르지 않았던 문제가 수정되었습니다.
- 본 연산 모드가 Non-Uniform 방식인 경우 스크립트로 이상하게 제어되는 문제가 수정되었습니다. (Rotation만 가능)
- IK 컨트롤러가 적용되어 있고 IK Weight가 0보다 큰 경우에 스크립트로 해당 본을 제어할 수 없는 문제가 수정되었습니다.
- 메시 그룹의 Bone 탭에서 "본 편집 모드"를 켠 상태로 메시 그룹의 다른 탭으로 전환하면 Rigging 모디파이어가 계속 비활성화되는 문제가 수정되었습니다.
- 애니메이션 편집 화면에서 "노란색 눈 아이콘"을 눌러서 타임라인 레이어와 키프레임을 동시에 생성하면 현재 프레임이 아닌 첫 프레임에 키프레임을 생성하는 문제가 수정되었습니다.
- Extra 옵션에 의해 이미지가 변경된 메시는 SetImageAll 등의 스크립트 함수에서 제외되는 문제가 수정되었습니다.
- 메시의 재질을 초기화하는 ResetMeshMaterialToBatchAll 등의 스크립트 함수를 사용하는 경우 Extra 옵션이 비활성화되는 문제가 수정되었습니다.
- 애니메이션 타임라인에 등록된 객체 1개와 그렇지 않은 다수의 객체들을 선택한 경우, 애니메이션에 등록된 객체의 타임라인을 삭제할 수 없었던 문제가 수정되었습니다.
- 애니메이션에서 "Auto-Key" 모드가 컨트롤 파라미터를 대상으로 하는 타임라인에서는 제대로 동작하지 않는 문제가 수정되었습니다.
- 실행 취소(Undo) 데이터가 부자연스럽게 등록되는 문제가 수정되었습니다.
- 메시가 복제될 때, 복제된 대상이 바로 선택되지 않았던 문제가 수정되었습니다.
- 컨트롤 파라미터 타입이 Vector이고 키들이 사각형을 이루지 않을 때의 보간 연산이 비정상적으로 수행되는 문제가 수정되었습니다. (기존 작업물과 결과가 달라지므로 확인이 필요합니다.)
- 인게임 중에 애니메이션의 첫 프레임과 마지막 프레임에서 위치 연산이 비정상적으로 수행되는 문제가 수정되었습니다.
- 에디터에서 메뉴 변경이나 임의의 기능 수행시 본 업데이트에서 비정상적인 값이 일시적으로 입력되는 문제가 수정되었습니다.
- IK 컨트롤러에서 IK Weight의 값이 약 0.005 일 때, IK 적용 정도가 부드럽게 전환되지 않는 문제가 수정되었습니다.
- 동일한 본을 두개 이상의 모디파이어가 제어하는 경우, 모디파이어들의 레이어 순서에 따라서 에디터의 기즈모가 제대로 동작하지 않는 문제가 수정되었습니다.
- 유니티 에디터의 옵션에서 Reload Scene 옵션을 켜고 Reload Domain 옵션을 끈 상태로, AnyPortrait 캐릭터의 인스펙터 UI의 Refresh Meshes 버튼을 누른 후 게임을 실행하면 캐릭터가 보라색으로 출력되는 문제가 수정되었습니다.
- 본 연산 결과 미리보기 모드가 켜진 상태에서 컨트롤 파라미터의 값을 변경하면 모디파이어의 편집 모드가 자동으로 해제되버리는 문제가 수정되었습니다.
- 애니메이션 화면이나 루트 유닛 화면으로 전환 직후와 Bake 실행 직후에 컨트롤 파라미터의 값이 애니메이션과 관계없는 값을 가지는 문제가 수정되었습니다.
- 메시 그룹 내의 메시 복제시 모디파이어와의 연결이 일시적으로 해제되는 문제가 수정되었습니다.

개발자 코멘트

이 버전은 많은 부분이 개선된 버전입니다.

시간이 걸릴 것으로 판단되어 보류되었던 많은 기능들이 개발되어 적용되었습니다.

또한 여러분들의 많은 피드백들이 적용되었습니다.
 

먼저, 이번 버전에서는 IK가 크게 개선되었습니다.

기존의 IK 알고리즘이었던 CCD에서 FABRIK으로 변경하였으며, 튜닝을 통해서 IK 연산을 크게 개선했습니다.

또한 IK 컨트롤러를 더 유연하게 구성할 수 있도록 IK 연산 시스템을 전반적으로 개선했습니다.

기존의 CCD 방식으로 작품을 만들었던 분들을 위해서, 기존 방식을 폐기하지 않고 옵션으로 선택할 수 있게 만들었습니다.

메모리와 관련된 성능도 저희가 중점적으로 개선했던 부분입니다.

개발자의 프로그래밍 스킬의 미숙으로 에디터와 인게임에서 메모리 할당이 발생하였고, 이는 C# 특유의 메모리 수집으로 인하여 성능에 영향을 주게 되었습니다.

스크립트를 모두 검토하였으며, 그중 중요도가 높은 많은 코드들을 수정했습니다.

특히, 에디터에서 데이터 생성시의 성능 문제가 많이 개선되었습니다.

여러분들이 보내주신 많은 피드백도 이번 버전을 개발하는데 도움이 많이 되었습니다.

컨트롤 파라미터의 스냅샷, 키프레임 위치 조절 등의 기능은 피드백을 바탕으로 개발되었으며, 2개 이상의 카메라에서의 문제도 피드백을 바탕으로 개선되었습니다.

이 버전의 개발 기간이 저희의 계획보다 매우 오래 걸렸다는 점에 대해서 죄송하다는 말씀을 드립니다.

저희 팀의 메인 개발자의 건강 문제와 다른 프로젝트와의 일정 충돌로 꽤 오랜 기간동안 개발이 중지되었습니다.

팀의 내부의 문제로 인하여 여러분께 불편을 드려서 정말 죄송합니다.

이 버전이 여러분에게 큰 도움이 되길 기대합니다.

감사합니다.

bottom of page