Spaces:
Running
Running
upd
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +7 -1
- apple_fonts.css +661 -0
- index.html +4 -3
- index_worst.html +58 -0
- res/model/Alicia/Alicia_hair.png +0 -3
- res/model/Alicia/Alicia_rod.png +0 -3
- res/model/Alicia/Alicia_solid.pmx +0 -3
- res/model/Alicia/Alicia_wear.png +0 -3
- res/model/Alicia/blade_s.bmp +0 -3
- res/model/Alicia/eye_s.bmp +0 -3
- res/model/Alicia/face_s.bmp +0 -3
- res/model/Alicia/hair_s.bmp +0 -3
- res/model/Alicia/ramp_s.bmp +0 -3
- res/model/Alicia/rod_s.bmp +0 -3
- res/model/Alicia/shoes_s.bmp +0 -3
- res/model/Alicia/skin_s.bmp +0 -3
- res/model/Alicia/tongue_s.bmp +0 -3
- res/model/MiraiAkari_v1.0.bpmx +3 -0
- res/model/higuchi_kaede.bpmx +3 -0
- res/model/higuchi_kaede_alt.bpmx +3 -0
- res/model/higuchi_kaede_army.bpmx +3 -0
- res/model/higuchi_kaede_army_alt.bpmx +3 -0
- res/model/higuchi_kaede_casual.bpmx +3 -0
- res/model/higuchi_kaede_oni.bpmx +3 -0
- res/model/higuchi_kaede_summer.bpmx +3 -0
- res/model/higuchi_kaede_summer_alt.bpmx +3 -0
- res/model/inui_toko.bpmx +3 -0
- script.js +70 -6
- script_worst.js +282 -0
- res/model/Alicia/Alicia_blade.pmx → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf +2 -2
- res/model/Alicia/Alicia_body.png → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff +2 -2
- res/model/Alicia/Alicia_eye.png → wss/fonts/SF-Mono/v1/sf-mono_bold.eot +2 -2
- res/model/Alicia/Alicia_face.png → wss/fonts/SF-Mono/v1/sf-mono_bold.ttf +2 -2
- wss/fonts/SF-Mono/v1/sf-mono_bold.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_heavy.eot +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_heavy.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_light.eot +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_light.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_light.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_medium.eot +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_medium.ttf +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_medium.woff +3 -0
- wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf +3 -0
.gitattributes
CHANGED
@@ -93,4 +93,10 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
93 |
*.vmd filter=lfs diff=lfs merge=lfs -text
|
94 |
*.vmx filter=lfs diff=lfs merge=lfs -text
|
95 |
*.bpmx filter=lfs diff=lfs merge=lfs -text
|
96 |
-
*.bvmd filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
*.vmd filter=lfs diff=lfs merge=lfs -text
|
94 |
*.vmx filter=lfs diff=lfs merge=lfs -text
|
95 |
*.bpmx filter=lfs diff=lfs merge=lfs -text
|
96 |
+
*.bvmd filter=lfs diff=lfs merge=lfs -text
|
97 |
+
# Fonts
|
98 |
+
*.eot filter=lfs diff=lfs merge=lfs -text
|
99 |
+
*.ttf filter=lfs diff=lfs merge=lfs -text
|
100 |
+
*.otf filter=lfs diff=lfs merge=lfs -text
|
101 |
+
*.woff filter=lfs diff=lfs merge=lfs -text
|
102 |
+
*.woff2 filter=lfs diff=lfs merge=lfs -text
|
apple_fonts.css
ADDED
@@ -0,0 +1,661 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-family:'SF Pro Display';
|
3 |
+
font-style:normal;
|
4 |
+
font-weight:100;
|
5 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.ttf") format("truetype");
|
6 |
+
}
|
7 |
+
|
8 |
+
@font-face {
|
9 |
+
font-family:'SF Pro Display';
|
10 |
+
font-style:italic;
|
11 |
+
font-weight:100;
|
12 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.ttf") format("truetype");
|
13 |
+
}
|
14 |
+
|
15 |
+
@font-face {
|
16 |
+
font-family:'SF Pro Display 100';
|
17 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.eot');
|
18 |
+
}
|
19 |
+
|
20 |
+
@font-face {
|
21 |
+
font-family:'SF Pro Display';
|
22 |
+
font-style:normal;
|
23 |
+
font-weight:200;
|
24 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.ttf") format("truetype");
|
25 |
+
}
|
26 |
+
|
27 |
+
@font-face {
|
28 |
+
font-family:'SF Pro Display';
|
29 |
+
font-style:italic;
|
30 |
+
font-weight:200;
|
31 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.ttf") format("truetype");
|
32 |
+
}
|
33 |
+
|
34 |
+
@font-face {
|
35 |
+
font-family:'SF Pro Display 200';
|
36 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.eot');
|
37 |
+
}
|
38 |
+
|
39 |
+
@font-face {
|
40 |
+
font-family:'SF Pro Display';
|
41 |
+
font-style:normal;
|
42 |
+
font-weight:300;
|
43 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.ttf") format("truetype");
|
44 |
+
}
|
45 |
+
|
46 |
+
@font-face {
|
47 |
+
font-family:'SF Pro Display';
|
48 |
+
font-style:italic;
|
49 |
+
font-weight:300;
|
50 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.ttf") format("truetype");
|
51 |
+
}
|
52 |
+
|
53 |
+
@font-face {
|
54 |
+
font-family:'SF Pro Display 300';
|
55 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.eot');
|
56 |
+
}
|
57 |
+
|
58 |
+
@font-face {
|
59 |
+
font-family:'SF Pro Display';
|
60 |
+
font-style:italic;
|
61 |
+
font-weight:400;
|
62 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.ttf") format("truetype");
|
63 |
+
}
|
64 |
+
|
65 |
+
@font-face {
|
66 |
+
font-family:'SF Pro Display';
|
67 |
+
font-style:normal;
|
68 |
+
font-weight:500;
|
69 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.ttf") format("truetype");
|
70 |
+
}
|
71 |
+
|
72 |
+
@font-face {
|
73 |
+
font-family:'SF Pro Display';
|
74 |
+
font-style:italic;
|
75 |
+
font-weight:500;
|
76 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.ttf") format("truetype");
|
77 |
+
}
|
78 |
+
|
79 |
+
@font-face {
|
80 |
+
font-family:'SF Pro Display 500';
|
81 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.eot');
|
82 |
+
}
|
83 |
+
|
84 |
+
@font-face {
|
85 |
+
font-family:'SF Pro Display';
|
86 |
+
font-style:normal;
|
87 |
+
font-weight:600;
|
88 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.ttf") format("truetype");
|
89 |
+
}
|
90 |
+
|
91 |
+
@font-face {
|
92 |
+
font-family:'SF Pro Display';
|
93 |
+
font-style:italic;
|
94 |
+
font-weight:600;
|
95 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.ttf") format("truetype");
|
96 |
+
}
|
97 |
+
|
98 |
+
@font-face {
|
99 |
+
font-family:'SF Pro Display 600';
|
100 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.eot');
|
101 |
+
}
|
102 |
+
|
103 |
+
@font-face {
|
104 |
+
font-family:'SF Pro Display';
|
105 |
+
font-style:normal;
|
106 |
+
font-weight:700;
|
107 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.ttf") format("truetype");
|
108 |
+
}
|
109 |
+
|
110 |
+
@font-face {
|
111 |
+
font-family:'SF Pro Display';
|
112 |
+
font-style:italic;
|
113 |
+
font-weight:700;
|
114 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.ttf") format("truetype");
|
115 |
+
}
|
116 |
+
|
117 |
+
@font-face {
|
118 |
+
font-family:'SF Pro Display 700';
|
119 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.eot');
|
120 |
+
}
|
121 |
+
|
122 |
+
@font-face {
|
123 |
+
font-family:'SF Pro Display';
|
124 |
+
font-style:normal;
|
125 |
+
font-weight:800;
|
126 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.ttf") format("truetype");
|
127 |
+
}
|
128 |
+
|
129 |
+
@font-face {
|
130 |
+
font-family:'SF Pro Display';
|
131 |
+
font-style:italic;
|
132 |
+
font-weight:800;
|
133 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.ttf") format("truetype");
|
134 |
+
}
|
135 |
+
|
136 |
+
@font-face {
|
137 |
+
font-family:'SF Pro Display 800';
|
138 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.eot');
|
139 |
+
}
|
140 |
+
|
141 |
+
@font-face {
|
142 |
+
font-family:'SF Pro Display';
|
143 |
+
font-style:normal;
|
144 |
+
font-weight:900;
|
145 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.ttf") format("truetype");
|
146 |
+
}
|
147 |
+
|
148 |
+
@font-face {
|
149 |
+
font-family:'SF Pro Display';
|
150 |
+
font-style:italic;
|
151 |
+
font-weight:900;
|
152 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.ttf") format("truetype");
|
153 |
+
}
|
154 |
+
|
155 |
+
@font-face {
|
156 |
+
font-family:'SF Pro Display 900';
|
157 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.eot');
|
158 |
+
}
|
159 |
+
|
160 |
+
@font-face {
|
161 |
+
font-family:'SF Pro Display';
|
162 |
+
font-style:normal;
|
163 |
+
font-weight:400;
|
164 |
+
src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.eot');
|
165 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.ttf") format("truetype");
|
166 |
+
}
|
167 |
+
|
168 |
+
@font-face {
|
169 |
+
font-family:'SF Pro Text';
|
170 |
+
font-style:normal;
|
171 |
+
font-weight:100;
|
172 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.ttf") format("truetype");
|
173 |
+
}
|
174 |
+
|
175 |
+
@font-face {
|
176 |
+
font-family:'SF Pro Text';
|
177 |
+
font-style:italic;
|
178 |
+
font-weight:100;
|
179 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.ttf") format("truetype");
|
180 |
+
}
|
181 |
+
|
182 |
+
@font-face {
|
183 |
+
font-family:'SF Pro Text 100';
|
184 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.eot');
|
185 |
+
}
|
186 |
+
|
187 |
+
@font-face {
|
188 |
+
font-family:'SF Pro Text';
|
189 |
+
font-style:normal;
|
190 |
+
font-weight:200;
|
191 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.ttf") format("truetype");
|
192 |
+
}
|
193 |
+
|
194 |
+
@font-face {
|
195 |
+
font-family:'SF Pro Text';
|
196 |
+
font-style:italic;
|
197 |
+
font-weight:200;
|
198 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.ttf") format("truetype");
|
199 |
+
}
|
200 |
+
|
201 |
+
@font-face {
|
202 |
+
font-family:'SF Pro Text 200';
|
203 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.eot');
|
204 |
+
}
|
205 |
+
|
206 |
+
@font-face {
|
207 |
+
font-family:'SF Pro Text';
|
208 |
+
font-style:normal;
|
209 |
+
font-weight:300;
|
210 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.ttf") format("truetype");
|
211 |
+
}
|
212 |
+
|
213 |
+
@font-face {
|
214 |
+
font-family:'SF Pro Text';
|
215 |
+
font-style:italic;
|
216 |
+
font-weight:300;
|
217 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.ttf") format("truetype");
|
218 |
+
}
|
219 |
+
|
220 |
+
@font-face {
|
221 |
+
font-family:'SF Pro Text 300';
|
222 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.eot');
|
223 |
+
}
|
224 |
+
|
225 |
+
@font-face {
|
226 |
+
font-family:'SF Pro Text';
|
227 |
+
font-style:italic;
|
228 |
+
font-weight:400;
|
229 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.ttf") format("truetype");
|
230 |
+
}
|
231 |
+
|
232 |
+
@font-face {
|
233 |
+
font-family:'SF Pro Text';
|
234 |
+
font-style:normal;
|
235 |
+
font-weight:500;
|
236 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.ttf") format("truetype");
|
237 |
+
}
|
238 |
+
|
239 |
+
@font-face {
|
240 |
+
font-family:'SF Pro Text';
|
241 |
+
font-style:italic;
|
242 |
+
font-weight:500;
|
243 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.ttf") format("truetype");
|
244 |
+
}
|
245 |
+
|
246 |
+
@font-face {
|
247 |
+
font-family:'SF Pro Text 500';
|
248 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.eot');
|
249 |
+
}
|
250 |
+
|
251 |
+
@font-face {
|
252 |
+
font-family:'SF Pro Text';
|
253 |
+
font-style:normal;
|
254 |
+
font-weight:600;
|
255 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.ttf") format("truetype");
|
256 |
+
}
|
257 |
+
|
258 |
+
@font-face {
|
259 |
+
font-family:'SF Pro Text';
|
260 |
+
font-style:italic;
|
261 |
+
font-weight:600;
|
262 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.ttf") format("truetype");
|
263 |
+
}
|
264 |
+
|
265 |
+
@font-face {
|
266 |
+
font-family:'SF Pro Text 600';
|
267 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.eot');
|
268 |
+
}
|
269 |
+
|
270 |
+
@font-face {
|
271 |
+
font-family:'SF Pro Text';
|
272 |
+
font-style:normal;
|
273 |
+
font-weight:700;
|
274 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.ttf") format("truetype");
|
275 |
+
}
|
276 |
+
|
277 |
+
@font-face {
|
278 |
+
font-family:'SF Pro Text';
|
279 |
+
font-style:italic;
|
280 |
+
font-weight:700;
|
281 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.ttf") format("truetype");
|
282 |
+
}
|
283 |
+
|
284 |
+
@font-face {
|
285 |
+
font-family:'SF Pro Text 700';
|
286 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.eot');
|
287 |
+
}
|
288 |
+
|
289 |
+
@font-face {
|
290 |
+
font-family:'SF Pro Text';
|
291 |
+
font-style:normal;
|
292 |
+
font-weight:800;
|
293 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.ttf") format("truetype");
|
294 |
+
}
|
295 |
+
|
296 |
+
@font-face {
|
297 |
+
font-family:'SF Pro Text';
|
298 |
+
font-style:italic;
|
299 |
+
font-weight:800;
|
300 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.ttf") format("truetype");
|
301 |
+
}
|
302 |
+
|
303 |
+
@font-face {
|
304 |
+
font-family:'SF Pro Text 800';
|
305 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.eot');
|
306 |
+
}
|
307 |
+
|
308 |
+
@font-face {
|
309 |
+
font-family:'SF Pro Text';
|
310 |
+
font-style:normal;
|
311 |
+
font-weight:900;
|
312 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.ttf") format("truetype");
|
313 |
+
}
|
314 |
+
|
315 |
+
@font-face {
|
316 |
+
font-family:'SF Pro Text';
|
317 |
+
font-style:italic;
|
318 |
+
font-weight:900;
|
319 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.ttf") format("truetype");
|
320 |
+
}
|
321 |
+
|
322 |
+
@font-face {
|
323 |
+
font-family:'SF Pro Text 900';
|
324 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.eot');
|
325 |
+
}
|
326 |
+
|
327 |
+
@font-face {
|
328 |
+
font-family:'SF Pro Text';
|
329 |
+
font-style:normal;
|
330 |
+
font-weight:400;
|
331 |
+
src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.eot');
|
332 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.ttf") format("truetype");
|
333 |
+
}
|
334 |
+
|
335 |
+
@font-face {
|
336 |
+
font-family:'SF Mono';
|
337 |
+
font-style:normal;
|
338 |
+
font-weight:300;
|
339 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_light.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_light.ttf") format("truetype");
|
340 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
341 |
+
}
|
342 |
+
|
343 |
+
@font-face {
|
344 |
+
font-family:'SF Mono';
|
345 |
+
font-style:italic;
|
346 |
+
font-weight:300;
|
347 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf") format("truetype");
|
348 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
349 |
+
}
|
350 |
+
|
351 |
+
@font-face {
|
352 |
+
font-family:'SF Mono 300';
|
353 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_light.eot');
|
354 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
355 |
+
}
|
356 |
+
|
357 |
+
@font-face {
|
358 |
+
font-family:'SF Mono';
|
359 |
+
font-style:italic;
|
360 |
+
font-weight:400;
|
361 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf") format("truetype");
|
362 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
363 |
+
}
|
364 |
+
|
365 |
+
@font-face {
|
366 |
+
font-family:'SF Mono';
|
367 |
+
font-style:normal;
|
368 |
+
font-weight:500;
|
369 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_medium.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_medium.ttf") format("truetype");
|
370 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
371 |
+
}
|
372 |
+
|
373 |
+
@font-face {
|
374 |
+
font-family:'SF Mono';
|
375 |
+
font-style:italic;
|
376 |
+
font-weight:500;
|
377 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf") format("truetype");
|
378 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
379 |
+
}
|
380 |
+
|
381 |
+
@font-face {
|
382 |
+
font-family:'SF Mono 500';
|
383 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_medium.eot');
|
384 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
385 |
+
}
|
386 |
+
|
387 |
+
@font-face {
|
388 |
+
font-family:'SF Mono';
|
389 |
+
font-style:normal;
|
390 |
+
font-weight:600;
|
391 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold.ttf") format("truetype");
|
392 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
393 |
+
}
|
394 |
+
|
395 |
+
@font-face {
|
396 |
+
font-family:'SF Mono';
|
397 |
+
font-style:italic;
|
398 |
+
font-weight:600;
|
399 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold-italic.ttf") format("truetype");
|
400 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
401 |
+
}
|
402 |
+
|
403 |
+
@font-face {
|
404 |
+
font-family:'SF Mono 600';
|
405 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_semibold.eot');
|
406 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
407 |
+
}
|
408 |
+
|
409 |
+
@font-face {
|
410 |
+
font-family:'SF Mono';
|
411 |
+
font-style:normal;
|
412 |
+
font-weight:700;
|
413 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_bold.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_bold.ttf") format("truetype");
|
414 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
415 |
+
}
|
416 |
+
|
417 |
+
@font-face {
|
418 |
+
font-family:'SF Mono';
|
419 |
+
font-style:italic;
|
420 |
+
font-weight:700;
|
421 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf") format("truetype");
|
422 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
423 |
+
}
|
424 |
+
|
425 |
+
@font-face {
|
426 |
+
font-family:'SF Mono 700';
|
427 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_bold.eot');
|
428 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
429 |
+
}
|
430 |
+
|
431 |
+
@font-face {
|
432 |
+
font-family:'SF Mono';
|
433 |
+
font-style:normal;
|
434 |
+
font-weight:800;
|
435 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf") format("truetype");
|
436 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
437 |
+
}
|
438 |
+
|
439 |
+
@font-face {
|
440 |
+
font-family:'SF Mono';
|
441 |
+
font-style:italic;
|
442 |
+
font-weight:800;
|
443 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf") format("truetype");
|
444 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
445 |
+
}
|
446 |
+
|
447 |
+
@font-face {
|
448 |
+
font-family:'SF Mono 800';
|
449 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_heavy.eot');
|
450 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
451 |
+
}
|
452 |
+
|
453 |
+
@font-face {
|
454 |
+
font-family:'SF Mono';
|
455 |
+
font-style:normal;
|
456 |
+
font-weight:400;
|
457 |
+
src:url('/wss/fonts/SF-Mono/v1/sf-mono_regular.eot');
|
458 |
+
src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_regular.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_regular.ttf") format("truetype");
|
459 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
460 |
+
}
|
461 |
+
|
462 |
+
@font-face {
|
463 |
+
font-family:'SF Pro SC';
|
464 |
+
font-style:normal;
|
465 |
+
font-weight:100;
|
466 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.ttf") format("truetype");
|
467 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
468 |
+
}
|
469 |
+
|
470 |
+
@font-face {
|
471 |
+
font-family:'SF Pro SC 100';
|
472 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.eot');
|
473 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
474 |
+
}
|
475 |
+
|
476 |
+
@font-face {
|
477 |
+
font-family:'SF Pro SC';
|
478 |
+
font-style:normal;
|
479 |
+
font-weight:200;
|
480 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.ttf") format("truetype");
|
481 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
482 |
+
}
|
483 |
+
|
484 |
+
@font-face {
|
485 |
+
font-family:'SF Pro SC 200';
|
486 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.eot');
|
487 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
488 |
+
}
|
489 |
+
|
490 |
+
@font-face {
|
491 |
+
font-family:'SF Pro SC';
|
492 |
+
font-style:normal;
|
493 |
+
font-weight:300;
|
494 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.ttf") format("truetype");
|
495 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
496 |
+
}
|
497 |
+
|
498 |
+
@font-face {
|
499 |
+
font-family:'SF Pro SC 300';
|
500 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.eot');
|
501 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
502 |
+
}
|
503 |
+
|
504 |
+
@font-face {
|
505 |
+
font-family:'SF Pro SC';
|
506 |
+
font-style:normal;
|
507 |
+
font-weight:500;
|
508 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.ttf") format("truetype");
|
509 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
510 |
+
}
|
511 |
+
|
512 |
+
@font-face {
|
513 |
+
font-family:'SF Pro SC 500';
|
514 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.eot');
|
515 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
516 |
+
}
|
517 |
+
|
518 |
+
@font-face {
|
519 |
+
font-family:'SF Pro SC';
|
520 |
+
font-style:normal;
|
521 |
+
font-weight:600;
|
522 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.ttf") format("truetype");
|
523 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
524 |
+
}
|
525 |
+
|
526 |
+
@font-face {
|
527 |
+
font-family:'SF Pro SC 600';
|
528 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.eot');
|
529 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
530 |
+
}
|
531 |
+
|
532 |
+
@font-face {
|
533 |
+
font-family:'SF Pro SC';
|
534 |
+
font-style:normal;
|
535 |
+
font-weight:400;
|
536 |
+
src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.eot');
|
537 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.ttf") format("truetype");
|
538 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
539 |
+
}
|
540 |
+
|
541 |
+
@font-face {
|
542 |
+
font-family:'SF Pro JP';
|
543 |
+
font-style:normal;
|
544 |
+
font-weight:100;
|
545 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.ttf") format("truetype");
|
546 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
547 |
+
}
|
548 |
+
|
549 |
+
@font-face {
|
550 |
+
font-family:'SF Pro JP 100';
|
551 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.eot');
|
552 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
553 |
+
}
|
554 |
+
|
555 |
+
@font-face {
|
556 |
+
font-family:'SF Pro JP';
|
557 |
+
font-style:normal;
|
558 |
+
font-weight:200;
|
559 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.ttf") format("truetype");
|
560 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
561 |
+
}
|
562 |
+
|
563 |
+
@font-face {
|
564 |
+
font-family:'SF Pro JP 200';
|
565 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.eot');
|
566 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
567 |
+
}
|
568 |
+
|
569 |
+
@font-face {
|
570 |
+
font-family:'SF Pro JP';
|
571 |
+
font-style:normal;
|
572 |
+
font-weight:300;
|
573 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.ttf") format("truetype");
|
574 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
575 |
+
}
|
576 |
+
|
577 |
+
@font-face {
|
578 |
+
font-family:'SF Pro JP 300';
|
579 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_light.eot');
|
580 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
581 |
+
}
|
582 |
+
|
583 |
+
@font-face {
|
584 |
+
font-family:'SF Pro JP';
|
585 |
+
font-style:normal;
|
586 |
+
font-weight:500;
|
587 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.ttf") format("truetype");
|
588 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
589 |
+
}
|
590 |
+
|
591 |
+
@font-face {
|
592 |
+
font-family:'SF Pro JP 500';
|
593 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.eot');
|
594 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
595 |
+
}
|
596 |
+
|
597 |
+
@font-face {
|
598 |
+
font-family:'SF Pro JP';
|
599 |
+
font-style:normal;
|
600 |
+
font-weight:600;
|
601 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.ttf") format("truetype");
|
602 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
603 |
+
}
|
604 |
+
|
605 |
+
@font-face {
|
606 |
+
font-family:'SF Pro JP 600';
|
607 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.eot');
|
608 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
609 |
+
}
|
610 |
+
|
611 |
+
@font-face {
|
612 |
+
font-family:'SF Pro JP';
|
613 |
+
font-style:normal;
|
614 |
+
font-weight:700;
|
615 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.ttf") format("truetype");
|
616 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
617 |
+
}
|
618 |
+
|
619 |
+
@font-face {
|
620 |
+
font-family:'SF Pro JP 700';
|
621 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.eot');
|
622 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
623 |
+
}
|
624 |
+
|
625 |
+
@font-face {
|
626 |
+
font-family:'SF Pro JP';
|
627 |
+
font-style:normal;
|
628 |
+
font-weight:800;
|
629 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.ttf") format("truetype");
|
630 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
631 |
+
}
|
632 |
+
|
633 |
+
@font-face {
|
634 |
+
font-family:'SF Pro JP 800';
|
635 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.eot');
|
636 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
637 |
+
}
|
638 |
+
|
639 |
+
@font-face {
|
640 |
+
font-family:'SF Pro JP';
|
641 |
+
font-style:normal;
|
642 |
+
font-weight:900;
|
643 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.ttf") format("truetype");
|
644 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
645 |
+
}
|
646 |
+
|
647 |
+
@font-face {
|
648 |
+
font-family:'SF Pro JP 900';
|
649 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_black.eot');
|
650 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
651 |
+
}
|
652 |
+
|
653 |
+
@font-face {
|
654 |
+
font-family:'SF Pro JP';
|
655 |
+
font-style:normal;
|
656 |
+
font-weight:400;
|
657 |
+
src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.eot');
|
658 |
+
src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.ttf") format("truetype");
|
659 |
+
/* (C) 2015 Apple Inc. All rights reserved. */
|
660 |
+
}
|
661 |
+
|
index.html
CHANGED
@@ -26,12 +26,13 @@
|
|
26 |
<script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
|
27 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
|
28 |
<link rel="preconnect" href="https://rsms.me">
|
29 |
-
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
|
30 |
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
31 |
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
|
32 |
<link rel="preconnect" href="https://fonts.googleapis.com">
|
33 |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
34 |
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
|
|
|
35 |
<style>
|
36 |
html, body {
|
37 |
overflow: hidden;
|
|
|
26 |
<script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
|
27 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
|
28 |
<link rel="preconnect" href="https://rsms.me">
|
29 |
+
<link rel="stylesheet prefetch" href="https://rsms.me/inter/inter.css">
|
30 |
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
31 |
+
<link rel="stylesheet prefetch" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
|
32 |
<link rel="preconnect" href="https://fonts.googleapis.com">
|
33 |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
34 |
+
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
|
35 |
+
<link rel="stylesheet prefetch" href="./apple_fonts.css">
|
36 |
<style>
|
37 |
html, body {
|
38 |
overflow: hidden;
|
index_worst.html
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7 |
+
|
8 |
+
<title>Babylon.js MMD Test</title>
|
9 |
+
|
10 |
+
<!-- Babylon.js -->
|
11 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
|
12 |
+
<script src="https://assets.babylonjs.com/generated/Assets.js"></script>
|
13 |
+
<script src="https://cdn.babylonjs.com/recast.js"></script>
|
14 |
+
<script src="https://cdn.babylonjs.com/ammo.js"></script>
|
15 |
+
<script src="https://cdn.babylonjs.com/havok/HavokPhysics_umd.js"></script>
|
16 |
+
<script src="https://cdn.babylonjs.com/cannon.js"></script>
|
17 |
+
<script src="https://cdn.babylonjs.com/Oimo.js"></script>
|
18 |
+
<script src="https://cdn.babylonjs.com/earcut.min.js"></script>
|
19 |
+
<script src="https://cdn.babylonjs.com/babylon.js"></script>
|
20 |
+
<script src="https://cdn.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
|
21 |
+
<script src="https://cdn.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
|
22 |
+
<script src="https://cdn.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
|
23 |
+
<script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.js"></script>
|
24 |
+
<script src="https://cdn.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
|
25 |
+
<script src="https://cdn.babylonjs.com/gui/babylon.gui.min.js"></script>
|
26 |
+
<script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
|
27 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
|
28 |
+
<link rel="preconnect" href="https://rsms.me">
|
29 |
+
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
|
30 |
+
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
31 |
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
|
32 |
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
33 |
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
34 |
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
|
35 |
+
<style>
|
36 |
+
html, body {
|
37 |
+
overflow: hidden;
|
38 |
+
width: 100%;
|
39 |
+
height: 100%;
|
40 |
+
margin: 0;
|
41 |
+
padding: 0;
|
42 |
+
}
|
43 |
+
#renderCanvas {
|
44 |
+
width: 100%;
|
45 |
+
height: 100%;
|
46 |
+
touch-action: none;
|
47 |
+
}
|
48 |
+
#canvasZone {
|
49 |
+
width: 100%;
|
50 |
+
height: 100%;
|
51 |
+
}
|
52 |
+
</style>
|
53 |
+
</head>
|
54 |
+
<body>
|
55 |
+
<div id="canvasZone"><canvas id="renderCanvas"></canvas></div>
|
56 |
+
<script src="script_worst.js"></script>
|
57 |
+
</body>
|
58 |
+
</html>
|
res/model/Alicia/Alicia_hair.png
DELETED
Git LFS Details
|
res/model/Alicia/Alicia_rod.png
DELETED
Git LFS Details
|
res/model/Alicia/Alicia_solid.pmx
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:62f04b066f0d2a28fb09126bc82d94fa24c0d8f2cd8d7e78b5a0a2d3989d280b
|
3 |
-
size 1482421
|
|
|
|
|
|
|
|
res/model/Alicia/Alicia_wear.png
DELETED
Git LFS Details
|
res/model/Alicia/blade_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/eye_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/face_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/hair_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/ramp_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/rod_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/shoes_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/skin_s.bmp
DELETED
Git LFS Details
|
res/model/Alicia/tongue_s.bmp
DELETED
Git LFS Details
|
res/model/MiraiAkari_v1.0.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6e71f363126bba088760a1bf4bb6436b0f9e3819a5b5e3c4e1ba74d17ae9c447
|
3 |
+
size 21778229
|
res/model/higuchi_kaede.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6e521392265f860a56ba79441a9f1ae32eedbea910c080fd2450ccf37406d087
|
3 |
+
size 6032777
|
res/model/higuchi_kaede_alt.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8a48e214194f58fad1b07fc5532db1d2bab38bcd36a557252e99b5c2669554ee
|
3 |
+
size 5866061
|
res/model/higuchi_kaede_army.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bdbeb1fea5d2bc8468b72ff6336029c23caee8f069f6eb7aa0a5833709c9804e
|
3 |
+
size 10074923
|
res/model/higuchi_kaede_army_alt.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7d965c3bc1e0ce8cd6c705ca86b6b124618bb4a4c281d40863e13e16136c54df
|
3 |
+
size 10156180
|
res/model/higuchi_kaede_casual.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:d06e96b5f1e29e9c5077112dcfa3005181a3246f06ab77f061367e1f3bcfae80
|
3 |
+
size 14454116
|
res/model/higuchi_kaede_oni.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:29c46442b0105e5901cc71331147caa23bda3c714ec9fb48d64da4356980a61d
|
3 |
+
size 16132263
|
res/model/higuchi_kaede_summer.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3129bb398044c4ba579db30cb204afb3abbdde922ca69277e6ba64a812aefd51
|
3 |
+
size 5577975
|
res/model/higuchi_kaede_summer_alt.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1cc1f88f9d0e64d64f3b8cbf10e42c36670db9b11e024913fc89a91730272184
|
3 |
+
size 5410947
|
res/model/inui_toko.bpmx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3d725cb0ca6c2ade4a4438d2a71bb70b3553a86358c41c7ebcb397e1fdbfc63d
|
3 |
+
size 8819594
|
script.js
CHANGED
@@ -62,6 +62,16 @@ const resourcePathSets = {
|
|
62 |
},
|
63 |
'mainModel': {
|
64 |
'alicia': './res/model/Alicia.bpmx',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
'raidenShogun': './res/model/RaidenShogun.bpmx',
|
66 |
'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
|
67 |
}
|
@@ -194,8 +204,6 @@ class Playground {
|
|
194 |
const mmdModel = mmdRuntime.createMmdModel(modelMesh);
|
195 |
mmdModel.addAnimation(loadResults[0]);
|
196 |
mmdModel.setAnimation("motion");
|
197 |
-
mmdModel.mesh.edgesColor = new BABYLON.Color4(0.152, 0.062, 0.035, 1.0);
|
198 |
-
mmdModel.mesh.edgesWidth = 100;
|
199 |
const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
|
200 |
scene.onBeforeRenderObservable.add(() => {
|
201 |
bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
|
@@ -227,7 +235,7 @@ class Playground {
|
|
227 |
defaultPipeline.imageProcessing.vignetteStretch = 0.5;
|
228 |
defaultPipeline.imageProcessing.vignetteColor = new BABYLON.Color4(0, 0, 0, 0);
|
229 |
defaultPipeline.imageProcessing.vignetteEnabled = true;
|
230 |
-
const lensEffect = new BABYLON.LensRenderingPipeline('lensEffects', {edge_blur: engine.hostInformation.isMobile ? 0.0 : 1.0, chromatic_aberration: 1.0, distortion: 0.
|
231 |
scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', camera);
|
232 |
scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', mmdCamera);
|
233 |
// BABYLON.ParticleHelper.CreateAsync("rain", scene, false).then((set) => {set.start()});
|
@@ -245,6 +253,26 @@ class Playground {
|
|
245 |
if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
|
246 |
else scene.activeCameras = [mmdCamera, guiCamera];
|
247 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
|
249 |
advancedTexture.layer.layerMask = 0x10000000;
|
250 |
advancedTexture.renderScale = 1.5;
|
@@ -253,7 +281,7 @@ class Playground {
|
|
253 |
// textblock.left = 10;
|
254 |
textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
|
255 |
textblock.fontSize = 32;
|
256 |
-
textblock.fontFamily = "system-ui";
|
257 |
textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
258 |
textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
|
259 |
textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
@@ -262,13 +290,49 @@ class Playground {
|
|
262 |
advancedTexture.addControl(textblock);
|
263 |
const textBlockUpdateDisp = setInterval(() => {
|
264 |
if (engine.hostInformation.isMobile) {
|
265 |
-
textblock.text = `${engine._glRenderer}
|
|
|
|
|
|
|
|
|
|
|
266 |
} else {
|
267 |
-
textblock.text = `${engine._glRenderer}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
}, 10);
|
270 |
await new Promise(resolve => setTimeout(resolve, 1000));
|
271 |
mmdRuntime.playAnimation();
|
|
|
272 |
return scene;
|
273 |
}
|
274 |
}
|
|
|
62 |
},
|
63 |
'mainModel': {
|
64 |
'alicia': './res/model/Alicia.bpmx',
|
65 |
+
'higuchiKaede': './res/model/higuchi_kaede.bpmx',
|
66 |
+
'higuchiKaedeHair': './res/model/higuchi_kaede_alt.bpmx',
|
67 |
+
'higuchiKaedeSummer': './res/model/higuchi_kaede_summer.bpmx',
|
68 |
+
'higuchiKaedeSummerHair': './res/model/higuchi_kaede_summer_alt.bpmx',
|
69 |
+
'higuchiKaedeCasual': './res/model/higuchi_kaede_casual.bpmx',
|
70 |
+
'higuchiKaedeOni': './res/model/higuchi_kaede_oni.bpmx',
|
71 |
+
'higuchiKaedeArmy': './res/model/higuchi_kaede_army.bpmx',
|
72 |
+
'higuchiKaedeArmyHair': './res/model/higuchi_kaede_army_alt.bpmx',
|
73 |
+
'inuiToko': './res/model/inui_toko.bpmx',
|
74 |
+
'miraiAkari': './res/model/MiraiAkari_v1.0.bpmx',
|
75 |
'raidenShogun': './res/model/RaidenShogun.bpmx',
|
76 |
'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
|
77 |
}
|
|
|
204 |
const mmdModel = mmdRuntime.createMmdModel(modelMesh);
|
205 |
mmdModel.addAnimation(loadResults[0]);
|
206 |
mmdModel.setAnimation("motion");
|
|
|
|
|
207 |
const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
|
208 |
scene.onBeforeRenderObservable.add(() => {
|
209 |
bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
|
|
|
235 |
defaultPipeline.imageProcessing.vignetteStretch = 0.5;
|
236 |
defaultPipeline.imageProcessing.vignetteColor = new BABYLON.Color4(0, 0, 0, 0);
|
237 |
defaultPipeline.imageProcessing.vignetteEnabled = true;
|
238 |
+
const lensEffect = new BABYLON.LensRenderingPipeline('lensEffects', {edge_blur: engine.hostInformation.isMobile ? 0.0 : 1.0, chromatic_aberration: engine.hostInformation.isMobile ? 0.5 : 1.0, distortion: 0.2}, scene, 1.0);
|
239 |
scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', camera);
|
240 |
scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', mmdCamera);
|
241 |
// BABYLON.ParticleHelper.CreateAsync("rain", scene, false).then((set) => {set.start()});
|
|
|
253 |
if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
|
254 |
else scene.activeCameras = [mmdCamera, guiCamera];
|
255 |
};
|
256 |
+
let engineInstrumentation = new BABYLON.EngineInstrumentation(engine);
|
257 |
+
engineInstrumentation.captureGPUFrameTime = true;
|
258 |
+
engineInstrumentation.captureShaderCompilationTime = true;
|
259 |
+
let sceneInstrumentation = new BABYLON.SceneInstrumentation(scene);
|
260 |
+
sceneInstrumentation.captureActiveMeshesEvaluationTime = true;
|
261 |
+
sceneInstrumentation.captureFrameTime = true;
|
262 |
+
sceneInstrumentation.captureParticlesRenderTime = true;
|
263 |
+
sceneInstrumentation.captureRenderTime = true;
|
264 |
+
sceneInstrumentation.captureCameraRenderTime = true;
|
265 |
+
sceneInstrumentation.captureRenderTargetsRenderTime = true;
|
266 |
+
sceneInstrumentation.captureInterFrameTime = true;
|
267 |
+
let isLimitFPS = false;
|
268 |
+
let targetFPS = null;
|
269 |
+
if (Object.keys(urlQueryObject).some(el => el === 'fps')) {
|
270 |
+
isLimitFPS = true;
|
271 |
+
targetFPS = parseFloat(urlQueryObject.fps) + 0.35;
|
272 |
+
engine.customAnimationFrameRequester = {
|
273 |
+
requestAnimationFrame: (func) => {setTimeout(func, 1000 / targetFPS - sceneInstrumentation.frameTimeCounter.current - sceneInstrumentation.activeMeshesEvaluationTimeCounter.current - sceneInstrumentation.particlesRenderTimeCounter.lastSecAverage - sceneInstrumentation.renderTimeCounter.current - sceneInstrumentation.cameraRenderTimeCounter.current - sceneInstrumentation.renderTargetsRenderTimeCounter.current)}
|
274 |
+
};
|
275 |
+
}
|
276 |
const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
|
277 |
advancedTexture.layer.layerMask = 0x10000000;
|
278 |
advancedTexture.renderScale = 1.5;
|
|
|
281 |
// textblock.left = 10;
|
282 |
textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
|
283 |
textblock.fontSize = 32;
|
284 |
+
textblock.fontFamily = "'SF Mono', 'SF Pro Text', 'Inter', 'Noto Sans JP', 'system-ui'";
|
285 |
textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
286 |
textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
|
287 |
textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
|
290 |
advancedTexture.addControl(textblock);
|
291 |
const textBlockUpdateDisp = setInterval(() => {
|
292 |
if (engine.hostInformation.isMobile) {
|
293 |
+
textblock.text = `${engine._glRenderer}
|
294 |
+
${engine._glVersion}
|
295 |
+
|
296 |
+
${engine.frameId} f
|
297 |
+
${mathFunc.rounder('floor', engine.performanceMonitor.averageFPS, 2)} fps
|
298 |
+
${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2)} ms`;
|
299 |
} else {
|
300 |
+
textblock.text = `${engine._glRenderer}
|
301 |
+
${engine._glVersion}
|
302 |
+
|
303 |
+
Main Model Path: ${resourcePaths.mainModel}
|
304 |
+
Main Motion Path: ${resourcePaths.mainMotion}
|
305 |
+
Main Audio Path: ${resourcePaths.audio}
|
306 |
+
|
307 |
+
FPS Disp: ${mathFunc.rounder('floor', engine.performanceMonitor.averageFPS, 2, true)} fps avg (${mathFunc.rounder('floor', engine.performanceMonitor.instantaneousFPS, 2, true)} fps)
|
308 |
+
FPS Limit: ${isLimitFPS ? mathFunc.rounder('floor', parseFloat(urlQueryObject.fps), 2, true) + ' fps' : 'unlimited'}
|
309 |
+
FPS Real: ${isLimitFPS ? mathFunc.rounder('floor', 1000 / sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true) : mathFunc.rounder('floor', 1000 / sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true)} fps
|
310 |
+
|
311 |
+
Active Meshes: ${scene.getActiveMeshes().length} / ${scene.meshes.length}
|
312 |
+
Total Vertices: ${scene.totalVerticesPerfCounter.current}
|
313 |
+
Active Indices: ${scene.totalActiveIndicesPerfCounter.current}
|
314 |
+
Total Objects: ${scene.materials.length} mat, ${scene.textures.length} tex, ${scene.animatables.length} anm, ${scene.lights.length} lit
|
315 |
+
Draw Calls Count: ${sceneInstrumentation.drawCallsCounter.current}
|
316 |
+
|
317 |
+
Frame Count: ${engine.frameId} frame
|
318 |
+
Actually Frame: ${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2, true)} ms avg (${mathFunc.rounder('floor', engine.performanceMonitor.instantaneousFrameTime, 2, true)} ms)
|
319 |
+
Scene Frame: ${mathFunc.rounder('ceil', sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.frameTimeCounter.current, 2, true)} ms)
|
320 |
+
Active Meshes Eval: ${mathFunc.rounder('ceil', sceneInstrumentation.activeMeshesEvaluationTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.activeMeshesEvaluationTimeCounter.current, 2, true)} ms)
|
321 |
+
Particles Render: ${mathFunc.rounder('ceil', sceneInstrumentation.particlesRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.particlesRenderTimeCounter.current, 2, true)} ms)
|
322 |
+
Inter Frame: ${mathFunc.rounder('ceil', sceneInstrumentation.interFrameTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.interFrameTimeCounter.current, 2, true)} ms)
|
323 |
+
GPU Frame: ${mathFunc.rounder('ceil', engineInstrumentation.gpuFrameTimeCounter.lastSecAverage * 0.000001, 2, true)} ms avg (${mathFunc.rounder('ceil', engineInstrumentation.gpuFrameTimeCounter.current * 0.000001, 2, true)} ms)
|
324 |
+
Shader Comp Total: ${mathFunc.rounder('ceil', engineInstrumentation.shaderCompilationTimeCounter.count, 2, true)} ms
|
325 |
+
Scene Render: ${mathFunc.rounder('ceil', sceneInstrumentation.renderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.renderTimeCounter.current, 2, true)} ms)
|
326 |
+
Camera Render: ${mathFunc.rounder('ceil', sceneInstrumentation.cameraRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.cameraRenderTimeCounter.current, 2, true)} ms)
|
327 |
+
Targets Render: ${mathFunc.rounder('ceil', sceneInstrumentation.renderTargetsRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.renderTargetsRenderTimeCounter.current, 2, true)} ms)
|
328 |
+
|
329 |
+
Heap: ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.usedJSHeapSize / 1024 / 1024, 2, true))} MB / ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.totalJSHeapSize / 1024 / 1024, 2, true))} MB (Limit ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.jsHeapSizeLimit / 1024 / 1024, 2, true))} MB)
|
330 |
+
`;
|
331 |
}
|
332 |
}, 10);
|
333 |
await new Promise(resolve => setTimeout(resolve, 1000));
|
334 |
mmdRuntime.playAnimation();
|
335 |
+
console.log(sceneInstrumentation)
|
336 |
return scene;
|
337 |
}
|
338 |
}
|
script_worst.js
ADDED
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const mathFunc = {
|
2 |
+
'arrayMax': (array) => {
|
3 |
+
const maxfct = (a, b) => {return Math.max(a, b)};
|
4 |
+
return array.reduce(maxfct);
|
5 |
+
},
|
6 |
+
'arrayMin': (array) => {
|
7 |
+
const minfct = (a, b) => {return Math.min(a, b)};
|
8 |
+
return array.reduce(minfct);
|
9 |
+
},
|
10 |
+
'arrayTotal': (array) => {
|
11 |
+
return array.reduce((acc, f) => acc + f, 0);
|
12 |
+
},
|
13 |
+
'arrayAvg': (array) => {
|
14 |
+
return array.reduce((acc, f) => acc + f, 0) / array.length;
|
15 |
+
},
|
16 |
+
'rounder': (method, num, n, zeroPadding = false) => {
|
17 |
+
const pow = Math.pow(10, n);
|
18 |
+
let result;
|
19 |
+
switch (method) {
|
20 |
+
case 'floor':
|
21 |
+
result = Math.floor(num * pow) / pow;
|
22 |
+
break;
|
23 |
+
case 'ceil':
|
24 |
+
result = Math.ceil(num * pow) / pow;
|
25 |
+
break;
|
26 |
+
case 'round':
|
27 |
+
result = Math.round(num * pow) / pow;
|
28 |
+
break;
|
29 |
+
default:
|
30 |
+
throw new Error('Invalid rounding method specified.');
|
31 |
+
}
|
32 |
+
if (zeroPadding) {
|
33 |
+
return result.toFixed(n);
|
34 |
+
} else {
|
35 |
+
return result;
|
36 |
+
}
|
37 |
+
},
|
38 |
+
'formatFileSize': (bytes, decimals = 2) => {
|
39 |
+
if (bytes === 0) return '0 byte';
|
40 |
+
const k = 1024;
|
41 |
+
const dm = decimals < 0 ? 0 : decimals;
|
42 |
+
const sizes = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
|
43 |
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
44 |
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
45 |
+
}
|
46 |
+
};
|
47 |
+
|
48 |
+
const resourcePathSetsDefault = {
|
49 |
+
'track': 'melancholy_night',
|
50 |
+
'mainModel': 'alicia'
|
51 |
+
};
|
52 |
+
const resourcePathSets = {
|
53 |
+
'track': {
|
54 |
+
'conqueror': {
|
55 |
+
'mainMotion': './res/track/conqueror/merged.bvmd',
|
56 |
+
'audio': './res/track/conqueror/audio.m4a'
|
57 |
+
},
|
58 |
+
'melancholy_night': {
|
59 |
+
'mainMotion': './res/track/melancholy_night/motion.bvmd',
|
60 |
+
'audio': './res/track/melancholy_night/melancholy_night.m4a'
|
61 |
+
}
|
62 |
+
},
|
63 |
+
'mainModel': {
|
64 |
+
'alicia': './res/model/Alicia.bpmx',
|
65 |
+
'raidenShogun': './res/model/RaidenShogun.bpmx',
|
66 |
+
'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
|
67 |
+
}
|
68 |
+
};
|
69 |
+
const resourcePaths = {
|
70 |
+
'mainModel': resourcePathSets.mainModel[resourcePathSetsDefault.mainModel],
|
71 |
+
'mainMotion': resourcePathSets.track[resourcePathSetsDefault.track].mainMotion,
|
72 |
+
'audio': resourcePathSets.track[resourcePathSetsDefault.track].audio,
|
73 |
+
};
|
74 |
+
const urlQueryObject = Object.fromEntries(new URLSearchParams(window.location.search));
|
75 |
+
if (Object.keys(urlQueryObject).some(el => el === 'track')) {
|
76 |
+
for (let i = 0; i < Object.keys(resourcePathSets.track).length; i++) {
|
77 |
+
if (urlQueryObject.track === Object.keys(resourcePathSets.track)[i]) {
|
78 |
+
resourcePaths.mainMotion = resourcePathSets.track[Object.keys(resourcePathSets.track)[i]].mainMotion;
|
79 |
+
resourcePaths.audio = resourcePathSets.track[Object.keys(resourcePathSets.track)[i]].audio;
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
83 |
+
if (Object.keys(urlQueryObject).some(el => el === 'mainModel')) {
|
84 |
+
for (let i = 0; i < Object.keys(resourcePathSets.mainModel).length; i++) {
|
85 |
+
if (urlQueryObject.mainModel === Object.keys(resourcePathSets.mainModel)[i]) {
|
86 |
+
resourcePaths.mainModel = resourcePathSets.mainModel[Object.keys(resourcePathSets.mainModel)[i]];
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
var canvas = document.getElementById("renderCanvas");
|
92 |
+
var startRenderLoop = function (engine, canvas) {
|
93 |
+
engine.runRenderLoop(function () {
|
94 |
+
if (sceneToRender && sceneToRender.activeCamera) {
|
95 |
+
sceneToRender.render();
|
96 |
+
}
|
97 |
+
});
|
98 |
+
};
|
99 |
+
var engine = null;
|
100 |
+
var scene = null;
|
101 |
+
var sceneToRender = null;
|
102 |
+
var createDefaultEngine = function () {
|
103 |
+
return new BABYLON.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true, disableWebGL2Support: false });
|
104 |
+
};
|
105 |
+
class Playground {
|
106 |
+
static async CreateScene(engine, canvas) {
|
107 |
+
await new Promise((resolve) => {
|
108 |
+
const babylonMmdScript = document.createElement("script");
|
109 |
+
babylonMmdScript.src = "https://www.unpkg.com/[email protected]/umd/babylon.mmd.min.js";
|
110 |
+
document.head.appendChild(babylonMmdScript);
|
111 |
+
babylonMmdScript.onload = resolve;
|
112 |
+
});
|
113 |
+
if (engine.hostInformation.isMobile) {engine.setHardwareScalingLevel(0.85)} else {engine.setHardwareScalingLevel(0.75)}
|
114 |
+
const pmxLoader = BABYLON.SceneLoader.GetPluginForExtension(".pmx");
|
115 |
+
const materialBuilder = pmxLoader.materialBuilder;
|
116 |
+
materialBuilder.useAlphaEvaluation = false;
|
117 |
+
materialBuilder.loadOutlineRenderingProperties = () => {};
|
118 |
+
// const alphaBlendMaterials = ["face02", "Facial02", "HL", "Hairshadow", "q302"];
|
119 |
+
// const alphaTestMaterials = ["q301"];
|
120 |
+
// materialBuilder.afterBuildSingleMaterial = (material) => {
|
121 |
+
// if (!alphaBlendMaterials.includes(material.name) && !alphaTestMaterials.includes(material.name)) return;
|
122 |
+
// material.transparencyMode = alphaBlendMaterials.includes(material.name) ? BABYLON.Material.MATERIAL_ALPHABLEND : BABYLON.Material.MATERIAL_ALPHATEST;
|
123 |
+
// material.useAlphaFromDiffuseTexture = true;
|
124 |
+
// material.diffuseTexture.hasAlpha = true;
|
125 |
+
// };
|
126 |
+
const scene = new BABYLON.Scene(engine);
|
127 |
+
// BABYLON.SceneOptimizer.OptimizeAsync(scene);
|
128 |
+
// scene.clearColor = new BABYLON.Color4(0.95, 0.95, 0.95, 1.0);
|
129 |
+
scene.clearColor = new BABYLON.Color4(0, 0, 0, 1.0);
|
130 |
+
const mmdCamera = new BABYLONMMD.MmdCamera("MmdCamera", new BABYLON.Vector3(0, 10, 0), scene);
|
131 |
+
mmdCamera.maxZ = 5000;
|
132 |
+
const camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 0, 0, 45, new BABYLON.Vector3(0, 10, 0), scene);
|
133 |
+
camera.maxZ = 5000;
|
134 |
+
camera.setPosition(new BABYLON.Vector3(0, 10, -45));
|
135 |
+
camera.attachControl(canvas, false);
|
136 |
+
camera.inertia = 0.8;
|
137 |
+
camera.speed = 10;
|
138 |
+
const hemisphericLight = new BABYLON.HemisphericLight("HemisphericLight", new BABYLON.Vector3(0, 1, 0), scene);
|
139 |
+
hemisphericLight.intensity = 1;
|
140 |
+
hemisphericLight.specular = new BABYLON.Color3(0, 0, 0);
|
141 |
+
hemisphericLight.groundColor = new BABYLON.Color3(0, 0, 0);
|
142 |
+
// const directionalLight = new BABYLON.DirectionalLight("DirectionalLight", new BABYLON.Vector3(0.5, -1, 1), scene);
|
143 |
+
// directionalLight.intensity = 0.8;
|
144 |
+
// directionalLight.autoCalcShadowZBounds = false;
|
145 |
+
// directionalLight.autoUpdateExtends = false;
|
146 |
+
// directionalLight.shadowMaxZ = 20;
|
147 |
+
// directionalLight.shadowMinZ = -15;
|
148 |
+
// directionalLight.orthoTop = 18;
|
149 |
+
// directionalLight.orthoBottom = -1;
|
150 |
+
// directionalLight.orthoLeft = -10;
|
151 |
+
// directionalLight.orthoRight = 10;
|
152 |
+
// directionalLight.shadowOrthoScale = 0;
|
153 |
+
// const shadowGenerator = new BABYLON.ShadowGenerator(1024, directionalLight, true);
|
154 |
+
// shadowGenerator.usePercentageCloserFiltering = true;
|
155 |
+
// shadowGenerator.forceBackFacesOnly = true;
|
156 |
+
// shadowGenerator.filteringQuality = BABYLON.ShadowGenerator.QUALITY_MEDIUM;
|
157 |
+
// shadowGenerator.frustumEdgeFalloff = 0.1;
|
158 |
+
const mmdRuntime = new BABYLONMMD.MmdRuntime(scene, new BABYLONMMD.MmdPhysics(scene));
|
159 |
+
mmdRuntime.register(scene);
|
160 |
+
const audioPlayer = new BABYLONMMD.StreamAudioPlayer(scene);
|
161 |
+
audioPlayer.preservesPitch = false;
|
162 |
+
audioPlayer.source = resourcePaths.audio;
|
163 |
+
mmdRuntime.setAudioPlayer(audioPlayer);
|
164 |
+
const mmdPlayerControl = new BABYLONMMD.MmdPlayerControl(scene, mmdRuntime, audioPlayer);
|
165 |
+
mmdPlayerControl.showPlayerControl();
|
166 |
+
engine.displayLoadingUI();
|
167 |
+
let loadingTexts = [];
|
168 |
+
const updateLoadingText = (updateIndex, text) => {
|
169 |
+
loadingTexts[updateIndex] = text;
|
170 |
+
engine.loadingUIText = "<br/><br/><br/><br/>" + loadingTexts.join("<br/><br/>");
|
171 |
+
};
|
172 |
+
const promises = [];
|
173 |
+
const bvmdLoader = new BABYLONMMD.BvmdLoader(scene);
|
174 |
+
promises.push(bvmdLoader.loadAsync("motion", resourcePaths.mainMotion, (event) => updateLoadingText(0, `Loading motion... ${event.loaded}/${event.total} (${Math.floor((event.loaded * 100) / event.total)}%)`)));
|
175 |
+
promises.push(BABYLON.SceneLoader.ImportMeshAsync(undefined, resourcePaths.mainModel, undefined, scene, (event) => updateLoadingText(1, `Loading model... ${event.loaded}/${event.total} (${Math.floor((event.loaded * 100) / event.total)}%)`)));
|
176 |
+
promises.push(
|
177 |
+
(async () => {
|
178 |
+
updateLoadingText(2, "Loading physics engine...");
|
179 |
+
const havokPlugin = new BABYLON.HavokPlugin();
|
180 |
+
// scene.enablePhysics(new BABYLON.Vector3(0, -9.8, 0), havokPlugin);
|
181 |
+
scene.enablePhysics(new BABYLON.Vector3(0, -9.8, 0), havokPlugin);
|
182 |
+
updateLoadingText(2, "Loading physics engine... Done");
|
183 |
+
})()
|
184 |
+
);
|
185 |
+
loadingTexts = new Array(promises.length).fill("");
|
186 |
+
const loadResults = await Promise.all(promises);
|
187 |
+
scene.onAfterRenderObservable.addOnce(() => engine.hideLoadingUI());
|
188 |
+
mmdRuntime.setCamera(mmdCamera);
|
189 |
+
mmdCamera.addAnimation(loadResults[0]);
|
190 |
+
mmdCamera.setAnimation("motion");
|
191 |
+
const modelMesh = loadResults[1].meshes[0];
|
192 |
+
modelMesh.receiveShadows = true;
|
193 |
+
// shadowGenerator.addShadowCaster(modelMesh);
|
194 |
+
const mmdModel = mmdRuntime.createMmdModel(modelMesh);
|
195 |
+
mmdModel.addAnimation(loadResults[0]);
|
196 |
+
mmdModel.setAnimation("motion");
|
197 |
+
mmdModel.mesh.metadata.materials.forEach(mtr => {mtr.wireframe = true});
|
198 |
+
const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
|
199 |
+
// scene.onBeforeRenderObservable.add(() => {
|
200 |
+
// bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
|
201 |
+
// directionalLight.position.y -= 10;
|
202 |
+
// });
|
203 |
+
const ground = BABYLON.MeshBuilder.CreateGround("Ground", { width: 100, height: 100, subdivisions: 2, updatable: false }, scene);
|
204 |
+
ground.receiveShadows = true;
|
205 |
+
const groundMaterial = (ground.material = new BABYLON.StandardMaterial("GroundMaterial", scene));
|
206 |
+
groundMaterial.diffuseColor = new BABYLON.Color3(0.25, 0.25, 0.25);
|
207 |
+
groundMaterial.specularPower = 128;
|
208 |
+
const groundReflectionTexture = (groundMaterial.reflectionTexture = new BABYLON.MirrorTexture("MirrorTexture", 1024, scene, true));
|
209 |
+
groundReflectionTexture.mirrorPlane = BABYLON.Plane.FromPositionAndNormal(ground.position, ground.getFacetNormal(0).scale(-1));
|
210 |
+
groundReflectionTexture.renderList = [modelMesh];
|
211 |
+
groundReflectionTexture.level = 0.25;
|
212 |
+
const guiCamera = new BABYLON.ArcRotateCamera("GUICamera", Math.PI / 2 + Math.PI / 7, Math.PI / 2, 100, new BABYLON.Vector3(0, 20, 0), scene);
|
213 |
+
guiCamera.layerMask = 0x10000000;
|
214 |
+
scene.activeCameras = [mmdCamera, guiCamera];
|
215 |
+
let lastClickTime = -Infinity;
|
216 |
+
canvas.onclick = () => {
|
217 |
+
const currentTime = performance.now();
|
218 |
+
if (500 < currentTime - lastClickTime) {
|
219 |
+
lastClickTime = currentTime;
|
220 |
+
return;
|
221 |
+
}
|
222 |
+
lastClickTime = -Infinity;
|
223 |
+
if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
|
224 |
+
else scene.activeCameras = [mmdCamera, guiCamera];
|
225 |
+
};
|
226 |
+
const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
|
227 |
+
advancedTexture.layer.layerMask = 0x10000000;
|
228 |
+
advancedTexture.renderScale = 1.5;
|
229 |
+
const textblock = new BABYLON.GUI.TextBlock();
|
230 |
+
// textblock.widthInPixels = 800;
|
231 |
+
// textblock.left = 10;
|
232 |
+
textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
|
233 |
+
textblock.fontSize = 32;
|
234 |
+
textblock.fontFamily = "system-ui";
|
235 |
+
textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
236 |
+
textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
|
237 |
+
textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
238 |
+
textblock.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
|
239 |
+
textblock.color = "#ffffff";
|
240 |
+
advancedTexture.addControl(textblock);
|
241 |
+
const textBlockUpdateDisp = setInterval(() => {
|
242 |
+
if (engine.hostInformation.isMobile) {
|
243 |
+
textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${engine.frameId} f\n${mathFunc.rounder('floor', engine.getFps(), 2)} fps\n${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2)} ms`;
|
244 |
+
} else {
|
245 |
+
textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${resourcePaths.mainModel}\n${resourcePaths.mainMotion}\n${resourcePaths.audio}\n\n${engine.frameId} frame\n${Math.floor(engine.getFps())} fps\n${Math.floor(engine.performanceMonitor.averageFrameTime)} ms`;
|
246 |
+
}
|
247 |
+
}, 10);
|
248 |
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
249 |
+
mmdRuntime.playAnimation();
|
250 |
+
return scene;
|
251 |
+
}
|
252 |
+
}
|
253 |
+
createScene = function () {
|
254 |
+
return Playground.CreateScene(engine, engine.getRenderingCanvas());
|
255 |
+
};
|
256 |
+
window.initFunction = async function () {
|
257 |
+
globalThis.HK = await HavokPhysics();
|
258 |
+
|
259 |
+
var asyncEngineCreation = async function () {
|
260 |
+
try {
|
261 |
+
return createDefaultEngine();
|
262 |
+
} catch (e) {
|
263 |
+
console.log("the available createEngine function failed. Creating the default engine instead");
|
264 |
+
return createDefaultEngine();
|
265 |
+
}
|
266 |
+
};
|
267 |
+
|
268 |
+
window.engine = await asyncEngineCreation();
|
269 |
+
if (!engine) throw "engine should not be null.";
|
270 |
+
startRenderLoop(engine, canvas);
|
271 |
+
window.scene = createScene();
|
272 |
+
};
|
273 |
+
initFunction().then(() => {
|
274 |
+
scene.then((returnedScene) => {
|
275 |
+
sceneToRender = returnedScene;
|
276 |
+
});
|
277 |
+
});
|
278 |
+
|
279 |
+
// Resize
|
280 |
+
window.addEventListener("resize", function () {
|
281 |
+
engine.resize();
|
282 |
+
});
|
res/model/Alicia/Alicia_blade.pmx → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1e6671d875a1736d84970b31bf7cd761d741a83433761873804d3553fa7fb7c7
|
3 |
+
size 324300
|
res/model/Alicia/Alicia_body.png → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:494b9c532f7130c093f99b0de040444bac66ec270c61929db2a737de99a443a4
|
3 |
+
size 132804
|
res/model/Alicia/Alicia_eye.png → wss/fonts/SF-Mono/v1/sf-mono_bold.eot
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c25b01e5c6d8314cc5328e00c7a2784cd5e5d8925dcf03891d1aeeb70d8042f0
|
3 |
+
size 315890
|
res/model/Alicia/Alicia_face.png → wss/fonts/SF-Mono/v1/sf-mono_bold.ttf
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:73766b118db7cec3f59c1fce65fd9a612e90c997bd8776010b0a0b0f5aa6162e
|
3 |
+
size 315716
|
wss/fonts/SF-Mono/v1/sf-mono_bold.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8293388b51eff7b6c5d3396008892409b1334344c63408c70a7a6a78aa9eec9a
|
3 |
+
size 141072
|
wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:942a5d6b34b5f6acb731b511d46451edef572661668a05ef3687a8518b74bed0
|
3 |
+
size 327464
|
wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f1a084067ab341fad9dd9bef6bd715270fccb7c70e9627d8dc1ab0f1b743f4f5
|
3 |
+
size 126356
|
wss/fonts/SF-Mono/v1/sf-mono_heavy.eot
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:d64459ad540aa7d7743a43e2fe3d890ce11e2414a35bb5653fd3d59ff149fee1
|
3 |
+
size 319202
|
wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:05960185aa26dd99cd45c9d680c48812b5e6989fff5031ad6a29886ad9536d0f
|
3 |
+
size 319024
|
wss/fonts/SF-Mono/v1/sf-mono_heavy.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ae7f3beb937111a5082e946478e814e0ab49dacdd52dae0231fe271c9f42c102
|
3 |
+
size 137060
|
wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:017ec3083a7b58e4b51ec72ec5cf86d356c057369abbe9cbbb769287c26f87db
|
3 |
+
size 316956
|
wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:237803226af4efde19393c13506ac52b569a294634ea39f2d62a3756fd9135b1
|
3 |
+
size 141816
|
wss/fonts/SF-Mono/v1/sf-mono_light.eot
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7b40451f77afb5060e420d567883eae0c74f98ecf18a30236b704e2409a9627c
|
3 |
+
size 313726
|
wss/fonts/SF-Mono/v1/sf-mono_light.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5455967910b0624b1a532190798f197503c9fe2d813fb92b6c45bcf7387eca6c
|
3 |
+
size 313548
|
wss/fonts/SF-Mono/v1/sf-mono_light.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a031addedc1e913a2612b679965824d292fdfa0cefdcb31234e5686300da97a8
|
3 |
+
size 144336
|
wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bc84e11a16806c38efb42cbc94d358fa25d4407900e136ca95defef9f7f8c1df
|
3 |
+
size 321908
|
wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7c588826309c35ad47ee1bad223d351a05a23cede8c6002be8f7cd03d4a094d0
|
3 |
+
size 138264
|
wss/fonts/SF-Mono/v1/sf-mono_medium.eot
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bf3c8c1dae72fa7c74a04ca1c3539dedf608aa9d62cbaaeca955a9b3cd54ad24
|
3 |
+
size 318518
|
wss/fonts/SF-Mono/v1/sf-mono_medium.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:050a6fc653773dee03052541faeaada29f5f11fbfd4458ec89c94dc6be2f33fe
|
3 |
+
size 318336
|
wss/fonts/SF-Mono/v1/sf-mono_medium.woff
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6177e0a9f3bd502229339c3d3153e9a36b4e1fb3aa72c8e679ece58dc86b5193
|
3 |
+
size 146164
|
wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:16a93ed125bdbc90a769dcbb8d14c46a5300bd7f4c9b0f38df0f0f18c5689fcc
|
3 |
+
size 325120
|