├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md └── README_Source ├── BothShake.gif ├── Brush.gif ├── Cylinder.png ├── FlyHigh.jpg ├── Girl.png ├── Grid.gif ├── LION.png ├── MP.png ├── Man.png ├── REMEMBER.jpg ├── RockBoth.gif ├── RockOne.gif ├── SUPERPOWER.jpg ├── Sphere.png ├── Stress1.PNG ├── Stress2.PNG ├── Timeline.gif ├── Title.jpeg ├── WXY.jpg └── WaveOne.gif /.gitattributes: -------------------------------------------------------------------------------- 1 | *.gif filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Recordings can get excessive in size 18 | /[Rr]ecordings/ 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | *.unitypackage.meta 63 | *.app 64 | 65 | # Crashlytics generated file 66 | crashlytics-build.properties 67 | 68 | # Packed Addressables 69 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 70 | 71 | # Temporary auto-generated Android Assets 72 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 73 | /[Aa]ssets/[Ss]treamingAssets/aa/* 74 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 OneStart 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unity_Fanlight 2 | 3 | ![Title](./README_Source/Title.jpeg) 4 | 5 | #### 관객석에서 응원봉을 흔드는 연출을 위한 시스템 6 | #### 메시 렌더링 및 애니메이션을 GPU 코딩으로 최적화 7 | 8 |
9 | 10 | ## 기능 11 | |내용|세부내용| 12 | |---|---| 13 | |GPU Instancing|드로우콜 최적화| 14 | |Compute Shader|Target LookAt, 컬링 및 LOD| 15 | |Vertex Shader|관객 애니메이션| 16 | |Scriptable Object|인스턴스 패키징| 17 | |Timeline Scripting|Fanlight 시스템 제어| 18 | |Support Cinemachine|VirtualCamera 대응| 19 | 20 |
21 | 22 | ## 인스턴스 생성 23 | |Default|Brush Painting| 24 | |:---:|:---:| 25 | |![Grid](./README_Source/Grid.gif)|![Brush](./README_Source/Brush.gif)| 26 | |Grid 기반 범위 설정|브러쉬 페인팅 추가/제거| 27 | 28 |
29 | 30 | ## 인스턴스 정보 31 | ### 메시 타입 32 | |Human/Man|Human/Girl|Stick/Cylinder|Stick/Circle(추가예정)| 33 | |:---:|:---:|:---:|:---:| 34 | |![Man](./README_Source/Man.png)|![Girl](./README_Source/Girl.png)|![Cylinder](./README_Source/Cylinder.png)|![Sphere](./README_Source/Sphere.png)| 35 | |남자|여자|원기둥 응원봉|구형 응원봉| 36 | ### 애니메이션 타입 37 | |RockOne|RockBoth|WaveOne|ShakeBoth| 38 | |:---:|:---:|:---:|:---:| 39 | |![RockBoth](./README_Source/RockOne.gif)|![RockBoth](./README_Source/RockBoth.gif)|![WaveOne](./README_Source/WaveOne.gif)|![ShakeBoth](./README_Source/BothShake.gif)| 40 | |한팔 흔들기|양팔 흔들기|한팔 웨이브|환호| 41 | 42 |
43 | 44 | ## 타임라인 컨트롤 45 | ![Timeline](./README_Source/Timeline.gif) 46 | 47 | Fanlight Control을 담당하는 커스텀 트랙 및 클립 48 | 49 | 타임라인 프레임 연동과 사용자가 직접 BPM을 설정해서 노래 정박에 하이라이트 들어가게끔 50 | 51 | 클립 별 애니메이션, 응원봉 색 & 강도, 플리커링 이벤트 및 클립 간 모든 요소 블렌딩 기능 52 | 53 |
54 | 55 | ## 스트레스 테스트 56 | 테스트 환경 57 | - PC : 5950X / RTX 3080 / RAM 32GB 58 | - 인스턴스 수 : 22,500 59 | - 메시 폴리 카운트 : 157,680,000 60 | - 메시 버텍스 카운트 : 154,575,000 61 | 62 | |Prefab + Animator|Fanlight System| 63 | |:---:|:---:| 64 | |![Stress1](./README_Source/Stress1.PNG)|![Stress2](./README_Source/Stress2.PNG)| 65 | |프레임 1.2|프레임 47.7| 66 | |배치카운트 53381|배치카운트 13| 67 | |패스콜 18020|패스콜 13| 68 | 69 |
70 | 71 | ## 사용 사례 72 | #### 비몽(BEEMONG) - Fly High Official MV 73 | 74 | --- 75 | #### W/X/Y - Tani Yuuki|Cover by 여르미 x 한결 x 비몽 76 | 77 | --- 78 | #### (여자)아이들((G)I-DLE) - LION Covered by 고여름 이주인 쿠우 한세긴 | 청백가요대전 79 | 80 | --- 81 | #### [청백가요대전] Miiro-「괴물이 피는 숲」 Cover by.비몽 feat.핑맨 82 | 83 | --- 84 | #### REMEMBER - 버튜버 청백가요대전 20명 단체곡 85 | 86 | --- 87 | #### [청백가요대전] SUPERPOWER - 나비&u32 (Cover) 4K 88 | 89 | --- 90 | -------------------------------------------------------------------------------- /README_Source/BothShake.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a6b7cda55db6d807b82a6087bf043053cdf1098ce37ae5ed07fe73af9daebd00 3 | size 337293 4 | -------------------------------------------------------------------------------- /README_Source/Brush.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:409335e7b7167f40c24d2a05cd6f45769a333d6180348f755d98b176b94852d4 3 | size 2814614 4 | -------------------------------------------------------------------------------- /README_Source/Cylinder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Cylinder.png -------------------------------------------------------------------------------- /README_Source/FlyHigh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/FlyHigh.jpg -------------------------------------------------------------------------------- /README_Source/Girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Girl.png -------------------------------------------------------------------------------- /README_Source/Grid.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cd1915616333299e602a22e6efa2085855e5616f170025ccbbf31605efe80f59 3 | size 3502524 4 | -------------------------------------------------------------------------------- /README_Source/LION.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/LION.png -------------------------------------------------------------------------------- /README_Source/MP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/MP.png -------------------------------------------------------------------------------- /README_Source/Man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Man.png -------------------------------------------------------------------------------- /README_Source/REMEMBER.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/REMEMBER.jpg -------------------------------------------------------------------------------- /README_Source/RockBoth.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e72cdbc4347b4f766b7240b7d285723c9683ca5678751a53a8ded95a88678967 3 | size 197433 4 | -------------------------------------------------------------------------------- /README_Source/RockOne.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:632dbcabee4820ced9e2c85dffd7768f524b7fce24f01e0ba834752f9bd61a72 3 | size 215223 4 | -------------------------------------------------------------------------------- /README_Source/SUPERPOWER.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/SUPERPOWER.jpg -------------------------------------------------------------------------------- /README_Source/Sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Sphere.png -------------------------------------------------------------------------------- /README_Source/Stress1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Stress1.PNG -------------------------------------------------------------------------------- /README_Source/Stress2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Stress2.PNG -------------------------------------------------------------------------------- /README_Source/Timeline.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2d376bab5eaeae2e1dad308efa557e895729f82cb2a97feccea178bddd2b4f7a 3 | size 102971132 4 | -------------------------------------------------------------------------------- /README_Source/Title.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/Title.jpeg -------------------------------------------------------------------------------- /README_Source/WXY.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hanbyori/Unity_Fanlight/bd59231caa8d56d530b6da929e0ea3a4c423fb9e/README_Source/WXY.jpg -------------------------------------------------------------------------------- /README_Source/WaveOne.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:03ca586086e797f8dffa2751641bd790e2e508dc8eda4843717260d44cdc9ef7 3 | size 262090 4 | --------------------------------------------------------------------------------