0. 왜해야하나
시작하기전에.
1압타1옷 하고 옷갈아입을때는 압타바꾸는게 제일좋음. 열심히 옷10개 입혀봤자 아무도 못봄
1. 텍메줄이기
(미리말해두는데 체감효과는 브붕이 압타 표시한 사람들 기준이다. 아무리 똥글카여도 브램이 500메가보단 클테니 자기압타 최적화효과는 스스로 체감안됨)
https://vpm.thry.dev
깔아라
줄여라 (옷이나 중요텍스쳐는 1024 장식뭉개진거 신경쓰이면 2048, 티안나는거나 마스크 노멀 이딴건 전부 512아래)
투명도(알파값) 필요업는건 DTX1, 투명도 필요한건 BC7로 변경 (DTX5는 좆도쓸모업음)
크런치압축 쓰지마 (좆도쓸모업음)
메쉬크기는 줄이기 쉽지않으니 걍 놔두자 (뚜따하거나 머리합치기같은거하면 얘도 커지는데 걍 그만큼 텍메를 줄여)
2. AAO T&O
우선도 : ★★★★★
난이도 : ★☆☆☆☆
체감효과 : ★★☆☆☆
https://vpm.anatawa12.com/add-repo
aao 여기서 받아라
aao trace and optimize (T&O)를 압타최상위오브젝트에 붙여라
끗
이게 머하는거냐면 복잡한 최적화과정들을 지가알아서 다해줌
알고리즘이 상당히 안정적이라 존나특이하거나 하자있는 압타가 아닌이상 이거넣는다고 문제날일업음 (문제생기면 체크박스 몇개 풀면되는데 걍 압타 새로파라)
압타가 복잡하면 복잡할수록 자동최적화 효과가 쥐꼬리만해지지만 그건 아래에서 수동으로 잡을수있음
어쨌든 얘는 수동최적화 안해줄거면 무적권 잇어야함
넣어라
갠적으로 이거 안넣으면 압타업로드 막아버려야한다고 생각한다
3. vrc constraints
우선도 : ★★★★☆
난이도 : ★☆☆☆☆
체감효과 : ★★☆☆☆
윾니티의 parent constraint, position constraint, rotation constraint 등이 브챗에서 꽤 무겁다는 지적을 받아 작년에 브챗이 자체적으로 내놓은 가벼운버전임
공식팀이 매우 밀고있고 압타에 단 하나라도 틀딲식 contraint가 포함되어있다면 sdk창에 아래와 같은 경고창이 뜰꺼임
반드시 MA를 받은 상태에서 (중요!) 옆의 autofix 누르면 해결됨
끗
이거 처음 등판했을때는 월드고정이 제대로 안되거나 이상하게 꺾이는등 좀 병신같았는데 지금은 쓸만해졋으니 걱정말고 쓰자
만에하나라도 기존constraint랑 동작이 달라져서 맘에안든다면
압타 최상위 오브젝트에 생긴 MA convert constraints 스크립트를 빼면 됨
4. 안쓰는 애들 EditorOnly, 비활성화
우선도 : ★★★★☆
난이도 : ★★★★☆
체감효과 : ★★★☆☆
브붕이가 쓰지도않는데 업로드할때 딸려올라가 렉유발하는 요소들을 없애자
안쓰는 옷이나 기능에 딸려있는 메시/피본/콜라이더/라이트/사운드 등 압타등급에 영향주는 무거운놈 요소들 위주로 잡으면됨
그냥 지워버리는거보단 EditorOnly 태그를 붙여주는게 나중에 되살리는데 더 편하다
쓰기는 쓸건데 압타 기본상태에서 보여주거나 동작시킬게 아니라면 윾니티상에서 체크를 다 풀어놓자 (FX레이어 애니메이션으로 켜면 됨)
가끔 이걸 반대로 해놓는 애들이 있음 (윾니티상에 체크해놓고 FX레이어에 OFF애니메이션을 디폴트로 박는경우)
그러면 세이프티설정 켜졌을때 뭐넣엇는지 다보인다 게이야
무기나 장난감 소환기능 안들키고싶다면 윾니티 기본상태 신경써야함
옷장안쓴다면 여기서 손볼게 딱히업으나 옷장쓰면서 이거안하면 옷장속 옷들의 투명 피본들이 움직일때마다 따라다녀 렉발싸함
여기서 제일 중요한건 안쓰는 텍스쳐이미지를 색출해내 텍메용량도 줄이는거임
혹시 이미지파일 수정해서 만든 복사본을 메인텍스쳐에만 넣었고 같은파일 쓰는 다른슬롯(에미션, 윤곽선 등)에는 원본이미지 그대로 들어있을경우
복사본과 원본 둘다 업로드되ㄱ서 용량 2배로 쳐먹겟지?
맨 윗단계 텍메줄이는 과정에서 못잡았다면 다시 꼭꼭 확인하자
사실 AAO T&O가 거의 다 잡아주기도하고 요새 MA로 넣는 옷이나 기능들은 이거 알아서 해주는편이긴함
5. TTT
우선도 : ★★★☆☆
난이도 : ★★★☆☆
체감효과 : ★★★★☆
이미 다른 브붕이가 칼요약 잘해놨으니 뭐하는 툴인지는 여기 들어가서 보자
여기서는 실사용법만 다루겠다
우선 툴 받고
https://ttt.rs64.net/
여기에서 볼거는 AtlasTextureSize(통합이미지 사이즈)하고 MaterialMerge(마테리얼통합) 2개뿐임
통합이미지 사이즈를 보면 알듯이 얘가 이미지 합치면서 사이즈도 줄여줌
마테리얼통합에 체크하면 하면 마테리얼 슬롯수까지 1개로 줄여버린다 (특히 압타 퀘대응할때 존나 도움됨)
대신 텍스쳐가 뭉개질수잇으니 적용결과 보고 신중히 결정할것 (아래 ndmf어쩌구저쩌구 버튼누르면 플레이모드 안들어가도 반영된모습 확인가능)
한번 여러가지 조합을 시도해보기바람
난 개인적으로 투명도들어갔거나 어케합쳐봐도 뭉개지는 이미지들은 걍 통합안하고
1024 사이즈로 한세트
512 사이즈로 한세트
512 사이즈로 또한세트 (얘네들은 마테리얼통합 체크함)
이렇게 TTT 스크립트를 3개 넣어 각각 그룹별로 합쳤음
조합 잘해서 텍스쳐 하나도 안뭉개면서 갓적화 효과만 최대한으로 쪾쪾 빨아먹어보자
딱 하나 주의점
이 툴 아직 1.0 아니라 불안정하니까 처음깔거나 버전업하기 전에 플젝백업권장함
ndmf가 프리뷰기능 관련으로 한번 크게 뒤엎어지면서 이 툴도 많이바꼈는데
틀딲버전에서 0.7인가 0.8인가로 올릴때 마이그레이션 창이 떴었고 이때 잘못되ㅁ서 프로젝트 터진적이 한번잇엇음
그뒤로는 사고없이 잘쓰는중
6. skinned mesh renderer 통합
우선도 : ★★★☆☆
난이도 : ★★★★☆
체감효과 : ★★★☆☆
압타등급 보면 skinned mesh renderer의 개수제한이 빡센편인데
얘네들은 쉡키값따라 실시간으로 변형되는 메쉬들이라 드로우콜(화면에 메쉬의 변형을 반영하는 과정)이 많아질수록 좃같이 무겁다
근데 부스옷이나 에셋들은 스킨드메쉬 펑펑쓴다 당장 손발톱만 넣어도 20개 뚞딲 추가임
나름 최적화한다는 애들도 이 항목은 빨간색(16개) 아래로 내려가는거 거의 못봄
근데 얘네도 AAO Merge Skinned Mesh 스크립트 써서 합칠수잇음
합친만큼 스킨드메쉬 수도 줄고 혹시 공통마테리얼을 쓴다면 그만큼 슬롯수도 줄음 (아래쪽에 Merge Materials 보이지? 머테리얼슬롯도 합칠수있는거임)
TTT랑 사용방식이 동일함 아바타 최상위객체 바로 아래에다 빈 오브젝트 만들고 거따가 스크립트 추가하면된다
마찬가지로 여러 그룹을 만들어 따로따로 합치는것도 가능하고 실제로 그래야함
왜냐면
합친 메쉬는 출현(활성)/숨김(비활성)을 따로 할수가 없음
이게 중요한데 메쉬 ABC를 합쳐놨을때 A의 크기만 바꾸고 B의 색깔만 바꾸고 C의 쉡키값만 바꾸는건 가능하지만
A만 나타나게하고 BC를 숨기는건 불가능함. 무적권 ABC 같이생기던가 같이없어지던가 해야함
지정한 메쉬들중에 하나라도 활성화유무가 다른 애니메이션을 아바타가 쓴다면 못합침, 이거만 알아두자
혹시 이렇게하고 플레이모드에서 확인해봤는데 제대로 적용안됬3다면
자동최적화스크립트가 끼어들어 충돌난거니까 위의 AAO T&O의 Merge Skinned Mesh 체크를 해제하기 바람
항상 수동최적화가 자동보다 낫다
6-b. 앵커통일 (최적화랑은 상관없을거같은데 걍 넣음)
sdk 탭에서 skinned mesh renderer 개수 알려주는 항목 오른쪽의 select를 눌러 압타에 들어간 모든 스킨드메쉬를 일괄선택할수가있다
여기 앵커오버라이드부분에 공통 앵커(압타 정중앙쯤에 위치한 빈 오브젝트, 보통 압타마다 있음)를 가져다넣자
이게머하는거냐면 광원 거리에 따른 밝기를 통일하기 위해 하는것임
이 앵커부분이 스킨드메쉬별로 제각각이면 얼굴은 조명받아서 환한데 몸이랑 옷은 조명못받고 어둡다거나 하는의 문제가 날수잇슴
굳이 한 압타에 앵커가 여러개 잇어야할이유가 잇을가? 없을것으로 알겟음
7. 레이어 최적화
우선도 : ★★☆☆☆
난이도 : ★★★★★
체감효과 : ★★☆☆☆
브챗은 압타 비표시 제한조건이 텍메사이즈 뿐이라
텍메만 줄이고 최적화 유기한 짬통아바타는 자동차단이 안된다
얘네들은 그래도 압타정보 까보면 빨간색 덕지덕지 잇어서 렉싸개인지 바로 알수있지만
압타정보 봐도 판별이 안되는 더욱 악질인 새기들이 잇다
열이면 열 FX컨트롤러 구조때문임
공지정보글의 최적화부분에도 레이어 관리 관련한 글이 2개 있다
https://gall.dcinside.com/mgallery/board/view/?id=vr&no=3375947
https://gall.dcinside.com/mgallery/board/view/?id=vr&no=2878486
존나 어려워보이는 내용이지만 요약하자면 다음만 지키면 된다
- 컨트롤러의 레이어 수를 최대한 줄이자
- AnyState를 최대한 덜 사용하고 혹시 사용할경우 Can Transition To Self는 전부 체크해제하자
보통 하나의 단순토글 기능을 위해 이런 모양의 온오프용 레이어를 만들어 쓸텐데
한 레이어에 블렌드트리 만들고 얘네들 다 합쳐서 쑤셔넣으면 레이어 수가 줄어들것임 (위는 걍 예시임 실제로 저렇게 구현안함)
다만 블렌드트리로 변환이 안되는 토글기능도 있을수잇음
AnyState 역시 매초 60번씩 체크요청을 날려대기때문에 남발하면 렉유발요소가 된다 (이게 대체 왜 압타등급 제한요소가 아닌지 존나 궁금하다)
노드수가 몇개 안된다면 최대한 AnyState를 안쓰고 레이어를 구성해보자
물론 이런 구조는 감당이 안되기때문에 AnyState 써야할때도 잇음
유지관리가 힘들어지는 시점까지 최적화를 할필요는업다
하지만 Can Transition To Self는 무적권 체크해제하는게 맞음 이건 99%의 확률로 쓸모업는주제에 좃같이 무겁기만함
이런거외에도 lilMeshSimplifier 또는 NDMF mantis LOD editor를 이용한 폴리곤깎기도 잇는데
퀘대응하는게 아니라면 우선도 ★★★★☆까지만 해도 충분하다
블렌더 몰라도 이쁜옷 필수기능 페이셜 다 텍메2자리수로 챙길수잇으니 걱정 ㄴㄴ
지금 내가 갖고잇는 가장 고용량압타 텍메 딱 2배로 표시제한걸어놨는데
퍼블이랑 이벤 자주다니면서 깡통새기들 보일때마다 한숨나옴
아무도 안보는 압타 꾸미느라 애쓴다
브붕이들만큼은 비표시 입구컷당하지말고 누구에게나 가벼운 암캐가 되길 바란다