├── .gitignore
├── DreamScene2.sln
├── LICENSE
├── PRIVACY.md
├── README.md
├── images
├── Hiyori.gif
└── settings.png
├── res
└── Hiyori
│ ├── Index.html
│ ├── css
│ └── styles-pc.css
│ ├── img
│ ├── dl-img_05.jpg
│ ├── dl
│ │ ├── sample-hiyori_01.png
│ │ ├── sample-hiyori_02.gif
│ │ └── sample-hiyori_movie.png
│ ├── hiyori_m01_109.png
│ ├── index-about-bg.jpg
│ └── index-function-chara_02.png
│ ├── js
│ └── lib
│ │ ├── live2dcubismcore.min.js
│ │ └── main.js
│ └── model
│ └── Hiyori
│ ├── Hiyori.2048
│ ├── texture_00.png
│ └── texture_01.png
│ ├── Hiyori.cdi3.json
│ ├── Hiyori.moc3
│ ├── Hiyori.model3.json
│ ├── Hiyori.physics3.json
│ ├── Hiyori.pose3.json
│ ├── Hiyori.userdata3.json
│ └── motions
│ ├── Hiyori_m01.motion3.json
│ ├── Hiyori_m02.motion3.json
│ ├── Hiyori_m03.motion3.json
│ ├── Hiyori_m04.motion3.json
│ ├── Hiyori_m05.motion3.json
│ ├── Hiyori_m06.motion3.json
│ ├── Hiyori_m07.motion3.json
│ ├── Hiyori_m08.motion3.json
│ ├── Hiyori_m09.motion3.json
│ └── Hiyori_m10.motion3.json
└── src
├── DS2Native
├── DS2Native.cpp
├── DS2Native.h
├── DS2Native.vcxproj
├── DS2Native.vcxproj.filters
├── cpp.hint
├── dllmain.cpp
└── framework.h
├── DreamScene2 (Package)
├── DreamScene2 (Package).wapproj
├── Images
│ ├── SmallTile.scale-100.png
│ ├── SmallTile.scale-200.png
│ ├── Square150x150Logo.scale-100.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-16.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-256.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-48.png
│ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ ├── Square44x44Logo.scale-100.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.scale-400.png
│ ├── Square44x44Logo.targetsize-16.png
│ ├── Square44x44Logo.targetsize-256.png
│ ├── Square44x44Logo.targetsize-48.png
│ ├── StoreLogo.scale-100.png
│ ├── StoreLogo.scale-200.png
│ └── StoreLogo.scale-400.png
└── Package.appxmanifest
└── DreamScene2
├── AboutDialog.Designer.cs
├── AboutDialog.cs
├── AboutDialog.resx
├── App.config
├── Constants.cs
├── DreamScene2.csproj
├── Helper.cs
├── IPlayer.cs
├── InputDialog.Designer.cs
├── InputDialog.cs
├── InputDialog.resx
├── MainForm.Designer.cs
├── MainForm.cs
├── MainForm.resx
├── NativeMethods.cs
├── Program.cs
├── Properties
├── Resources.Designer.cs
└── Resources.resx
├── RecentFile.cs
├── RectangleExtensions.cs
├── Resources
├── AppIcon.ico
└── AppLogo.png
├── Settings.cs
├── VideoWindow.xaml
├── VideoWindow.xaml.cs
├── WebWindow.xaml
├── WebWindow.xaml.cs
├── WebWindowOptions.cs
├── WindowPlayer.cs
├── app.manifest
└── script.js
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Aa][Rr][Mm]/
27 | [Aa][Rr][Mm]64/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Ll]og/
32 | [Ll]ogs/
33 |
34 | # Visual Studio 2015/2017 cache/options directory
35 | .vs/
36 | # Uncomment if you have tasks that create the project's static files in wwwroot
37 | #wwwroot/
38 |
39 | # Visual Studio 2017 auto generated files
40 | Generated\ Files/
41 |
42 | # MSTest test Results
43 | [Tt]est[Rr]esult*/
44 | [Bb]uild[Ll]og.*
45 |
46 | # NUnit
47 | *.VisualState.xml
48 | TestResult.xml
49 | nunit-*.xml
50 |
51 | # Build Results of an ATL Project
52 | [Dd]ebugPS/
53 | [Rr]eleasePS/
54 | dlldata.c
55 |
56 | # Benchmark Results
57 | BenchmarkDotNet.Artifacts/
58 |
59 | # .NET Core
60 | project.lock.json
61 | project.fragment.lock.json
62 | artifacts/
63 |
64 | # StyleCop
65 | StyleCopReport.xml
66 |
67 | # Files built by Visual Studio
68 | *_i.c
69 | *_p.c
70 | *_h.h
71 | *.ilk
72 | *.meta
73 | *.obj
74 | *.iobj
75 | *.pch
76 | *.pdb
77 | *.ipdb
78 | *.pgc
79 | *.pgd
80 | *.rsp
81 | *.sbr
82 | *.tlb
83 | *.tli
84 | *.tlh
85 | *.tmp
86 | *.tmp_proj
87 | *_wpftmp.csproj
88 | *.log
89 | *.vspscc
90 | *.vssscc
91 | .builds
92 | *.pidb
93 | *.svclog
94 | *.scc
95 |
96 | # Chutzpah Test files
97 | _Chutzpah*
98 |
99 | # Visual C++ cache files
100 | ipch/
101 | *.aps
102 | *.ncb
103 | *.opendb
104 | *.opensdf
105 | *.sdf
106 | *.cachefile
107 | *.VC.db
108 | *.VC.VC.opendb
109 |
110 | # Visual Studio profiler
111 | *.psess
112 | *.vsp
113 | *.vspx
114 | *.sap
115 |
116 | # Visual Studio Trace Files
117 | *.e2e
118 |
119 | # TFS 2012 Local Workspace
120 | $tf/
121 |
122 | # Guidance Automation Toolkit
123 | *.gpState
124 |
125 | # ReSharper is a .NET coding add-in
126 | _ReSharper*/
127 | *.[Rr]e[Ss]harper
128 | *.DotSettings.user
129 |
130 | # TeamCity is a build add-in
131 | _TeamCity*
132 |
133 | # DotCover is a Code Coverage Tool
134 | *.dotCover
135 |
136 | # AxoCover is a Code Coverage Tool
137 | .axoCover/*
138 | !.axoCover/settings.json
139 |
140 | # Visual Studio code coverage results
141 | *.coverage
142 | *.coveragexml
143 |
144 | # NCrunch
145 | _NCrunch_*
146 | .*crunch*.local.xml
147 | nCrunchTemp_*
148 |
149 | # MightyMoose
150 | *.mm.*
151 | AutoTest.Net/
152 |
153 | # Web workbench (sass)
154 | .sass-cache/
155 |
156 | # Installshield output folder
157 | [Ee]xpress/
158 |
159 | # DocProject is a documentation generator add-in
160 | DocProject/buildhelp/
161 | DocProject/Help/*.HxT
162 | DocProject/Help/*.HxC
163 | DocProject/Help/*.hhc
164 | DocProject/Help/*.hhk
165 | DocProject/Help/*.hhp
166 | DocProject/Help/Html2
167 | DocProject/Help/html
168 |
169 | # Click-Once directory
170 | publish/
171 |
172 | # Publish Web Output
173 | *.[Pp]ublish.xml
174 | *.azurePubxml
175 | # Note: Comment the next line if you want to checkin your web deploy settings,
176 | # but database connection strings (with potential passwords) will be unencrypted
177 | *.pubxml
178 | *.publishproj
179 |
180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
181 | # checkin your Azure Web App publish settings, but sensitive information contained
182 | # in these scripts will be unencrypted
183 | PublishScripts/
184 |
185 | # NuGet Packages
186 | *.nupkg
187 | # NuGet Symbol Packages
188 | *.snupkg
189 | # The packages folder can be ignored because of Package Restore
190 | **/[Pp]ackages/*
191 | # except build/, which is used as an MSBuild target.
192 | !**/[Pp]ackages/build/
193 | # Uncomment if necessary however generally it will be regenerated when needed
194 | #!**/[Pp]ackages/repositories.config
195 | # NuGet v3's project.json files produces more ignorable files
196 | *.nuget.props
197 | *.nuget.targets
198 |
199 | # Microsoft Azure Build Output
200 | csx/
201 | *.build.csdef
202 |
203 | # Microsoft Azure Emulator
204 | ecf/
205 | rcf/
206 |
207 | # Windows Store app package directories and files
208 | AppPackages/
209 | BundleArtifacts/
210 | Package.StoreAssociation.xml
211 | _pkginfo.txt
212 | *.appx
213 | *.appxbundle
214 | *.appxupload
215 |
216 | # Visual Studio cache files
217 | # files ending in .cache can be ignored
218 | *.[Cc]ache
219 | # but keep track of directories ending in .cache
220 | !?*.[Cc]ache/
221 |
222 | # Others
223 | ClientBin/
224 | ~$*
225 | *~
226 | *.dbmdl
227 | *.dbproj.schemaview
228 | *.jfm
229 | *.pfx
230 | *.publishsettings
231 | orleans.codegen.cs
232 |
233 | # Including strong name files can present a security risk
234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
235 | #*.snk
236 |
237 | # Since there are multiple workflows, uncomment next line to ignore bower_components
238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
239 | #bower_components/
240 |
241 | # RIA/Silverlight projects
242 | Generated_Code/
243 |
244 | # Backup & report files from converting an old project file
245 | # to a newer Visual Studio version. Backup files are not needed,
246 | # because we have git ;-)
247 | _UpgradeReport_Files/
248 | Backup*/
249 | UpgradeLog*.XML
250 | UpgradeLog*.htm
251 | ServiceFabricBackup/
252 | *.rptproj.bak
253 |
254 | # SQL Server files
255 | *.mdf
256 | *.ldf
257 | *.ndf
258 |
259 | # Business Intelligence projects
260 | *.rdl.data
261 | *.bim.layout
262 | *.bim_*.settings
263 | *.rptproj.rsuser
264 | *- [Bb]ackup.rdl
265 | *- [Bb]ackup ([0-9]).rdl
266 | *- [Bb]ackup ([0-9][0-9]).rdl
267 |
268 | # Microsoft Fakes
269 | FakesAssemblies/
270 |
271 | # GhostDoc plugin setting file
272 | *.GhostDoc.xml
273 |
274 | # Node.js Tools for Visual Studio
275 | .ntvs_analysis.dat
276 | node_modules/
277 |
278 | # Visual Studio 6 build log
279 | *.plg
280 |
281 | # Visual Studio 6 workspace options file
282 | *.opt
283 |
284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
285 | *.vbw
286 |
287 | # Visual Studio LightSwitch build output
288 | **/*.HTMLClient/GeneratedArtifacts
289 | **/*.DesktopClient/GeneratedArtifacts
290 | **/*.DesktopClient/ModelManifest.xml
291 | **/*.Server/GeneratedArtifacts
292 | **/*.Server/ModelManifest.xml
293 | _Pvt_Extensions
294 |
295 | # Paket dependency manager
296 | .paket/paket.exe
297 | paket-files/
298 |
299 | # FAKE - F# Make
300 | .fake/
301 |
302 | # CodeRush personal settings
303 | .cr/personal
304 |
305 | # Python Tools for Visual Studio (PTVS)
306 | __pycache__/
307 | *.pyc
308 |
309 | # Cake - Uncomment if you are using it
310 | # tools/**
311 | # !tools/packages.config
312 |
313 | # Tabs Studio
314 | *.tss
315 |
316 | # Telerik's JustMock configuration file
317 | *.jmconfig
318 |
319 | # BizTalk build output
320 | *.btp.cs
321 | *.btm.cs
322 | *.odx.cs
323 | *.xsd.cs
324 |
325 | # OpenCover UI analysis results
326 | OpenCover/
327 |
328 | # Azure Stream Analytics local run output
329 | ASALocalRun/
330 |
331 | # MSBuild Binary and Structured Log
332 | *.binlog
333 |
334 | # NVidia Nsight GPU debugger configuration file
335 | *.nvuser
336 |
337 | # MFractors (Xamarin productivity tool) working folder
338 | .mfractor/
339 |
340 | # Local History for Visual Studio
341 | .localhistory/
342 |
343 | # BeatPulse healthcheck temp database
344 | healthchecksdb
345 |
346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
347 | MigrationBackup/
348 |
349 | # Ionide (cross platform F# VS Code tools) working folder
350 | .ionide/
351 |
--------------------------------------------------------------------------------
/DreamScene2.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.3.32929.385
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DreamScene2", "src\DreamScene2\DreamScene2.csproj", "{59D51177-F47B-4B90-8366-0B96658114BC}"
7 | ProjectSection(ProjectDependencies) = postProject
8 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163} = {3EB67CD9-3814-4A20-89D5-C1BD393DB163}
9 | EndProjectSection
10 | EndProject
11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DS2Native", "src\DS2Native\DS2Native.vcxproj", "{3EB67CD9-3814-4A20-89D5-C1BD393DB163}"
12 | EndProject
13 | Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "DreamScene2 (Package)", "src\DreamScene2 (Package)\DreamScene2 (Package).wapproj", "{5DC72AB8-EF9D-4130-A690-04897977BFCC}"
14 | EndProject
15 | Global
16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
17 | Debug|x64 = Debug|x64
18 | Debug|x86 = Debug|x86
19 | Release|x64 = Release|x64
20 | Release|x86 = Release|x86
21 | EndGlobalSection
22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
23 | {59D51177-F47B-4B90-8366-0B96658114BC}.Debug|x64.ActiveCfg = Debug|x64
24 | {59D51177-F47B-4B90-8366-0B96658114BC}.Debug|x64.Build.0 = Debug|x64
25 | {59D51177-F47B-4B90-8366-0B96658114BC}.Debug|x86.ActiveCfg = Debug|x86
26 | {59D51177-F47B-4B90-8366-0B96658114BC}.Debug|x86.Build.0 = Debug|x86
27 | {59D51177-F47B-4B90-8366-0B96658114BC}.Release|x64.ActiveCfg = Release|x64
28 | {59D51177-F47B-4B90-8366-0B96658114BC}.Release|x64.Build.0 = Release|x64
29 | {59D51177-F47B-4B90-8366-0B96658114BC}.Release|x86.ActiveCfg = Release|x86
30 | {59D51177-F47B-4B90-8366-0B96658114BC}.Release|x86.Build.0 = Release|x86
31 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Debug|x64.ActiveCfg = Debug|x64
32 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Debug|x64.Build.0 = Debug|x64
33 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Debug|x86.ActiveCfg = Debug|Win32
34 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Debug|x86.Build.0 = Debug|Win32
35 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Release|x64.ActiveCfg = Release|x64
36 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Release|x64.Build.0 = Release|x64
37 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Release|x86.ActiveCfg = Release|Win32
38 | {3EB67CD9-3814-4A20-89D5-C1BD393DB163}.Release|x86.Build.0 = Release|Win32
39 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x64.ActiveCfg = Debug|x64
40 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x64.Build.0 = Debug|x64
41 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x64.Deploy.0 = Debug|x64
42 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x86.ActiveCfg = Debug|x86
43 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x86.Build.0 = Debug|x86
44 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Debug|x86.Deploy.0 = Debug|x86
45 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x64.ActiveCfg = Release|x64
46 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x64.Build.0 = Release|x64
47 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x64.Deploy.0 = Release|x64
48 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x86.ActiveCfg = Release|x86
49 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x86.Build.0 = Release|x86
50 | {5DC72AB8-EF9D-4130-A690-04897977BFCC}.Release|x86.Deploy.0 = Release|x86
51 | EndGlobalSection
52 | GlobalSection(SolutionProperties) = preSolution
53 | HideSolutionNode = FALSE
54 | EndGlobalSection
55 | GlobalSection(ExtensibilityGlobals) = postSolution
56 | SolutionGuid = {6DA57329-6DC9-46FF-8869-6486D35D1A45}
57 | EndGlobalSection
58 | EndGlobal
59 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 he55
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 |
--------------------------------------------------------------------------------
/PRIVACY.md:
--------------------------------------------------------------------------------
1 | # Privacy Policy
2 |
3 | **Content of the privacy policy**
4 |
5 | This application doesn’t:
6 |
7 | - Collect or use any personal information;
8 | - Store any personal data;
9 | - Share it to third parties.
10 |
11 | **Changes to This Privacy Policy**
12 |
13 | I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page.
14 |
15 | Last updated 2021-12-23
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DreamScene2
2 | [](https://github.com/he55/DreamScene2/releases/latest)
3 | [](https://github.com/he55/DreamScene2/blob/main/LICENSE)
4 |
5 | 一个小而快并且功能强大的 Windows 动态桌面软件。支持视频和网页动画播放,支持 Windows10/11 系统。
6 |
7 | 
8 |
9 |
10 | ## 📦 Download
11 | https://github.com/he55/DreamScene2/releases/latest
12 |
13 |
14 |
15 |
16 |
17 |
18 | ## 📫 Features
19 | - 支持视频播放
20 | - 支持 URL 和网页文件
21 | - 支持启动后自动播放
22 | - 支持设置显示器
23 | - 支持自动暂停播放
24 | - 支持命令行播放
25 |
26 | 
27 |
28 |
29 | ## 🌍 Roadmap
30 | - [ ] GIF 和 APNG 播放
31 | - [x] [Live2D](https://www.live2d.com/) 播放
32 | - [x] 鼠标和桌面交互
33 | - [ ] 屏幕保护程序
34 | - [ ] 更多视频格式
35 | - [ ] 重新设计 UI
36 | - [ ] 本地化
37 | - [x] 发布到 Microsoft Store
38 |
39 |
40 | ## 💗 Thanks
41 | - [Draw Behind Desktop Icons in Windows 8+](https://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows-plus)
42 | - [Windows Desktop ListView Handle](https://blog.syedgakbar.com/2013/01/19/windows-desktop-listview-handle/)
43 | - [Vanara](https://github.com/dahall/Vanara)
44 |
--------------------------------------------------------------------------------
/images/Hiyori.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/images/Hiyori.gif
--------------------------------------------------------------------------------
/images/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/images/settings.png
--------------------------------------------------------------------------------
/res/Hiyori/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Hiyori
9 |
10 |
11 |
12 |
13 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/res/Hiyori/css/styles-pc.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 |
4 |
5 |
6 | /* CSS STYLE */
7 |
8 | body {
9 | padding: 0;
10 | margin: 0;
11 | overflow: hidden;
12 | }
13 |
14 | /* SITEPARTS */
15 |
16 | #wrap {
17 | position: relative;
18 | width: 100%;
19 | overflow-x: hidden;
20 | z-index: 2;
21 | }
22 |
23 | .outside {
24 | position: relative;
25 | width: 100%;
26 | max-width: 1320px;
27 | margin-left: auto;
28 | margin-right: auto;
29 | padding-left: 20px;
30 | padding-right: 20px;
31 | }
32 |
33 | .index-about {
34 | position: relative;
35 | background: #ff832c url(../img/index-about-bg.jpg) center center no-repeat;
36 | background-attachment: fixed;
37 | background-size: cover;
38 | width: 100%;
39 | height: 1700px;
40 | }
41 | @media screen and (max-width: 1280px) {
42 | .index-about {
43 | background-attachment: scroll;
44 | }
45 | }
46 | .index-about .back-point {
47 | position: absolute;
48 | top: 0;
49 | left: 0;
50 | width: 100%;
51 | height: 100%;
52 | overflow: hidden;
53 | z-index: 2;
54 | }
55 | .index-about .back-point:before {
56 | content: "";
57 | animation: stripe3 2s infinite linear;
58 | display: block;
59 | position: absolute;
60 | top: -300px;
61 | background-image: linear-gradient(
62 | 45deg,
63 | #fff 25%,
64 | transparent 25%,
65 | transparent 50%,
66 | #fff 50%,
67 | #fff 75%,
68 | transparent 75%,
69 | transparent
70 | );
71 | background-size: 30px 30px;
72 | width: 120%;
73 | height: 400px;
74 | margin: 0 -10%;
75 | -webkit-transform: rotate(-7deg) translate3d(0, 0, 0);
76 | -ms-transform: rotate(-7deg) translate3d(0, 0, 0);
77 | transform: rotate(-7deg) translate3d(0, 0, 0);
78 | -webkit-backface-visibility: hidden;
79 | opacity: 0.3;
80 | z-index: 1;
81 | }
82 | @keyframes stripe3 {
83 | 0% { background-position-x: 0; }
84 | 100% { background-position-x: 30px; }
85 | }
86 |
87 | .index-about section {
88 | position: relative;
89 | z-index: 3;
90 | }
91 |
92 | .index-about .about-chara {
93 | position: absolute;
94 | top: -80px;
95 | right: 0;
96 | }
97 | .index-about .about-chara .cubism-widget {
98 | width: 550px;
99 | height: 1700px;
100 | }
101 | .index-about .about-chara .cubism-widget > canvas {
102 | width: 100%;
103 | height: 100%;
104 | }
105 |
--------------------------------------------------------------------------------
/res/Hiyori/img/dl-img_05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/dl-img_05.jpg
--------------------------------------------------------------------------------
/res/Hiyori/img/dl/sample-hiyori_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/dl/sample-hiyori_01.png
--------------------------------------------------------------------------------
/res/Hiyori/img/dl/sample-hiyori_02.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/dl/sample-hiyori_02.gif
--------------------------------------------------------------------------------
/res/Hiyori/img/dl/sample-hiyori_movie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/dl/sample-hiyori_movie.png
--------------------------------------------------------------------------------
/res/Hiyori/img/hiyori_m01_109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/hiyori_m01_109.png
--------------------------------------------------------------------------------
/res/Hiyori/img/index-about-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/index-about-bg.jpg
--------------------------------------------------------------------------------
/res/Hiyori/img/index-function-chara_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/img/index-function-chara_02.png
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.2048/texture_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/model/Hiyori/Hiyori.2048/texture_00.png
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.2048/texture_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/model/Hiyori/Hiyori.2048/texture_01.png
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.cdi3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Parameters": [
4 | {
5 | "Id": "ParamAngleX",
6 | "GroupId": "ParamGroupFace",
7 | "Name": "角度 X"
8 | },
9 | {
10 | "Id": "ParamAngleY",
11 | "GroupId": "ParamGroupFace",
12 | "Name": "角度 Y"
13 | },
14 | {
15 | "Id": "ParamAngleZ",
16 | "GroupId": "ParamGroupFace",
17 | "Name": "角度 Z"
18 | },
19 | {
20 | "Id": "ParamCheek",
21 | "GroupId": "ParamGroupFace",
22 | "Name": "照れ"
23 | },
24 | {
25 | "Id": "ParamEyeLOpen",
26 | "GroupId": "ParamGroupEyes",
27 | "Name": "左目 開閉"
28 | },
29 | {
30 | "Id": "ParamEyeLSmile",
31 | "GroupId": "ParamGroupEyes",
32 | "Name": "左目 笑顔"
33 | },
34 | {
35 | "Id": "ParamEyeROpen",
36 | "GroupId": "ParamGroupEyes",
37 | "Name": "右目 開閉"
38 | },
39 | {
40 | "Id": "ParamEyeRSmile",
41 | "GroupId": "ParamGroupEyes",
42 | "Name": "右目 笑顔"
43 | },
44 | {
45 | "Id": "ParamEyeBallX",
46 | "GroupId": "ParamGroupEyeballs",
47 | "Name": "目玉 X"
48 | },
49 | {
50 | "Id": "ParamEyeBallY",
51 | "GroupId": "ParamGroupEyeballs",
52 | "Name": "目玉 Y"
53 | },
54 | {
55 | "Id": "ParamBrowLY",
56 | "GroupId": "ParamGroupBrows",
57 | "Name": "左眉 上下"
58 | },
59 | {
60 | "Id": "ParamBrowRY",
61 | "GroupId": "ParamGroupBrows",
62 | "Name": "右眉 上下"
63 | },
64 | {
65 | "Id": "ParamBrowLX",
66 | "GroupId": "ParamGroupBrows",
67 | "Name": "左眉 左右"
68 | },
69 | {
70 | "Id": "ParamBrowRX",
71 | "GroupId": "ParamGroupBrows",
72 | "Name": "右眉 左右"
73 | },
74 | {
75 | "Id": "ParamBrowLAngle",
76 | "GroupId": "ParamGroupBrows",
77 | "Name": "左眉 角度"
78 | },
79 | {
80 | "Id": "ParamBrowRAngle",
81 | "GroupId": "ParamGroupBrows",
82 | "Name": "右眉 角度"
83 | },
84 | {
85 | "Id": "ParamBrowLForm",
86 | "GroupId": "ParamGroupBrows",
87 | "Name": "左眉 変形"
88 | },
89 | {
90 | "Id": "ParamBrowRForm",
91 | "GroupId": "ParamGroupBrows",
92 | "Name": "右眉 変形"
93 | },
94 | {
95 | "Id": "ParamMouthForm",
96 | "GroupId": "ParamGroupMouth",
97 | "Name": "口 変形"
98 | },
99 | {
100 | "Id": "ParamMouthOpenY",
101 | "GroupId": "ParamGroupMouth",
102 | "Name": "口 開閉"
103 | },
104 | {
105 | "Id": "ParamBodyAngleX",
106 | "GroupId": "ParamGroupBody",
107 | "Name": "体の回転 X"
108 | },
109 | {
110 | "Id": "ParamBodyAngleY",
111 | "GroupId": "ParamGroupBody",
112 | "Name": "体の回転 Y"
113 | },
114 | {
115 | "Id": "ParamBodyAngleZ",
116 | "GroupId": "ParamGroupBody",
117 | "Name": "体の回転 Z"
118 | },
119 | {
120 | "Id": "ParamBreath",
121 | "GroupId": "ParamGroupBody",
122 | "Name": "呼吸"
123 | },
124 | {
125 | "Id": "ParamShoulder",
126 | "GroupId": "ParamGroupBody",
127 | "Name": "肩 すくみ"
128 | },
129 | {
130 | "Id": "ParamLeg",
131 | "GroupId": "ParamGroupBody",
132 | "Name": "あし"
133 | },
134 | {
135 | "Id": "ParamArmLA",
136 | "GroupId": "ParamGroupArms",
137 | "Name": "左腕 A"
138 | },
139 | {
140 | "Id": "ParamArmRA",
141 | "GroupId": "ParamGroupArms",
142 | "Name": "右腕 A"
143 | },
144 | {
145 | "Id": "ParamArmLB",
146 | "GroupId": "ParamGroupArms",
147 | "Name": "左腕 B"
148 | },
149 | {
150 | "Id": "ParamArmRB",
151 | "GroupId": "ParamGroupArms",
152 | "Name": "右腕 B"
153 | },
154 | {
155 | "Id": "ParamHandLB",
156 | "GroupId": "ParamGroupArms",
157 | "Name": "左手B 回転"
158 | },
159 | {
160 | "Id": "ParamHandRB",
161 | "GroupId": "ParamGroupArms",
162 | "Name": "右手B 回転"
163 | },
164 | {
165 | "Id": "ParamHandL",
166 | "GroupId": "ParamGroupArms",
167 | "Name": "左手"
168 | },
169 | {
170 | "Id": "ParamHandR",
171 | "GroupId": "ParamGroupArms",
172 | "Name": "右手"
173 | },
174 | {
175 | "Id": "ParamBustY",
176 | "GroupId": "ParamGroupSway",
177 | "Name": "胸 揺れ"
178 | },
179 | {
180 | "Id": "ParamHairAhoge",
181 | "GroupId": "ParamGroupSway",
182 | "Name": "髪揺れ アホ毛"
183 | },
184 | {
185 | "Id": "ParamHairFront",
186 | "GroupId": "ParamGroupSway",
187 | "Name": "髪揺れ 前"
188 | },
189 | {
190 | "Id": "ParamHairBack",
191 | "GroupId": "ParamGroupSway",
192 | "Name": "髪揺れ 後"
193 | },
194 | {
195 | "Id": "ParamSideupRibbon",
196 | "GroupId": "ParamGroupSway",
197 | "Name": "髪飾りの揺れ"
198 | },
199 | {
200 | "Id": "ParamRibbon",
201 | "GroupId": "ParamGroupSway",
202 | "Name": "胸リボンの揺れ"
203 | },
204 | {
205 | "Id": "ParamSkirt",
206 | "GroupId": "ParamGroupSway",
207 | "Name": "スカートの揺れ"
208 | },
209 | {
210 | "Id": "ParamSkirt2",
211 | "GroupId": "ParamGroupSway",
212 | "Name": "スカートめくれ"
213 | },
214 | {
215 | "Id": "Param_Angle_Rotation_1_ArtMesh62",
216 | "GroupId": "ParamGroup2",
217 | "Name": "[0]サイドアップ左"
218 | },
219 | {
220 | "Id": "Param_Angle_Rotation_2_ArtMesh62",
221 | "GroupId": "ParamGroup2",
222 | "Name": "[1]サイドアップ左"
223 | },
224 | {
225 | "Id": "Param_Angle_Rotation_3_ArtMesh62",
226 | "GroupId": "ParamGroup2",
227 | "Name": "[2]サイドアップ左"
228 | },
229 | {
230 | "Id": "Param_Angle_Rotation_4_ArtMesh62",
231 | "GroupId": "ParamGroup2",
232 | "Name": "[3]サイドアップ左"
233 | },
234 | {
235 | "Id": "Param_Angle_Rotation_5_ArtMesh62",
236 | "GroupId": "ParamGroup2",
237 | "Name": "[4]サイドアップ左"
238 | },
239 | {
240 | "Id": "Param_Angle_Rotation_6_ArtMesh62",
241 | "GroupId": "ParamGroup2",
242 | "Name": "[5]サイドアップ左"
243 | },
244 | {
245 | "Id": "Param_Angle_Rotation_7_ArtMesh62",
246 | "GroupId": "ParamGroup2",
247 | "Name": "[6]サイドアップ左"
248 | },
249 | {
250 | "Id": "Param_Angle_Rotation_1_ArtMesh61",
251 | "GroupId": "ParamGroup",
252 | "Name": "[0]サイドアップ右"
253 | },
254 | {
255 | "Id": "Param_Angle_Rotation_2_ArtMesh61",
256 | "GroupId": "ParamGroup",
257 | "Name": "[1]サイドアップ右"
258 | },
259 | {
260 | "Id": "Param_Angle_Rotation_3_ArtMesh61",
261 | "GroupId": "ParamGroup",
262 | "Name": "[2]サイドアップ右"
263 | },
264 | {
265 | "Id": "Param_Angle_Rotation_4_ArtMesh61",
266 | "GroupId": "ParamGroup",
267 | "Name": "[3]サイドアップ右"
268 | },
269 | {
270 | "Id": "Param_Angle_Rotation_5_ArtMesh61",
271 | "GroupId": "ParamGroup",
272 | "Name": "[4]サイドアップ右"
273 | },
274 | {
275 | "Id": "Param_Angle_Rotation_6_ArtMesh61",
276 | "GroupId": "ParamGroup",
277 | "Name": "[5]サイドアップ右"
278 | },
279 | {
280 | "Id": "Param_Angle_Rotation_7_ArtMesh61",
281 | "GroupId": "ParamGroup",
282 | "Name": "[6]サイドアップ右"
283 | },
284 | {
285 | "Id": "Param_Angle_Rotation_1_ArtMesh55",
286 | "GroupId": "ParamGroup4",
287 | "Name": "[0]前髪左"
288 | },
289 | {
290 | "Id": "Param_Angle_Rotation_2_ArtMesh55",
291 | "GroupId": "ParamGroup4",
292 | "Name": "[1]前髪左"
293 | },
294 | {
295 | "Id": "Param_Angle_Rotation_3_ArtMesh55",
296 | "GroupId": "ParamGroup4",
297 | "Name": "[2]前髪左"
298 | },
299 | {
300 | "Id": "Param_Angle_Rotation_4_ArtMesh55",
301 | "GroupId": "ParamGroup4",
302 | "Name": "[3]前髪左"
303 | },
304 | {
305 | "Id": "Param_Angle_Rotation_5_ArtMesh55",
306 | "GroupId": "ParamGroup4",
307 | "Name": "[4]前髪左"
308 | },
309 | {
310 | "Id": "Param_Angle_Rotation_6_ArtMesh55",
311 | "GroupId": "ParamGroup4",
312 | "Name": "[5]前髪左"
313 | },
314 | {
315 | "Id": "Param_Angle_Rotation_7_ArtMesh55",
316 | "GroupId": "ParamGroup4",
317 | "Name": "[6]前髪左"
318 | },
319 | {
320 | "Id": "Param_Angle_Rotation_1_ArtMesh54",
321 | "GroupId": "ParamGroup3",
322 | "Name": "[0]前髪右"
323 | },
324 | {
325 | "Id": "Param_Angle_Rotation_2_ArtMesh54",
326 | "GroupId": "ParamGroup3",
327 | "Name": "[1]前髪右"
328 | },
329 | {
330 | "Id": "Param_Angle_Rotation_3_ArtMesh54",
331 | "GroupId": "ParamGroup3",
332 | "Name": "[2]前髪右"
333 | },
334 | {
335 | "Id": "Param_Angle_Rotation_4_ArtMesh54",
336 | "GroupId": "ParamGroup3",
337 | "Name": "[3]前髪右"
338 | },
339 | {
340 | "Id": "Param_Angle_Rotation_5_ArtMesh54",
341 | "GroupId": "ParamGroup3",
342 | "Name": "[4]前髪右"
343 | },
344 | {
345 | "Id": "Param_Angle_Rotation_6_ArtMesh54",
346 | "GroupId": "ParamGroup3",
347 | "Name": "[5]前髪右"
348 | },
349 | {
350 | "Id": "Param_Angle_Rotation_7_ArtMesh54",
351 | "GroupId": "ParamGroup3",
352 | "Name": "[6]前髪右"
353 | }
354 | ],
355 | "ParameterGroups": [
356 | {
357 | "Id": "ParamGroupFace",
358 | "GroupId": "",
359 | "Name": "顔"
360 | },
361 | {
362 | "Id": "ParamGroupEyes",
363 | "GroupId": "",
364 | "Name": "目"
365 | },
366 | {
367 | "Id": "ParamGroupEyeballs",
368 | "GroupId": "",
369 | "Name": "目玉"
370 | },
371 | {
372 | "Id": "ParamGroupBrows",
373 | "GroupId": "",
374 | "Name": "眉"
375 | },
376 | {
377 | "Id": "ParamGroupMouth",
378 | "GroupId": "",
379 | "Name": "口"
380 | },
381 | {
382 | "Id": "ParamGroupBody",
383 | "GroupId": "",
384 | "Name": "体"
385 | },
386 | {
387 | "Id": "ParamGroupArms",
388 | "GroupId": "",
389 | "Name": "腕"
390 | },
391 | {
392 | "Id": "ParamGroupSway",
393 | "GroupId": "",
394 | "Name": "揺れ"
395 | },
396 | {
397 | "Id": "ParamGroup2",
398 | "GroupId": "",
399 | "Name": "揺れ サイドアップ左"
400 | },
401 | {
402 | "Id": "ParamGroup",
403 | "GroupId": "",
404 | "Name": "揺れ サイドアップ右"
405 | },
406 | {
407 | "Id": "ParamGroup4",
408 | "GroupId": "",
409 | "Name": "揺れ 前髪左"
410 | },
411 | {
412 | "Id": "ParamGroup3",
413 | "GroupId": "",
414 | "Name": "揺れ 前髪右"
415 | }
416 | ],
417 | "Parts": [
418 | {
419 | "Id": "PartCore",
420 | "Name": "コア"
421 | },
422 | {
423 | "Id": "PartCheek",
424 | "Name": "頬"
425 | },
426 | {
427 | "Id": "PartBrow",
428 | "Name": "まゆ毛"
429 | },
430 | {
431 | "Id": "PartEye",
432 | "Name": "目"
433 | },
434 | {
435 | "Id": "PartNose",
436 | "Name": "鼻"
437 | },
438 | {
439 | "Id": "PartMouth",
440 | "Name": "口"
441 | },
442 | {
443 | "Id": "PartFace",
444 | "Name": "顔"
445 | },
446 | {
447 | "Id": "PartEar",
448 | "Name": "耳"
449 | },
450 | {
451 | "Id": "PartHairSide",
452 | "Name": "横髪"
453 | },
454 | {
455 | "Id": "PartHairFront",
456 | "Name": "前髪"
457 | },
458 | {
459 | "Id": "PartHairBack",
460 | "Name": "後ろ髪"
461 | },
462 | {
463 | "Id": "PartNeck",
464 | "Name": "首"
465 | },
466 | {
467 | "Id": "PartArmA",
468 | "Name": "腕 A"
469 | },
470 | {
471 | "Id": "PartArmB",
472 | "Name": "腕 B"
473 | },
474 | {
475 | "Id": "PartBody",
476 | "Name": "体"
477 | },
478 | {
479 | "Id": "PartBackground",
480 | "Name": "背景"
481 | },
482 | {
483 | "Id": "PartSketch",
484 | "Name": "[ 下絵 ]"
485 | },
486 | {
487 | "Id": "PartEyeBall",
488 | "Name": "目玉"
489 | },
490 | {
491 | "Id": "ArtMesh55_Skinning",
492 | "Name": "前髪左(スキニング)"
493 | },
494 | {
495 | "Id": "Part4",
496 | "Name": "前髪左(回転)"
497 | },
498 | {
499 | "Id": "ArtMesh54_Skinning",
500 | "Name": "前髪右(スキニング)"
501 | },
502 | {
503 | "Id": "Part3",
504 | "Name": "前髪右(回転)"
505 | },
506 | {
507 | "Id": "ArtMesh61_Skinning",
508 | "Name": "サイドアップ右(スキニング)"
509 | },
510 | {
511 | "Id": "Part",
512 | "Name": "サイドアップ右(回転)"
513 | },
514 | {
515 | "Id": "ArtMesh62_Skinning",
516 | "Name": "サイドアップ左(スキニング)"
517 | },
518 | {
519 | "Id": "Part2",
520 | "Name": "サイドアップ左(回転)"
521 | }
522 | ]
523 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.moc3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/res/Hiyori/model/Hiyori/Hiyori.moc3
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.model3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "FileReferences": {
4 | "Moc": "Hiyori.moc3",
5 | "Textures": [
6 | "Hiyori.2048/texture_00.png",
7 | "Hiyori.2048/texture_01.png"
8 | ],
9 | "Physics": "Hiyori.physics3.json",
10 | "Pose": "Hiyori.pose3.json",
11 | "UserData": "Hiyori.userdata3.json",
12 | "DisplayInfo": "Hiyori.cdi3.json",
13 | "Motions": {
14 | "Idle": [
15 | {
16 | "File": "motions/Hiyori_m01.motion3.json",
17 | "FadeInTime": 0.5,
18 | "FadeOutTime": 0.5
19 | },
20 | {
21 | "File": "motions/Hiyori_m02.motion3.json",
22 | "FadeInTime": 0.5,
23 | "FadeOutTime": 0.5
24 | },
25 | {
26 | "File": "motions/Hiyori_m03.motion3.json",
27 | "FadeInTime": 0.5,
28 | "FadeOutTime": 0.5
29 | },
30 | {
31 | "File": "motions/Hiyori_m05.motion3.json",
32 | "FadeInTime": 0.5,
33 | "FadeOutTime": 0.5
34 | },
35 | {
36 | "File": "motions/Hiyori_m06.motion3.json",
37 | "FadeInTime": 0.5,
38 | "FadeOutTime": 0.5
39 | },
40 | {
41 | "File": "motions/Hiyori_m07.motion3.json",
42 | "FadeInTime": 0.5,
43 | "FadeOutTime": 0.5
44 | },
45 | {
46 | "File": "motions/Hiyori_m08.motion3.json",
47 | "FadeInTime": 0.5,
48 | "FadeOutTime": 0.5
49 | },
50 | {
51 | "File": "motions/Hiyori_m09.motion3.json",
52 | "FadeInTime": 0.5,
53 | "FadeOutTime": 0.5
54 | },
55 | {
56 | "File": "motions/Hiyori_m10.motion3.json",
57 | "FadeInTime": 0.5,
58 | "FadeOutTime": 0.5
59 | }
60 | ],
61 | "TapBody": [
62 | {
63 | "File": "motions/Hiyori_m04.motion3.json",
64 | "FadeInTime": 0.5,
65 | "FadeOutTime": 0.5
66 | }
67 | ]
68 | }
69 | },
70 | "Groups": [
71 | {
72 | "Target": "Parameter",
73 | "Name": "LipSync",
74 | "Ids": [
75 | "ParamMouthOpenY"
76 | ]
77 | },
78 | {
79 | "Target": "Parameter",
80 | "Name": "EyeBlink",
81 | "Ids": [
82 | "ParamEyeLOpen",
83 | "ParamEyeROpen"
84 | ]
85 | }
86 | ],
87 | "HitAreas": [
88 | {
89 | "Id": "HitArea",
90 | "Name": "Body"
91 | }
92 | ]
93 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.pose3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Type": "Live2D Pose",
3 | "FadeInTime": 0.5,
4 | "Groups": [
5 | [
6 | {
7 | "Id": "PartArmA",
8 | "Link": []
9 | },
10 | {
11 | "Id": "PartArmB",
12 | "Link": []
13 | }
14 | ]
15 | ]
16 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/Hiyori.userdata3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "UserDataCount": 7,
5 | "TotalUserDataSize": 35
6 | },
7 | "UserData": [
8 | {
9 | "Target": "ArtMesh",
10 | "Id": "ArtMesh93",
11 | "Value": "ribon"
12 | },
13 | {
14 | "Target": "ArtMesh",
15 | "Id": "ArtMesh94",
16 | "Value": "ribon"
17 | },
18 | {
19 | "Target": "ArtMesh",
20 | "Id": "ArtMesh95",
21 | "Value": "ribon"
22 | },
23 | {
24 | "Target": "ArtMesh",
25 | "Id": "ArtMesh57",
26 | "Value": "ribon"
27 | },
28 | {
29 | "Target": "ArtMesh",
30 | "Id": "ArtMesh58",
31 | "Value": "ribon"
32 | },
33 | {
34 | "Target": "ArtMesh",
35 | "Id": "ArtMesh59",
36 | "Value": "ribon"
37 | },
38 | {
39 | "Target": "ArtMesh",
40 | "Id": "ArtMesh60",
41 | "Value": "ribon"
42 | }
43 | ]
44 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/motions/Hiyori_m01.motion3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "Duration": 4.7,
5 | "Fps": 30.0,
6 | "Loop": true,
7 | "AreBeziersRestricted": false,
8 | "CurveCount": 31,
9 | "TotalSegmentCount": 135,
10 | "TotalPointCount": 374,
11 | "UserDataCount": 0,
12 | "TotalUserDataSize": 0
13 | },
14 | "Curves": [
15 | {
16 | "Target": "Parameter",
17 | "Id": "ParamAngleX",
18 | "Segments": [
19 | 0,
20 | -8,
21 | 1,
22 | 0.067,
23 | -8,
24 | 0.133,
25 | -8,
26 | 0.2,
27 | -8,
28 | 1,
29 | 0.278,
30 | -8,
31 | 0.356,
32 | -8,
33 | 0.433,
34 | -8,
35 | 1,
36 | 0.556,
37 | -8,
38 | 0.678,
39 | -8,
40 | 0.8,
41 | -8,
42 | 1,
43 | 0.956,
44 | -8,
45 | 1.111,
46 | -8,
47 | 1.267,
48 | -8,
49 | 1,
50 | 1.522,
51 | -8,
52 | 1.778,
53 | 0,
54 | 2.033,
55 | 0,
56 | 1,
57 | 2.122,
58 | 0,
59 | 2.211,
60 | 0,
61 | 2.3,
62 | 0,
63 | 1,
64 | 2.556,
65 | 0,
66 | 2.811,
67 | 9,
68 | 3.067,
69 | 9,
70 | 1,
71 | 3.356,
72 | 9,
73 | 3.644,
74 | 0,
75 | 3.933,
76 | 0,
77 | 1,
78 | 4.067,
79 | 0,
80 | 4.2,
81 | 1,
82 | 4.333,
83 | 1,
84 | 0,
85 | 4.7,
86 | 1
87 | ]
88 | },
89 | {
90 | "Target": "Parameter",
91 | "Id": "ParamAngleY",
92 | "Segments": [
93 | 0,
94 | -5,
95 | 1,
96 | 0.067,
97 | -5,
98 | 0.133,
99 | -5,
100 | 0.2,
101 | -5,
102 | 1,
103 | 0.322,
104 | -5,
105 | 0.444,
106 | 16,
107 | 0.567,
108 | 16,
109 | 1,
110 | 0.711,
111 | 16,
112 | 0.856,
113 | -12,
114 | 1,
115 | -12,
116 | 1,
117 | 1.089,
118 | -12,
119 | 1.178,
120 | 11,
121 | 1.267,
122 | 11,
123 | 1,
124 | 1.356,
125 | 11,
126 | 1.444,
127 | 9.376,
128 | 1.533,
129 | 3,
130 | 1,
131 | 1.611,
132 | -2.579,
133 | 1.689,
134 | -8,
135 | 1.767,
136 | -8,
137 | 1,
138 | 1.856,
139 | -8,
140 | 1.944,
141 | 0,
142 | 2.033,
143 | 0,
144 | 1,
145 | 2.122,
146 | 0,
147 | 2.211,
148 | 0,
149 | 2.3,
150 | 0,
151 | 1,
152 | 2.578,
153 | 0,
154 | 2.856,
155 | -30,
156 | 3.133,
157 | -30,
158 | 1,
159 | 3.278,
160 | -30,
161 | 3.422,
162 | 15,
163 | 3.567,
164 | 15,
165 | 1,
166 | 3.689,
167 | 15,
168 | 3.811,
169 | -9,
170 | 3.933,
171 | -9,
172 | 0,
173 | 4.7,
174 | -9
175 | ]
176 | },
177 | {
178 | "Target": "Parameter",
179 | "Id": "ParamAngleZ",
180 | "Segments": [
181 | 0,
182 | 0,
183 | 1,
184 | 0.067,
185 | 0,
186 | 0.133,
187 | 0,
188 | 0.2,
189 | 0,
190 | 1,
191 | 0.278,
192 | 0,
193 | 0.356,
194 | 0,
195 | 0.433,
196 | 0,
197 | 1,
198 | 0.711,
199 | 0,
200 | 0.989,
201 | 0,
202 | 1.267,
203 | 0,
204 | 1,
205 | 1.522,
206 | 0,
207 | 1.778,
208 | 14,
209 | 2.033,
210 | 14,
211 | 1,
212 | 2.178,
213 | 14,
214 | 2.322,
215 | 14,
216 | 2.467,
217 | 14,
218 | 1,
219 | 2.8,
220 | 14,
221 | 3.133,
222 | 16,
223 | 3.467,
224 | 16,
225 | 1,
226 | 3.633,
227 | 16,
228 | 3.8,
229 | -13,
230 | 3.967,
231 | -13,
232 | 1,
233 | 4.111,
234 | -13,
235 | 4.256,
236 | -11.207,
237 | 4.4,
238 | -11.207,
239 | 0,
240 | 4.7,
241 | -11.207
242 | ]
243 | },
244 | {
245 | "Target": "Parameter",
246 | "Id": "ParamCheek",
247 | "Segments": [
248 | 0,
249 | 0,
250 | 0,
251 | 4.7,
252 | 0
253 | ]
254 | },
255 | {
256 | "Target": "Parameter",
257 | "Id": "ParamEyeLOpen",
258 | "Segments": [
259 | 0,
260 | 1,
261 | 1,
262 | 0.556,
263 | 1,
264 | 1.111,
265 | 1,
266 | 1.667,
267 | 1,
268 | 1,
269 | 1.711,
270 | 1,
271 | 1.756,
272 | 0,
273 | 1.8,
274 | 0,
275 | 1,
276 | 1.822,
277 | 0,
278 | 1.844,
279 | 0,
280 | 1.867,
281 | 0,
282 | 1,
283 | 1.911,
284 | 0,
285 | 1.956,
286 | 1,
287 | 2,
288 | 1,
289 | 1,
290 | 2.489,
291 | 1,
292 | 2.978,
293 | 1,
294 | 3.467,
295 | 1,
296 | 1,
297 | 3.511,
298 | 1,
299 | 3.556,
300 | 0,
301 | 3.6,
302 | 0,
303 | 1,
304 | 3.622,
305 | 0,
306 | 3.644,
307 | 0,
308 | 3.667,
309 | 0,
310 | 1,
311 | 3.733,
312 | 0,
313 | 3.8,
314 | 1,
315 | 3.867,
316 | 1,
317 | 0,
318 | 4.7,
319 | 1
320 | ]
321 | },
322 | {
323 | "Target": "Parameter",
324 | "Id": "ParamEyeLSmile",
325 | "Segments": [
326 | 0,
327 | 0,
328 | 0,
329 | 4.7,
330 | 0
331 | ]
332 | },
333 | {
334 | "Target": "Parameter",
335 | "Id": "ParamEyeROpen",
336 | "Segments": [
337 | 0,
338 | 1,
339 | 1,
340 | 0.556,
341 | 1,
342 | 1.111,
343 | 1,
344 | 1.667,
345 | 1,
346 | 1,
347 | 1.711,
348 | 1,
349 | 1.756,
350 | 0,
351 | 1.8,
352 | 0,
353 | 1,
354 | 1.822,
355 | 0,
356 | 1.844,
357 | 0,
358 | 1.867,
359 | 0,
360 | 1,
361 | 1.911,
362 | 0,
363 | 1.956,
364 | 1,
365 | 2,
366 | 1,
367 | 1,
368 | 2.489,
369 | 1,
370 | 2.978,
371 | 1,
372 | 3.467,
373 | 1,
374 | 1,
375 | 3.511,
376 | 1,
377 | 3.556,
378 | 0,
379 | 3.6,
380 | 0,
381 | 1,
382 | 3.622,
383 | 0,
384 | 3.644,
385 | 0,
386 | 3.667,
387 | 0,
388 | 1,
389 | 3.733,
390 | 0,
391 | 3.8,
392 | 1,
393 | 3.867,
394 | 1,
395 | 0,
396 | 4.7,
397 | 1
398 | ]
399 | },
400 | {
401 | "Target": "Parameter",
402 | "Id": "ParamEyeRSmile",
403 | "Segments": [
404 | 0,
405 | 0,
406 | 0,
407 | 4.7,
408 | 0
409 | ]
410 | },
411 | {
412 | "Target": "Parameter",
413 | "Id": "ParamEyeBallX",
414 | "Segments": [
415 | 0,
416 | 0,
417 | 1,
418 | 0.156,
419 | 0,
420 | 0.311,
421 | -0.02,
422 | 0.467,
423 | -0.02,
424 | 1,
425 | 0.578,
426 | -0.02,
427 | 0.689,
428 | 0,
429 | 0.8,
430 | 0,
431 | 1,
432 | 1.056,
433 | 0,
434 | 1.311,
435 | 0,
436 | 1.567,
437 | 0,
438 | 1,
439 | 1.767,
440 | 0,
441 | 1.967,
442 | -0.131,
443 | 2.167,
444 | -0.15,
445 | 1,
446 | 2.644,
447 | -0.195,
448 | 3.122,
449 | -0.2,
450 | 3.6,
451 | -0.2,
452 | 1,
453 | 3.622,
454 | -0.2,
455 | 3.644,
456 | 0.803,
457 | 3.667,
458 | 0.803,
459 | 0,
460 | 4.7,
461 | 0.803
462 | ]
463 | },
464 | {
465 | "Target": "Parameter",
466 | "Id": "ParamEyeBallY",
467 | "Segments": [
468 | 0,
469 | 0,
470 | 1,
471 | 0.156,
472 | 0,
473 | 0.311,
474 | 0.01,
475 | 0.467,
476 | 0.08,
477 | 1,
478 | 0.578,
479 | 0.13,
480 | 0.689,
481 | 0.21,
482 | 0.8,
483 | 0.21,
484 | 1,
485 | 1.056,
486 | 0.21,
487 | 1.311,
488 | 0.21,
489 | 1.567,
490 | 0.21,
491 | 1,
492 | 1.767,
493 | 0.21,
494 | 1.967,
495 | 0.08,
496 | 2.167,
497 | 0.08,
498 | 1,
499 | 2.644,
500 | 0.08,
501 | 3.122,
502 | 0.086,
503 | 3.6,
504 | 0.1,
505 | 1,
506 | 3.622,
507 | 0.101,
508 | 3.644,
509 | 0.794,
510 | 3.667,
511 | 0.794,
512 | 0,
513 | 4.7,
514 | 0.794
515 | ]
516 | },
517 | {
518 | "Target": "Parameter",
519 | "Id": "ParamBrowLY",
520 | "Segments": [
521 | 0,
522 | 0,
523 | 0,
524 | 4.7,
525 | 0
526 | ]
527 | },
528 | {
529 | "Target": "Parameter",
530 | "Id": "ParamBrowRY",
531 | "Segments": [
532 | 0,
533 | 0,
534 | 0,
535 | 4.7,
536 | 0
537 | ]
538 | },
539 | {
540 | "Target": "Parameter",
541 | "Id": "ParamBrowLX",
542 | "Segments": [
543 | 0,
544 | 0,
545 | 0,
546 | 4.7,
547 | 0
548 | ]
549 | },
550 | {
551 | "Target": "Parameter",
552 | "Id": "ParamBrowRX",
553 | "Segments": [
554 | 0,
555 | 0,
556 | 0,
557 | 4.7,
558 | 0
559 | ]
560 | },
561 | {
562 | "Target": "Parameter",
563 | "Id": "ParamBrowLAngle",
564 | "Segments": [
565 | 0,
566 | 0,
567 | 0,
568 | 4.7,
569 | 0
570 | ]
571 | },
572 | {
573 | "Target": "Parameter",
574 | "Id": "ParamBrowRAngle",
575 | "Segments": [
576 | 0,
577 | 0,
578 | 0,
579 | 4.7,
580 | 0
581 | ]
582 | },
583 | {
584 | "Target": "Parameter",
585 | "Id": "ParamBrowLForm",
586 | "Segments": [
587 | 0,
588 | 0,
589 | 0,
590 | 4.7,
591 | 0
592 | ]
593 | },
594 | {
595 | "Target": "Parameter",
596 | "Id": "ParamBrowRForm",
597 | "Segments": [
598 | 0,
599 | 0,
600 | 0,
601 | 4.7,
602 | 0
603 | ]
604 | },
605 | {
606 | "Target": "Parameter",
607 | "Id": "ParamMouthForm",
608 | "Segments": [
609 | 0,
610 | 1,
611 | 0,
612 | 4.7,
613 | 1
614 | ]
615 | },
616 | {
617 | "Target": "Parameter",
618 | "Id": "ParamMouthOpenY",
619 | "Segments": [
620 | 0,
621 | 0,
622 | 0,
623 | 4.7,
624 | 0
625 | ]
626 | },
627 | {
628 | "Target": "Parameter",
629 | "Id": "ParamBodyAngleX",
630 | "Segments": [
631 | 0,
632 | 1,
633 | 1,
634 | 0.856,
635 | 1,
636 | 1.711,
637 | 1,
638 | 2.567,
639 | 1,
640 | 1,
641 | 2.789,
642 | 1,
643 | 3.011,
644 | 1.145,
645 | 3.233,
646 | 0,
647 | 1,
648 | 3.467,
649 | -1.202,
650 | 3.7,
651 | -6,
652 | 3.933,
653 | -6,
654 | 0,
655 | 4.7,
656 | -6
657 | ]
658 | },
659 | {
660 | "Target": "Parameter",
661 | "Id": "ParamBodyAngleY",
662 | "Segments": [
663 | 0,
664 | 0,
665 | 1,
666 | 0.067,
667 | 0,
668 | 0.133,
669 | 0,
670 | 0.2,
671 | 0,
672 | 1,
673 | 0.278,
674 | 0,
675 | 0.356,
676 | 7,
677 | 0.433,
678 | 7,
679 | 1,
680 | 0.611,
681 | 7,
682 | 0.789,
683 | -4,
684 | 0.967,
685 | -4,
686 | 1,
687 | 1.078,
688 | -4,
689 | 1.189,
690 | 6,
691 | 1.3,
692 | 6,
693 | 1,
694 | 1.433,
695 | 6,
696 | 1.567,
697 | -3,
698 | 1.7,
699 | -3,
700 | 1,
701 | 1.789,
702 | -3,
703 | 1.878,
704 | -1.459,
705 | 1.967,
706 | 0,
707 | 1,
708 | 2.067,
709 | 1.642,
710 | 2.167,
711 | 3.47,
712 | 2.267,
713 | 4,
714 | 1,
715 | 2.367,
716 | 4.53,
717 | 2.467,
718 | 4.312,
719 | 2.567,
720 | 5,
721 | 1,
722 | 2.889,
723 | 7.215,
724 | 3.211,
725 | 10,
726 | 3.533,
727 | 10,
728 | 1,
729 | 3.667,
730 | 10,
731 | 3.8,
732 | 0,
733 | 3.933,
734 | 0,
735 | 1,
736 | 4.067,
737 | 0,
738 | 4.2,
739 | 0,
740 | 4.333,
741 | 0,
742 | 0,
743 | 4.7,
744 | 0
745 | ]
746 | },
747 | {
748 | "Target": "Parameter",
749 | "Id": "ParamBodyAngleZ",
750 | "Segments": [
751 | 0,
752 | 0,
753 | 1,
754 | 0.822,
755 | 0,
756 | 1.644,
757 | 0,
758 | 2.467,
759 | 0,
760 | 1,
761 | 2.722,
762 | 0,
763 | 2.978,
764 | 5,
765 | 3.233,
766 | 5,
767 | 1,
768 | 3.489,
769 | 5,
770 | 3.744,
771 | -5,
772 | 4,
773 | -5,
774 | 1,
775 | 4.156,
776 | -5,
777 | 4.311,
778 | -3.976,
779 | 4.467,
780 | -3.976,
781 | 0,
782 | 4.7,
783 | -3.976
784 | ]
785 | },
786 | {
787 | "Target": "Parameter",
788 | "Id": "ParamBreath",
789 | "Segments": [
790 | 0,
791 | 0,
792 | 0,
793 | 4.7,
794 | 0
795 | ]
796 | },
797 | {
798 | "Target": "Parameter",
799 | "Id": "ParamShoulder",
800 | "Segments": [
801 | 0,
802 | 0,
803 | 1,
804 | 0.111,
805 | 0,
806 | 0.222,
807 | 0.2,
808 | 0.333,
809 | 0.2,
810 | 1,
811 | 0.422,
812 | 0.2,
813 | 0.511,
814 | -0.1,
815 | 0.6,
816 | -0.1,
817 | 1,
818 | 1.578,
819 | -0.1,
820 | 2.556,
821 | -0.1,
822 | 3.533,
823 | -0.1,
824 | 1,
825 | 3.611,
826 | -0.1,
827 | 3.689,
828 | 0.2,
829 | 3.767,
830 | 0.2,
831 | 1,
832 | 3.989,
833 | 0.2,
834 | 4.211,
835 | -0.9,
836 | 4.433,
837 | -0.9,
838 | 0,
839 | 4.7,
840 | -0.9
841 | ]
842 | },
843 | {
844 | "Target": "Parameter",
845 | "Id": "ParamLeg",
846 | "Segments": [
847 | 0,
848 | 1,
849 | 0,
850 | 4.7,
851 | 1
852 | ]
853 | },
854 | {
855 | "Target": "Parameter",
856 | "Id": "ParamArmLA",
857 | "Segments": [
858 | 0,
859 | -10,
860 | 1,
861 | 0.178,
862 | -10,
863 | 0.356,
864 | -7,
865 | 0.533,
866 | -7,
867 | 1,
868 | 0.7,
869 | -7,
870 | 0.867,
871 | -10,
872 | 1.033,
873 | -10,
874 | 1,
875 | 1.2,
876 | -10,
877 | 1.367,
878 | -8,
879 | 1.533,
880 | -8,
881 | 1,
882 | 1.611,
883 | -8,
884 | 1.689,
885 | -8.746,
886 | 1.767,
887 | -9,
888 | 1,
889 | 2.011,
890 | -9.797,
891 | 2.256,
892 | -10,
893 | 2.5,
894 | -10,
895 | 1,
896 | 2.556,
897 | -10,
898 | 2.611,
899 | -10,
900 | 2.667,
901 | -10,
902 | 1,
903 | 2.789,
904 | -10,
905 | 2.911,
906 | -10,
907 | 3.033,
908 | -10,
909 | 0,
910 | 4.7,
911 | -10
912 | ]
913 | },
914 | {
915 | "Target": "Parameter",
916 | "Id": "ParamArmRA",
917 | "Segments": [
918 | 0,
919 | -10,
920 | 1,
921 | 0.178,
922 | -10,
923 | 0.356,
924 | -7,
925 | 0.533,
926 | -7,
927 | 1,
928 | 0.7,
929 | -7,
930 | 0.867,
931 | -10,
932 | 1.033,
933 | -10,
934 | 1,
935 | 1.2,
936 | -10,
937 | 1.367,
938 | -6,
939 | 1.533,
940 | -6,
941 | 1,
942 | 1.611,
943 | -6,
944 | 1.689,
945 | -6.903,
946 | 1.767,
947 | -7.5,
948 | 1,
949 | 2.011,
950 | -9.377,
951 | 2.256,
952 | -10,
953 | 2.5,
954 | -10,
955 | 1,
956 | 2.567,
957 | -10,
958 | 2.633,
959 | -8.958,
960 | 2.7,
961 | -8.958,
962 | 1,
963 | 2.811,
964 | -8.958,
965 | 2.922,
966 | -10,
967 | 3.033,
968 | -10,
969 | 0,
970 | 4.7,
971 | -10
972 | ]
973 | },
974 | {
975 | "Target": "Parameter",
976 | "Id": "ParamHairAhoge",
977 | "Segments": [
978 | 0,
979 | 0,
980 | 1,
981 | 0.144,
982 | 0,
983 | 0.289,
984 | 10,
985 | 0.433,
986 | 10,
987 | 1,
988 | 0.578,
989 | 10,
990 | 0.722,
991 | -10,
992 | 0.867,
993 | -10,
994 | 1,
995 | 0.989,
996 | -10,
997 | 1.111,
998 | 4,
999 | 1.233,
1000 | 4,
1001 | 1,
1002 | 1.322,
1003 | 4,
1004 | 1.411,
1005 | 2.767,
1006 | 1.5,
1007 | 0,
1008 | 1,
1009 | 1.611,
1010 | -3.459,
1011 | 1.722,
1012 | -5.351,
1013 | 1.833,
1014 | -5.351,
1015 | 1,
1016 | 1.922,
1017 | -5.351,
1018 | 2.011,
1019 | 1.661,
1020 | 2.1,
1021 | 1.661,
1022 | 1,
1023 | 2.233,
1024 | 1.661,
1025 | 2.367,
1026 | 0,
1027 | 2.5,
1028 | 0,
1029 | 1,
1030 | 2.867,
1031 | 0,
1032 | 3.233,
1033 | 10,
1034 | 3.6,
1035 | 10,
1036 | 1,
1037 | 3.722,
1038 | 10,
1039 | 3.844,
1040 | -10,
1041 | 3.967,
1042 | -10,
1043 | 1,
1044 | 4.078,
1045 | -10,
1046 | 4.189,
1047 | 6,
1048 | 4.3,
1049 | 6,
1050 | 1,
1051 | 4.356,
1052 | 6,
1053 | 4.411,
1054 | 0,
1055 | 4.467,
1056 | 0,
1057 | 0,
1058 | 4.7,
1059 | 0
1060 | ]
1061 | },
1062 | {
1063 | "Target": "PartOpacity",
1064 | "Id": "PartArmA",
1065 | "Segments": [
1066 | 0,
1067 | 1,
1068 | 0,
1069 | 4.7,
1070 | 1
1071 | ]
1072 | },
1073 | {
1074 | "Target": "PartOpacity",
1075 | "Id": "PartArmB",
1076 | "Segments": [
1077 | 0,
1078 | 0,
1079 | 0,
1080 | 4.7,
1081 | 0
1082 | ]
1083 | }
1084 | ]
1085 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/motions/Hiyori_m04.motion3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "Duration": 4.43,
5 | "Fps": 30.0,
6 | "Loop": true,
7 | "AreBeziersRestricted": false,
8 | "CurveCount": 31,
9 | "TotalSegmentCount": 106,
10 | "TotalPointCount": 287,
11 | "UserDataCount": 0,
12 | "TotalUserDataSize": 0
13 | },
14 | "Curves": [
15 | {
16 | "Target": "Parameter",
17 | "Id": "ParamAngleX",
18 | "Segments": [
19 | 0,
20 | 1,
21 | 1,
22 | 0.211,
23 | 1,
24 | 0.422,
25 | 0,
26 | 0.633,
27 | 0,
28 | 1,
29 | 0.911,
30 | 0,
31 | 1.189,
32 | 5,
33 | 1.467,
34 | 5,
35 | 1,
36 | 1.689,
37 | 5,
38 | 1.911,
39 | -16,
40 | 2.133,
41 | -16,
42 | 1,
43 | 2.356,
44 | -16,
45 | 2.578,
46 | 13.871,
47 | 2.8,
48 | 13.871,
49 | 1,
50 | 2.956,
51 | 13.871,
52 | 3.111,
53 | 0,
54 | 3.267,
55 | 0,
56 | 0,
57 | 4.433,
58 | 0
59 | ]
60 | },
61 | {
62 | "Target": "Parameter",
63 | "Id": "ParamAngleY",
64 | "Segments": [
65 | 0,
66 | 0,
67 | 1,
68 | 0.211,
69 | 0,
70 | 0.422,
71 | 0,
72 | 0.633,
73 | 0,
74 | 1,
75 | 0.911,
76 | 0,
77 | 1.189,
78 | -25,
79 | 1.467,
80 | -25,
81 | 1,
82 | 1.689,
83 | -25,
84 | 1.911,
85 | -15.225,
86 | 2.133,
87 | -11,
88 | 1,
89 | 2.356,
90 | -6.775,
91 | 2.578,
92 | -5.127,
93 | 2.8,
94 | -2.5,
95 | 1,
96 | 2.956,
97 | -0.661,
98 | 3.111,
99 | 0,
100 | 3.267,
101 | 0,
102 | 0,
103 | 4.433,
104 | 0
105 | ]
106 | },
107 | {
108 | "Target": "Parameter",
109 | "Id": "ParamAngleZ",
110 | "Segments": [
111 | 0,
112 | 0,
113 | 1,
114 | 0.222,
115 | 0,
116 | 0.444,
117 | 0,
118 | 0.667,
119 | 0,
120 | 1,
121 | 0.756,
122 | 0,
123 | 0.844,
124 | -4,
125 | 0.933,
126 | -4,
127 | 1,
128 | 1.122,
129 | -4,
130 | 1.311,
131 | 18,
132 | 1.5,
133 | 18,
134 | 1,
135 | 1.722,
136 | 18,
137 | 1.944,
138 | -14,
139 | 2.167,
140 | -14,
141 | 1,
142 | 2.567,
143 | -14,
144 | 2.967,
145 | -14,
146 | 3.367,
147 | -14,
148 | 1,
149 | 3.511,
150 | -14,
151 | 3.656,
152 | -12,
153 | 3.8,
154 | -12,
155 | 0,
156 | 4.433,
157 | -12
158 | ]
159 | },
160 | {
161 | "Target": "Parameter",
162 | "Id": "ParamCheek",
163 | "Segments": [
164 | 0,
165 | 1,
166 | 0,
167 | 4.433,
168 | 1
169 | ]
170 | },
171 | {
172 | "Target": "Parameter",
173 | "Id": "ParamEyeLOpen",
174 | "Segments": [
175 | 0,
176 | 1.2,
177 | 1,
178 | 0.389,
179 | 1.2,
180 | 0.778,
181 | 1.148,
182 | 1.167,
183 | 1,
184 | 1,
185 | 1.211,
186 | 0.983,
187 | 1.256,
188 | 0,
189 | 1.3,
190 | 0,
191 | 1,
192 | 1.322,
193 | 0,
194 | 1.344,
195 | 0,
196 | 1.367,
197 | 0,
198 | 1,
199 | 1.422,
200 | 0,
201 | 1.478,
202 | 1,
203 | 1.533,
204 | 1,
205 | 1,
206 | 1.944,
207 | 1,
208 | 2.356,
209 | 1,
210 | 2.767,
211 | 1,
212 | 1,
213 | 2.811,
214 | 1,
215 | 2.856,
216 | 0,
217 | 2.9,
218 | 0,
219 | 1,
220 | 2.922,
221 | 0,
222 | 2.944,
223 | 0,
224 | 2.967,
225 | 0,
226 | 1,
227 | 3.022,
228 | 0,
229 | 3.078,
230 | 1,
231 | 3.133,
232 | 1,
233 | 0,
234 | 4.433,
235 | 1
236 | ]
237 | },
238 | {
239 | "Target": "Parameter",
240 | "Id": "ParamEyeLSmile",
241 | "Segments": [
242 | 0,
243 | 0,
244 | 0,
245 | 4.433,
246 | 0
247 | ]
248 | },
249 | {
250 | "Target": "Parameter",
251 | "Id": "ParamEyeROpen",
252 | "Segments": [
253 | 0,
254 | 1.2,
255 | 1,
256 | 0.389,
257 | 1.2,
258 | 0.778,
259 | 1.148,
260 | 1.167,
261 | 1,
262 | 1,
263 | 1.211,
264 | 0.983,
265 | 1.256,
266 | 0,
267 | 1.3,
268 | 0,
269 | 1,
270 | 1.322,
271 | 0,
272 | 1.344,
273 | 0,
274 | 1.367,
275 | 0,
276 | 1,
277 | 1.422,
278 | 0,
279 | 1.478,
280 | 1,
281 | 1.533,
282 | 1,
283 | 1,
284 | 1.944,
285 | 1,
286 | 2.356,
287 | 1,
288 | 2.767,
289 | 1,
290 | 1,
291 | 2.811,
292 | 1,
293 | 2.856,
294 | 0,
295 | 2.9,
296 | 0,
297 | 1,
298 | 2.922,
299 | 0,
300 | 2.944,
301 | 0,
302 | 2.967,
303 | 0,
304 | 1,
305 | 3.022,
306 | 0,
307 | 3.078,
308 | 1,
309 | 3.133,
310 | 1,
311 | 0,
312 | 4.433,
313 | 1
314 | ]
315 | },
316 | {
317 | "Target": "Parameter",
318 | "Id": "ParamEyeRSmile",
319 | "Segments": [
320 | 0,
321 | 0,
322 | 0,
323 | 4.433,
324 | 0
325 | ]
326 | },
327 | {
328 | "Target": "Parameter",
329 | "Id": "ParamEyeBallX",
330 | "Segments": [
331 | 0,
332 | 0,
333 | 1,
334 | 0.211,
335 | 0,
336 | 0.422,
337 | 0,
338 | 0.633,
339 | 0,
340 | 1,
341 | 0.911,
342 | 0,
343 | 1.189,
344 | -0.44,
345 | 1.467,
346 | -0.44,
347 | 1,
348 | 1.689,
349 | -0.44,
350 | 1.911,
351 | 0.79,
352 | 2.133,
353 | 0.79,
354 | 1,
355 | 2.511,
356 | 0.79,
357 | 2.889,
358 | 0,
359 | 3.267,
360 | 0,
361 | 0,
362 | 4.433,
363 | 0
364 | ]
365 | },
366 | {
367 | "Target": "Parameter",
368 | "Id": "ParamEyeBallY",
369 | "Segments": [
370 | 0,
371 | 0,
372 | 1,
373 | 0.211,
374 | 0,
375 | 0.422,
376 | 0,
377 | 0.633,
378 | 0,
379 | 1,
380 | 0.911,
381 | 0,
382 | 1.189,
383 | -1,
384 | 1.467,
385 | -1,
386 | 1,
387 | 1.689,
388 | -1,
389 | 1.911,
390 | -1,
391 | 2.133,
392 | -1,
393 | 1,
394 | 2.511,
395 | -1,
396 | 2.889,
397 | 0,
398 | 3.267,
399 | 0,
400 | 0,
401 | 4.433,
402 | 0
403 | ]
404 | },
405 | {
406 | "Target": "Parameter",
407 | "Id": "ParamBrowLY",
408 | "Segments": [
409 | 0,
410 | 1,
411 | 1,
412 | 0.544,
413 | 1,
414 | 1.089,
415 | 1,
416 | 1.633,
417 | 1,
418 | 1,
419 | 1.856,
420 | 1,
421 | 2.078,
422 | 0,
423 | 2.3,
424 | 0,
425 | 1,
426 | 2.5,
427 | 0,
428 | 2.7,
429 | 1,
430 | 2.9,
431 | 1,
432 | 0,
433 | 4.433,
434 | 1
435 | ]
436 | },
437 | {
438 | "Target": "Parameter",
439 | "Id": "ParamBrowRY",
440 | "Segments": [
441 | 0,
442 | 1,
443 | 1,
444 | 0.544,
445 | 1,
446 | 1.089,
447 | 1,
448 | 1.633,
449 | 1,
450 | 1,
451 | 1.856,
452 | 1,
453 | 2.078,
454 | 0,
455 | 2.3,
456 | 0,
457 | 1,
458 | 2.5,
459 | 0,
460 | 2.7,
461 | 1,
462 | 2.9,
463 | 1,
464 | 0,
465 | 4.433,
466 | 1
467 | ]
468 | },
469 | {
470 | "Target": "Parameter",
471 | "Id": "ParamBrowLX",
472 | "Segments": [
473 | 0,
474 | 0,
475 | 0,
476 | 4.433,
477 | 0
478 | ]
479 | },
480 | {
481 | "Target": "Parameter",
482 | "Id": "ParamBrowRX",
483 | "Segments": [
484 | 0,
485 | 0,
486 | 0,
487 | 4.433,
488 | 0
489 | ]
490 | },
491 | {
492 | "Target": "Parameter",
493 | "Id": "ParamBrowLAngle",
494 | "Segments": [
495 | 0,
496 | 0,
497 | 0,
498 | 4.433,
499 | 0
500 | ]
501 | },
502 | {
503 | "Target": "Parameter",
504 | "Id": "ParamBrowRAngle",
505 | "Segments": [
506 | 0,
507 | 0,
508 | 0,
509 | 4.433,
510 | 0
511 | ]
512 | },
513 | {
514 | "Target": "Parameter",
515 | "Id": "ParamBrowLForm",
516 | "Segments": [
517 | 0,
518 | -1,
519 | 0,
520 | 4.433,
521 | -1
522 | ]
523 | },
524 | {
525 | "Target": "Parameter",
526 | "Id": "ParamBrowRForm",
527 | "Segments": [
528 | 0,
529 | -1,
530 | 0,
531 | 4.433,
532 | -1
533 | ]
534 | },
535 | {
536 | "Target": "Parameter",
537 | "Id": "ParamMouthForm",
538 | "Segments": [
539 | 0,
540 | -2,
541 | 0,
542 | 4.433,
543 | -2
544 | ]
545 | },
546 | {
547 | "Target": "Parameter",
548 | "Id": "ParamMouthOpenY",
549 | "Segments": [
550 | 0,
551 | 0,
552 | 0,
553 | 4.433,
554 | 0
555 | ]
556 | },
557 | {
558 | "Target": "Parameter",
559 | "Id": "ParamBodyAngleX",
560 | "Segments": [
561 | 0,
562 | 0,
563 | 1,
564 | 0.244,
565 | 0,
566 | 0.489,
567 | 0,
568 | 0.733,
569 | 0,
570 | 1,
571 | 0.933,
572 | 0,
573 | 1.133,
574 | -7,
575 | 1.333,
576 | -7,
577 | 1,
578 | 1.644,
579 | -7,
580 | 1.956,
581 | 0,
582 | 2.267,
583 | 0,
584 | 0,
585 | 4.433,
586 | 0
587 | ]
588 | },
589 | {
590 | "Target": "Parameter",
591 | "Id": "ParamBodyAngleY",
592 | "Segments": [
593 | 0,
594 | 0,
595 | 1,
596 | 0.244,
597 | 0,
598 | 0.489,
599 | 0,
600 | 0.733,
601 | 0,
602 | 0,
603 | 4.433,
604 | 0
605 | ]
606 | },
607 | {
608 | "Target": "Parameter",
609 | "Id": "ParamBodyAngleZ",
610 | "Segments": [
611 | 0,
612 | 2,
613 | 1,
614 | 0.233,
615 | 2,
616 | 0.467,
617 | 0,
618 | 0.7,
619 | 0,
620 | 1,
621 | 0.733,
622 | 0,
623 | 0.767,
624 | 0,
625 | 0.8,
626 | 0,
627 | 1,
628 | 1,
629 | 0,
630 | 1.2,
631 | -4,
632 | 1.4,
633 | -4,
634 | 1,
635 | 1.711,
636 | -4,
637 | 2.022,
638 | 5,
639 | 2.333,
640 | 5,
641 | 1,
642 | 2.567,
643 | 5,
644 | 2.8,
645 | 3.64,
646 | 3.033,
647 | 0,
648 | 1,
649 | 3.133,
650 | -1.56,
651 | 3.233,
652 | -3,
653 | 3.333,
654 | -3,
655 | 1,
656 | 3.467,
657 | -3,
658 | 3.6,
659 | -2,
660 | 3.733,
661 | -2,
662 | 0,
663 | 4.433,
664 | -2
665 | ]
666 | },
667 | {
668 | "Target": "Parameter",
669 | "Id": "ParamBreath",
670 | "Segments": [
671 | 0,
672 | 0,
673 | 1,
674 | 0.189,
675 | 0,
676 | 0.378,
677 | 1,
678 | 0.567,
679 | 1,
680 | 1,
681 | 0.711,
682 | 1,
683 | 0.856,
684 | 0,
685 | 1,
686 | 0,
687 | 1,
688 | 1.222,
689 | 0,
690 | 1.444,
691 | 1,
692 | 1.667,
693 | 1,
694 | 1,
695 | 1.889,
696 | 1,
697 | 2.111,
698 | 0,
699 | 2.333,
700 | 0,
701 | 1,
702 | 2.544,
703 | 0,
704 | 2.756,
705 | 1,
706 | 2.967,
707 | 1,
708 | 1,
709 | 3.167,
710 | 1,
711 | 3.367,
712 | 0,
713 | 3.567,
714 | 0,
715 | 0,
716 | 4.433,
717 | 0
718 | ]
719 | },
720 | {
721 | "Target": "Parameter",
722 | "Id": "ParamShoulder",
723 | "Segments": [
724 | 0,
725 | 0.1,
726 | 1,
727 | 0.467,
728 | 0.1,
729 | 0.933,
730 | 1,
731 | 1.4,
732 | 1,
733 | 1,
734 | 1.844,
735 | 1,
736 | 2.289,
737 | 1,
738 | 2.733,
739 | 1,
740 | 1,
741 | 2.967,
742 | 1,
743 | 3.2,
744 | -1,
745 | 3.433,
746 | -1,
747 | 0,
748 | 4.433,
749 | -1
750 | ]
751 | },
752 | {
753 | "Target": "Parameter",
754 | "Id": "ParamLeg",
755 | "Segments": [
756 | 0,
757 | 1,
758 | 0,
759 | 4.433,
760 | 1
761 | ]
762 | },
763 | {
764 | "Target": "Parameter",
765 | "Id": "ParamArmLA",
766 | "Segments": [
767 | 0,
768 | -10,
769 | 0,
770 | 4.433,
771 | -10
772 | ]
773 | },
774 | {
775 | "Target": "Parameter",
776 | "Id": "ParamArmRA",
777 | "Segments": [
778 | 0,
779 | -10,
780 | 0,
781 | 4.433,
782 | -10
783 | ]
784 | },
785 | {
786 | "Target": "Parameter",
787 | "Id": "ParamHairAhoge",
788 | "Segments": [
789 | 0,
790 | 0,
791 | 1,
792 | 0.3,
793 | 0,
794 | 0.6,
795 | 0,
796 | 0.9,
797 | -0.012,
798 | 1,
799 | 1.067,
800 | -0.019,
801 | 1.233,
802 | -6.827,
803 | 1.4,
804 | -6.827,
805 | 1,
806 | 1.511,
807 | -6.827,
808 | 1.622,
809 | 7.958,
810 | 1.733,
811 | 7.958,
812 | 1,
813 | 1.944,
814 | 7.958,
815 | 2.156,
816 | -7.565,
817 | 2.367,
818 | -7.565,
819 | 1,
820 | 2.5,
821 | -7.565,
822 | 2.633,
823 | 9.434,
824 | 2.767,
825 | 9.434,
826 | 1,
827 | 2.978,
828 | 9.434,
829 | 3.189,
830 | -8.871,
831 | 3.4,
832 | -8.871,
833 | 1,
834 | 3.5,
835 | -8.871,
836 | 3.6,
837 | 7.588,
838 | 3.7,
839 | 7.588,
840 | 1,
841 | 3.789,
842 | 7.588,
843 | 3.878,
844 | -3.904,
845 | 3.967,
846 | -3.904,
847 | 1,
848 | 4.011,
849 | -3.904,
850 | 4.056,
851 | -0.032,
852 | 4.1,
853 | -0.032,
854 | 0,
855 | 4.433,
856 | -0.032
857 | ]
858 | },
859 | {
860 | "Target": "PartOpacity",
861 | "Id": "PartArmA",
862 | "Segments": [
863 | 0,
864 | 1,
865 | 0,
866 | 4.43,
867 | 1
868 | ]
869 | },
870 | {
871 | "Target": "PartOpacity",
872 | "Id": "PartArmB",
873 | "Segments": [
874 | 0,
875 | 0,
876 | 0,
877 | 4.43,
878 | 0
879 | ]
880 | }
881 | ]
882 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/motions/Hiyori_m07.motion3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "Duration": 1.9,
5 | "Fps": 30.0,
6 | "Loop": true,
7 | "AreBeziersRestricted": false,
8 | "CurveCount": 32,
9 | "TotalSegmentCount": 121,
10 | "TotalPointCount": 331,
11 | "UserDataCount": 0,
12 | "TotalUserDataSize": 0
13 | },
14 | "Curves": [
15 | {
16 | "Target": "Parameter",
17 | "Id": "ParamAngleX",
18 | "Segments": [
19 | 0,
20 | 0,
21 | 1,
22 | 0.111,
23 | 0,
24 | 0.222,
25 | 0,
26 | 0.333,
27 | 0,
28 | 0,
29 | 1.9,
30 | 0
31 | ]
32 | },
33 | {
34 | "Target": "Parameter",
35 | "Id": "ParamAngleY",
36 | "Segments": [
37 | 0,
38 | 0,
39 | 1,
40 | 0.111,
41 | 0,
42 | 0.222,
43 | 0,
44 | 0.333,
45 | 0,
46 | 0,
47 | 1.9,
48 | 0
49 | ]
50 | },
51 | {
52 | "Target": "Parameter",
53 | "Id": "ParamAngleZ",
54 | "Segments": [
55 | 0,
56 | 0,
57 | 1,
58 | 0.111,
59 | 0,
60 | 0.222,
61 | 0,
62 | 0.333,
63 | 0,
64 | 1,
65 | 0.444,
66 | 0,
67 | 0.556,
68 | 8,
69 | 0.667,
70 | 8,
71 | 0,
72 | 1.9,
73 | 8
74 | ]
75 | },
76 | {
77 | "Target": "Parameter",
78 | "Id": "ParamCheek",
79 | "Segments": [
80 | 0,
81 | 0,
82 | 1,
83 | 0.111,
84 | 0,
85 | 0.222,
86 | 0,
87 | 0.333,
88 | 0,
89 | 0,
90 | 1.9,
91 | 0
92 | ]
93 | },
94 | {
95 | "Target": "Parameter",
96 | "Id": "ParamEyeLOpen",
97 | "Segments": [
98 | 0,
99 | 1,
100 | 1,
101 | 0.111,
102 | 1,
103 | 0.222,
104 | 1,
105 | 0.333,
106 | 1,
107 | 1,
108 | 0.378,
109 | 1,
110 | 0.422,
111 | 0,
112 | 0.467,
113 | 0,
114 | 1,
115 | 0.522,
116 | 0,
117 | 0.578,
118 | 1.2,
119 | 0.633,
120 | 1.2,
121 | 1,
122 | 0.744,
123 | 1.2,
124 | 0.856,
125 | 1.2,
126 | 0.967,
127 | 1.2,
128 | 1,
129 | 0.989,
130 | 1.2,
131 | 1.011,
132 | 0,
133 | 1.033,
134 | 0,
135 | 1,
136 | 1.067,
137 | 0,
138 | 1.1,
139 | 1.2,
140 | 1.133,
141 | 1.2,
142 | 1,
143 | 1.167,
144 | 1.2,
145 | 1.2,
146 | 1.2,
147 | 1.233,
148 | 1.2,
149 | 1,
150 | 1.267,
151 | 1.2,
152 | 1.3,
153 | 0,
154 | 1.333,
155 | 0,
156 | 1,
157 | 1.356,
158 | 0,
159 | 1.378,
160 | 1.2,
161 | 1.4,
162 | 1.2,
163 | 0,
164 | 1.9,
165 | 1.2
166 | ]
167 | },
168 | {
169 | "Target": "Parameter",
170 | "Id": "ParamEyeLSmile",
171 | "Segments": [
172 | 0,
173 | 0,
174 | 1,
175 | 0.111,
176 | 0,
177 | 0.222,
178 | 0,
179 | 0.333,
180 | 0,
181 | 0,
182 | 1.9,
183 | 0
184 | ]
185 | },
186 | {
187 | "Target": "Parameter",
188 | "Id": "ParamEyeROpen",
189 | "Segments": [
190 | 0,
191 | 1,
192 | 1,
193 | 0.111,
194 | 1,
195 | 0.222,
196 | 1,
197 | 0.333,
198 | 1,
199 | 1,
200 | 0.378,
201 | 1,
202 | 0.422,
203 | 0,
204 | 0.467,
205 | 0,
206 | 1,
207 | 0.522,
208 | 0,
209 | 0.578,
210 | 1.2,
211 | 0.633,
212 | 1.2,
213 | 1,
214 | 0.744,
215 | 1.2,
216 | 0.856,
217 | 1.2,
218 | 0.967,
219 | 1.2,
220 | 1,
221 | 0.989,
222 | 1.2,
223 | 1.011,
224 | 0,
225 | 1.033,
226 | 0,
227 | 1,
228 | 1.067,
229 | 0,
230 | 1.1,
231 | 1.2,
232 | 1.133,
233 | 1.2,
234 | 1,
235 | 1.167,
236 | 1.2,
237 | 1.2,
238 | 1.2,
239 | 1.233,
240 | 1.2,
241 | 1,
242 | 1.267,
243 | 1.2,
244 | 1.3,
245 | 0,
246 | 1.333,
247 | 0,
248 | 1,
249 | 1.356,
250 | 0,
251 | 1.378,
252 | 1.2,
253 | 1.4,
254 | 1.2,
255 | 0,
256 | 1.9,
257 | 1.2
258 | ]
259 | },
260 | {
261 | "Target": "Parameter",
262 | "Id": "ParamEyeRSmile",
263 | "Segments": [
264 | 0,
265 | 0,
266 | 1,
267 | 0.111,
268 | 0,
269 | 0.222,
270 | 0,
271 | 0.333,
272 | 0,
273 | 1,
274 | 0.356,
275 | 0,
276 | 0.378,
277 | 0,
278 | 0.4,
279 | 0,
280 | 1,
281 | 0.489,
282 | 0,
283 | 0.578,
284 | 0,
285 | 0.667,
286 | 0,
287 | 0,
288 | 1.9,
289 | 0
290 | ]
291 | },
292 | {
293 | "Target": "Parameter",
294 | "Id": "ParamEyeBallX",
295 | "Segments": [
296 | 0,
297 | 0,
298 | 1,
299 | 0.111,
300 | 0,
301 | 0.222,
302 | 0,
303 | 0.333,
304 | 0,
305 | 1,
306 | 0.356,
307 | 0,
308 | 0.378,
309 | 0,
310 | 0.4,
311 | 0,
312 | 1,
313 | 0.489,
314 | 0,
315 | 0.578,
316 | 0,
317 | 0.667,
318 | 0,
319 | 0,
320 | 1.9,
321 | 0
322 | ]
323 | },
324 | {
325 | "Target": "Parameter",
326 | "Id": "ParamEyeBallY",
327 | "Segments": [
328 | 0,
329 | 0,
330 | 1,
331 | 0.111,
332 | 0,
333 | 0.222,
334 | 0,
335 | 0.333,
336 | 0,
337 | 1,
338 | 0.356,
339 | 0,
340 | 0.378,
341 | 0,
342 | 0.4,
343 | 0,
344 | 1,
345 | 0.489,
346 | 0,
347 | 0.578,
348 | 0,
349 | 0.667,
350 | 0,
351 | 0,
352 | 1.9,
353 | 0
354 | ]
355 | },
356 | {
357 | "Target": "Parameter",
358 | "Id": "ParamBrowLY",
359 | "Segments": [
360 | 0,
361 | 0,
362 | 1,
363 | 0.111,
364 | 0,
365 | 0.222,
366 | 0,
367 | 0.333,
368 | 0,
369 | 1,
370 | 0.356,
371 | 0,
372 | 0.378,
373 | 0,
374 | 0.4,
375 | 0,
376 | 1,
377 | 0.489,
378 | 0,
379 | 0.578,
380 | 0.26,
381 | 0.667,
382 | 0.26,
383 | 0,
384 | 1.9,
385 | 0.26
386 | ]
387 | },
388 | {
389 | "Target": "Parameter",
390 | "Id": "ParamBrowRY",
391 | "Segments": [
392 | 0,
393 | 0,
394 | 1,
395 | 0.111,
396 | 0,
397 | 0.222,
398 | 0,
399 | 0.333,
400 | 0,
401 | 1,
402 | 0.356,
403 | 0,
404 | 0.378,
405 | 0,
406 | 0.4,
407 | 0,
408 | 1,
409 | 0.489,
410 | 0,
411 | 0.578,
412 | 0.36,
413 | 0.667,
414 | 0.36,
415 | 0,
416 | 1.9,
417 | 0.36
418 | ]
419 | },
420 | {
421 | "Target": "Parameter",
422 | "Id": "ParamBrowLX",
423 | "Segments": [
424 | 0,
425 | 0,
426 | 1,
427 | 0.111,
428 | 0,
429 | 0.222,
430 | 0,
431 | 0.333,
432 | 0,
433 | 1,
434 | 0.356,
435 | 0,
436 | 0.378,
437 | 0,
438 | 0.4,
439 | 0,
440 | 1,
441 | 0.489,
442 | 0,
443 | 0.578,
444 | 0,
445 | 0.667,
446 | 0,
447 | 0,
448 | 1.9,
449 | 0
450 | ]
451 | },
452 | {
453 | "Target": "Parameter",
454 | "Id": "ParamBrowRX",
455 | "Segments": [
456 | 0,
457 | 0,
458 | 1,
459 | 0.111,
460 | 0,
461 | 0.222,
462 | 0,
463 | 0.333,
464 | 0,
465 | 1,
466 | 0.356,
467 | 0,
468 | 0.378,
469 | 0,
470 | 0.4,
471 | 0,
472 | 1,
473 | 0.489,
474 | 0,
475 | 0.578,
476 | 0.27,
477 | 0.667,
478 | 0.27,
479 | 0,
480 | 1.9,
481 | 0.27
482 | ]
483 | },
484 | {
485 | "Target": "Parameter",
486 | "Id": "ParamBrowLAngle",
487 | "Segments": [
488 | 0,
489 | 0,
490 | 1,
491 | 0.111,
492 | 0,
493 | 0.222,
494 | 0,
495 | 0.333,
496 | 0,
497 | 1,
498 | 0.356,
499 | 0,
500 | 0.378,
501 | 0,
502 | 0.4,
503 | 0,
504 | 1,
505 | 0.489,
506 | 0,
507 | 0.578,
508 | 0.26,
509 | 0.667,
510 | 0.26,
511 | 0,
512 | 1.9,
513 | 0.26
514 | ]
515 | },
516 | {
517 | "Target": "Parameter",
518 | "Id": "ParamBrowRAngle",
519 | "Segments": [
520 | 0,
521 | 0,
522 | 1,
523 | 0.111,
524 | 0,
525 | 0.222,
526 | 0,
527 | 0.333,
528 | 0,
529 | 1,
530 | 0.356,
531 | 0,
532 | 0.378,
533 | 0,
534 | 0.4,
535 | 0,
536 | 1,
537 | 0.489,
538 | 0,
539 | 0.578,
540 | -0.03,
541 | 0.667,
542 | -0.03,
543 | 0,
544 | 1.9,
545 | -0.03
546 | ]
547 | },
548 | {
549 | "Target": "Parameter",
550 | "Id": "ParamBrowLForm",
551 | "Segments": [
552 | 0,
553 | 0,
554 | 1,
555 | 0.111,
556 | 0,
557 | 0.222,
558 | 0,
559 | 0.333,
560 | 0,
561 | 1,
562 | 0.356,
563 | 0,
564 | 0.378,
565 | 0,
566 | 0.4,
567 | 0,
568 | 1,
569 | 0.489,
570 | 0,
571 | 0.578,
572 | 0.33,
573 | 0.667,
574 | 0.33,
575 | 0,
576 | 1.9,
577 | 0.33
578 | ]
579 | },
580 | {
581 | "Target": "Parameter",
582 | "Id": "ParamBrowRForm",
583 | "Segments": [
584 | 0,
585 | 0,
586 | 1,
587 | 0.111,
588 | 0,
589 | 0.222,
590 | 0,
591 | 0.333,
592 | 0,
593 | 1,
594 | 0.356,
595 | 0,
596 | 0.378,
597 | 0,
598 | 0.4,
599 | 0,
600 | 1,
601 | 0.489,
602 | 0,
603 | 0.578,
604 | 0.21,
605 | 0.667,
606 | 0.21,
607 | 0,
608 | 1.9,
609 | 0.21
610 | ]
611 | },
612 | {
613 | "Target": "Parameter",
614 | "Id": "ParamMouthForm",
615 | "Segments": [
616 | 0,
617 | 1,
618 | 1,
619 | 0.111,
620 | 1,
621 | 0.222,
622 | 1,
623 | 0.333,
624 | 1,
625 | 1,
626 | 0.356,
627 | 1,
628 | 0.378,
629 | 1,
630 | 0.4,
631 | 1,
632 | 1,
633 | 0.489,
634 | 1,
635 | 0.578,
636 | -2,
637 | 0.667,
638 | -2,
639 | 0,
640 | 1.9,
641 | -2
642 | ]
643 | },
644 | {
645 | "Target": "Parameter",
646 | "Id": "ParamMouthOpenY",
647 | "Segments": [
648 | 0,
649 | 0,
650 | 1,
651 | 0.111,
652 | 0,
653 | 0.222,
654 | 0,
655 | 0.333,
656 | 0,
657 | 1,
658 | 0.356,
659 | 0,
660 | 0.378,
661 | 0,
662 | 0.4,
663 | 0,
664 | 1,
665 | 0.489,
666 | 0,
667 | 0.578,
668 | 0.75,
669 | 0.667,
670 | 0.75,
671 | 0,
672 | 1.9,
673 | 0.75
674 | ]
675 | },
676 | {
677 | "Target": "Parameter",
678 | "Id": "ParamBodyAngleX",
679 | "Segments": [
680 | 0,
681 | 0,
682 | 1,
683 | 0.111,
684 | 0,
685 | 0.222,
686 | 0,
687 | 0.333,
688 | 0,
689 | 1,
690 | 0.444,
691 | 0,
692 | 0.556,
693 | -6,
694 | 0.667,
695 | -6,
696 | 0,
697 | 1.9,
698 | -6
699 | ]
700 | },
701 | {
702 | "Target": "Parameter",
703 | "Id": "ParamBodyAngleY",
704 | "Segments": [
705 | 0,
706 | 0,
707 | 1,
708 | 0.111,
709 | 0,
710 | 0.222,
711 | 0,
712 | 0.333,
713 | 0,
714 | 1,
715 | 0.422,
716 | 0,
717 | 0.511,
718 | 10,
719 | 0.6,
720 | 10,
721 | 1,
722 | 0.667,
723 | 10,
724 | 0.733,
725 | -6,
726 | 0.8,
727 | -6,
728 | 1,
729 | 0.833,
730 | -6,
731 | 0.867,
732 | 5,
733 | 0.9,
734 | 5,
735 | 1,
736 | 1.011,
737 | 5,
738 | 1.122,
739 | 0,
740 | 1.233,
741 | 0,
742 | 0,
743 | 1.9,
744 | 0
745 | ]
746 | },
747 | {
748 | "Target": "Parameter",
749 | "Id": "ParamBodyAngleZ",
750 | "Segments": [
751 | 0,
752 | 0,
753 | 1,
754 | 0.111,
755 | 0,
756 | 0.222,
757 | 0,
758 | 0.333,
759 | 0,
760 | 1,
761 | 0.444,
762 | 0,
763 | 0.556,
764 | -3,
765 | 0.667,
766 | -3,
767 | 0,
768 | 1.9,
769 | -3
770 | ]
771 | },
772 | {
773 | "Target": "Parameter",
774 | "Id": "ParamBreath",
775 | "Segments": [
776 | 0,
777 | 0,
778 | 1,
779 | 0.111,
780 | 0,
781 | 0.222,
782 | 0,
783 | 0.333,
784 | 0,
785 | 0,
786 | 1.9,
787 | 0
788 | ]
789 | },
790 | {
791 | "Target": "Parameter",
792 | "Id": "ParamShoulder",
793 | "Segments": [
794 | 0,
795 | -0.062,
796 | 1,
797 | 0.111,
798 | -0.062,
799 | 0.222,
800 | -0.103,
801 | 0.333,
802 | 0,
803 | 1,
804 | 0.589,
805 | 0.238,
806 | 0.844,
807 | 1,
808 | 1.1,
809 | 1,
810 | 0,
811 | 1.9,
812 | 1
813 | ]
814 | },
815 | {
816 | "Target": "Parameter",
817 | "Id": "ParamArmLA",
818 | "Segments": [
819 | 0,
820 | 0,
821 | 1,
822 | 0.111,
823 | 0,
824 | 0.222,
825 | 0,
826 | 0.333,
827 | 0,
828 | 1,
829 | 0.478,
830 | 0,
831 | 0.622,
832 | -10,
833 | 0.767,
834 | -10,
835 | 1,
836 | 0.811,
837 | -10,
838 | 0.856,
839 | -8.2,
840 | 0.9,
841 | -8.2,
842 | 0,
843 | 1.9,
844 | -8.2
845 | ]
846 | },
847 | {
848 | "Target": "Parameter",
849 | "Id": "ParamArmRA",
850 | "Segments": [
851 | 0,
852 | 0,
853 | 1,
854 | 0.111,
855 | 0,
856 | 0.222,
857 | 0,
858 | 0.333,
859 | 0,
860 | 1,
861 | 0.478,
862 | 0,
863 | 0.622,
864 | -10,
865 | 0.767,
866 | -10,
867 | 1,
868 | 0.811,
869 | -10,
870 | 0.856,
871 | -7.2,
872 | 0.9,
873 | -7.2,
874 | 0,
875 | 1.9,
876 | -7.2
877 | ]
878 | },
879 | {
880 | "Target": "Parameter",
881 | "Id": "ParamArmLB",
882 | "Segments": [
883 | 0,
884 | 0,
885 | 1,
886 | 0.111,
887 | 0,
888 | 0.222,
889 | 0,
890 | 0.333,
891 | 0,
892 | 0,
893 | 1.9,
894 | 0
895 | ]
896 | },
897 | {
898 | "Target": "Parameter",
899 | "Id": "ParamArmRB",
900 | "Segments": [
901 | 0,
902 | 0,
903 | 1,
904 | 0.111,
905 | 0,
906 | 0.222,
907 | 0,
908 | 0.333,
909 | 0,
910 | 0,
911 | 1.9,
912 | 0
913 | ]
914 | },
915 | {
916 | "Target": "Parameter",
917 | "Id": "ParamHairAhoge",
918 | "Segments": [
919 | 0,
920 | 0,
921 | 1,
922 | 0.111,
923 | 0,
924 | 0.222,
925 | 1.9,
926 | 0.333,
927 | 5.2,
928 | 1,
929 | 0.444,
930 | 8.5,
931 | 0.556,
932 | 9.926,
933 | 0.667,
934 | 9.926,
935 | 1,
936 | 0.744,
937 | 9.926,
938 | 0.822,
939 | -10,
940 | 0.9,
941 | -10,
942 | 1,
943 | 0.956,
944 | -10,
945 | 1.011,
946 | 6,
947 | 1.067,
948 | 6,
949 | 1,
950 | 1.144,
951 | 6,
952 | 1.222,
953 | -4,
954 | 1.3,
955 | -4,
956 | 1,
957 | 1.367,
958 | -4,
959 | 1.433,
960 | 0,
961 | 1.5,
962 | 0,
963 | 0,
964 | 1.9,
965 | 0
966 | ]
967 | },
968 | {
969 | "Target": "PartOpacity",
970 | "Id": "PartArmA",
971 | "Segments": [
972 | 0,
973 | 1,
974 | 0,
975 | 1.9,
976 | 1
977 | ]
978 | },
979 | {
980 | "Target": "PartOpacity",
981 | "Id": "PartArmB",
982 | "Segments": [
983 | 0,
984 | 0,
985 | 0,
986 | 1.9,
987 | 0
988 | ]
989 | }
990 | ]
991 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/motions/Hiyori_m08.motion3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "Duration": 2.1,
5 | "Fps": 30.0,
6 | "Loop": true,
7 | "AreBeziersRestricted": false,
8 | "CurveCount": 35,
9 | "TotalSegmentCount": 133,
10 | "TotalPointCount": 364,
11 | "UserDataCount": 0,
12 | "TotalUserDataSize": 0
13 | },
14 | "Curves": [
15 | {
16 | "Target": "Parameter",
17 | "Id": "ParamAngleX",
18 | "Segments": [
19 | 0,
20 | 0,
21 | 1,
22 | 0.067,
23 | 0,
24 | 0.133,
25 | 0,
26 | 0.2,
27 | 0,
28 | 1,
29 | 0.244,
30 | 0,
31 | 0.289,
32 | 0,
33 | 0.333,
34 | 0,
35 | 1,
36 | 0.378,
37 | 0,
38 | 0.422,
39 | 0,
40 | 0.467,
41 | 0,
42 | 1,
43 | 0.556,
44 | 0,
45 | 0.644,
46 | 0,
47 | 0.733,
48 | 0,
49 | 0,
50 | 2.1,
51 | 0
52 | ]
53 | },
54 | {
55 | "Target": "Parameter",
56 | "Id": "ParamAngleY",
57 | "Segments": [
58 | 0,
59 | 0,
60 | 1,
61 | 0.067,
62 | 0,
63 | 0.133,
64 | 0,
65 | 0.2,
66 | 0,
67 | 1,
68 | 0.244,
69 | 0,
70 | 0.289,
71 | 0,
72 | 0.333,
73 | 0,
74 | 1,
75 | 0.378,
76 | 0,
77 | 0.422,
78 | -15,
79 | 0.467,
80 | -15,
81 | 1,
82 | 0.556,
83 | -15,
84 | 0.644,
85 | 11,
86 | 0.733,
87 | 11,
88 | 0,
89 | 2.1,
90 | 11
91 | ]
92 | },
93 | {
94 | "Target": "Parameter",
95 | "Id": "ParamAngleZ",
96 | "Segments": [
97 | 0,
98 | 0,
99 | 1,
100 | 0.067,
101 | 0,
102 | 0.133,
103 | 0,
104 | 0.2,
105 | 0,
106 | 1,
107 | 0.244,
108 | 0,
109 | 0.289,
110 | 0,
111 | 0.333,
112 | 0,
113 | 1,
114 | 0.444,
115 | 0,
116 | 0.556,
117 | -15,
118 | 0.667,
119 | -15,
120 | 1,
121 | 0.722,
122 | -15,
123 | 0.778,
124 | -9,
125 | 0.833,
126 | -9,
127 | 0,
128 | 2.1,
129 | -9
130 | ]
131 | },
132 | {
133 | "Target": "Parameter",
134 | "Id": "ParamCheek",
135 | "Segments": [
136 | 0,
137 | 0,
138 | 1,
139 | 0.067,
140 | 0,
141 | 0.133,
142 | 0,
143 | 0.2,
144 | 0,
145 | 1,
146 | 0.278,
147 | 0,
148 | 0.356,
149 | 0,
150 | 0.433,
151 | 0,
152 | 0,
153 | 2.1,
154 | 0
155 | ]
156 | },
157 | {
158 | "Target": "Parameter",
159 | "Id": "ParamEyeLOpen",
160 | "Segments": [
161 | 0,
162 | 1,
163 | 1,
164 | 0.067,
165 | 1,
166 | 0.133,
167 | 1,
168 | 0.2,
169 | 1,
170 | 1,
171 | 0.244,
172 | 1,
173 | 0.289,
174 | 1,
175 | 0.333,
176 | 1,
177 | 1,
178 | 0.456,
179 | 1,
180 | 0.578,
181 | 0,
182 | 0.7,
183 | 0,
184 | 0,
185 | 2.1,
186 | 0
187 | ]
188 | },
189 | {
190 | "Target": "Parameter",
191 | "Id": "ParamEyeLSmile",
192 | "Segments": [
193 | 0,
194 | 0,
195 | 1,
196 | 0.067,
197 | 0,
198 | 0.133,
199 | 0,
200 | 0.2,
201 | 0,
202 | 1,
203 | 0.244,
204 | 0,
205 | 0.289,
206 | 0,
207 | 0.333,
208 | 0,
209 | 1,
210 | 0.456,
211 | 0,
212 | 0.578,
213 | 1,
214 | 0.7,
215 | 1,
216 | 0,
217 | 2.1,
218 | 1
219 | ]
220 | },
221 | {
222 | "Target": "Parameter",
223 | "Id": "ParamEyeROpen",
224 | "Segments": [
225 | 0,
226 | 1,
227 | 1,
228 | 0.067,
229 | 1,
230 | 0.133,
231 | 1,
232 | 0.2,
233 | 1,
234 | 1,
235 | 0.244,
236 | 1,
237 | 0.289,
238 | 1,
239 | 0.333,
240 | 1,
241 | 1,
242 | 0.456,
243 | 1,
244 | 0.578,
245 | 0,
246 | 0.7,
247 | 0,
248 | 0,
249 | 2.1,
250 | 0
251 | ]
252 | },
253 | {
254 | "Target": "Parameter",
255 | "Id": "ParamEyeRSmile",
256 | "Segments": [
257 | 0,
258 | 0,
259 | 1,
260 | 0.067,
261 | 0,
262 | 0.133,
263 | 0,
264 | 0.2,
265 | 0,
266 | 1,
267 | 0.244,
268 | 0,
269 | 0.289,
270 | 0,
271 | 0.333,
272 | 0,
273 | 1,
274 | 0.456,
275 | 0,
276 | 0.578,
277 | 1,
278 | 0.7,
279 | 1,
280 | 0,
281 | 2.1,
282 | 1
283 | ]
284 | },
285 | {
286 | "Target": "Parameter",
287 | "Id": "ParamEyeBallX",
288 | "Segments": [
289 | 0,
290 | 0,
291 | 1,
292 | 0.067,
293 | 0,
294 | 0.133,
295 | 0,
296 | 0.2,
297 | 0,
298 | 1,
299 | 0.244,
300 | 0,
301 | 0.289,
302 | 0,
303 | 0.333,
304 | 0,
305 | 0,
306 | 2.1,
307 | 0
308 | ]
309 | },
310 | {
311 | "Target": "Parameter",
312 | "Id": "ParamEyeBallY",
313 | "Segments": [
314 | 0,
315 | 0,
316 | 1,
317 | 0.067,
318 | 0,
319 | 0.133,
320 | 0,
321 | 0.2,
322 | 0,
323 | 1,
324 | 0.244,
325 | 0,
326 | 0.289,
327 | 0,
328 | 0.333,
329 | 0,
330 | 0,
331 | 2.1,
332 | 0
333 | ]
334 | },
335 | {
336 | "Target": "Parameter",
337 | "Id": "ParamBrowLY",
338 | "Segments": [
339 | 0,
340 | 0,
341 | 1,
342 | 0.067,
343 | 0,
344 | 0.133,
345 | 0,
346 | 0.2,
347 | 0,
348 | 1,
349 | 0.244,
350 | 0,
351 | 0.289,
352 | 0,
353 | 0.333,
354 | 0,
355 | 1,
356 | 0.456,
357 | 0,
358 | 0.578,
359 | -0.14,
360 | 0.7,
361 | -0.14,
362 | 0,
363 | 2.1,
364 | -0.14
365 | ]
366 | },
367 | {
368 | "Target": "Parameter",
369 | "Id": "ParamBrowRY",
370 | "Segments": [
371 | 0,
372 | 0,
373 | 1,
374 | 0.067,
375 | 0,
376 | 0.133,
377 | 0,
378 | 0.2,
379 | 0,
380 | 1,
381 | 0.244,
382 | 0,
383 | 0.289,
384 | 0,
385 | 0.333,
386 | 0,
387 | 1,
388 | 0.456,
389 | 0,
390 | 0.578,
391 | -0.14,
392 | 0.7,
393 | -0.14,
394 | 0,
395 | 2.1,
396 | -0.14
397 | ]
398 | },
399 | {
400 | "Target": "Parameter",
401 | "Id": "ParamBrowLX",
402 | "Segments": [
403 | 0,
404 | 0,
405 | 1,
406 | 0.067,
407 | 0,
408 | 0.133,
409 | 0,
410 | 0.2,
411 | 0,
412 | 1,
413 | 0.278,
414 | 0,
415 | 0.356,
416 | 0,
417 | 0.433,
418 | 0,
419 | 1,
420 | 0.522,
421 | 0,
422 | 0.611,
423 | -0.21,
424 | 0.7,
425 | -0.21,
426 | 0,
427 | 2.1,
428 | -0.21
429 | ]
430 | },
431 | {
432 | "Target": "Parameter",
433 | "Id": "ParamBrowRX",
434 | "Segments": [
435 | 0,
436 | 0,
437 | 1,
438 | 0.067,
439 | 0,
440 | 0.133,
441 | 0,
442 | 0.2,
443 | 0,
444 | 1,
445 | 0.278,
446 | 0,
447 | 0.356,
448 | 0,
449 | 0.433,
450 | 0,
451 | 1,
452 | 0.522,
453 | 0,
454 | 0.611,
455 | 0.2,
456 | 0.7,
457 | 0.2,
458 | 0,
459 | 2.1,
460 | 0.2
461 | ]
462 | },
463 | {
464 | "Target": "Parameter",
465 | "Id": "ParamBrowLAngle",
466 | "Segments": [
467 | 0,
468 | 0,
469 | 1,
470 | 0.067,
471 | 0,
472 | 0.133,
473 | 0,
474 | 0.2,
475 | 0,
476 | 1,
477 | 0.278,
478 | 0,
479 | 0.356,
480 | 0,
481 | 0.433,
482 | 0,
483 | 1,
484 | 0.522,
485 | 0,
486 | 0.611,
487 | 0.25,
488 | 0.7,
489 | 0.25,
490 | 0,
491 | 2.1,
492 | 0.25
493 | ]
494 | },
495 | {
496 | "Target": "Parameter",
497 | "Id": "ParamBrowRAngle",
498 | "Segments": [
499 | 0,
500 | 0,
501 | 1,
502 | 0.067,
503 | 0,
504 | 0.133,
505 | 0,
506 | 0.2,
507 | 0,
508 | 1,
509 | 0.278,
510 | 0,
511 | 0.356,
512 | 0,
513 | 0.433,
514 | 0,
515 | 1,
516 | 0.522,
517 | 0,
518 | 0.611,
519 | 0.23,
520 | 0.7,
521 | 0.23,
522 | 0,
523 | 2.1,
524 | 0.23
525 | ]
526 | },
527 | {
528 | "Target": "Parameter",
529 | "Id": "ParamBrowLForm",
530 | "Segments": [
531 | 0,
532 | 0,
533 | 1,
534 | 0.067,
535 | 0,
536 | 0.133,
537 | 0,
538 | 0.2,
539 | 0,
540 | 1,
541 | 0.278,
542 | 0,
543 | 0.356,
544 | 0,
545 | 0.433,
546 | 0,
547 | 1,
548 | 0.522,
549 | 0,
550 | 0.611,
551 | 0,
552 | 0.7,
553 | 0,
554 | 0,
555 | 2.1,
556 | 0
557 | ]
558 | },
559 | {
560 | "Target": "Parameter",
561 | "Id": "ParamBrowRForm",
562 | "Segments": [
563 | 0,
564 | 0,
565 | 1,
566 | 0.067,
567 | 0,
568 | 0.133,
569 | 0,
570 | 0.2,
571 | 0,
572 | 1,
573 | 0.278,
574 | 0,
575 | 0.356,
576 | 0,
577 | 0.433,
578 | 0,
579 | 1,
580 | 0.522,
581 | 0,
582 | 0.611,
583 | 0,
584 | 0.7,
585 | 0,
586 | 0,
587 | 2.1,
588 | 0
589 | ]
590 | },
591 | {
592 | "Target": "Parameter",
593 | "Id": "ParamMouthForm",
594 | "Segments": [
595 | 0,
596 | 1,
597 | 1,
598 | 0.067,
599 | 1,
600 | 0.133,
601 | 1,
602 | 0.2,
603 | 1,
604 | 1,
605 | 0.278,
606 | 1,
607 | 0.356,
608 | 1,
609 | 0.433,
610 | 1,
611 | 1,
612 | 0.522,
613 | 1,
614 | 0.611,
615 | 1,
616 | 0.7,
617 | 1,
618 | 0,
619 | 2.1,
620 | 1
621 | ]
622 | },
623 | {
624 | "Target": "Parameter",
625 | "Id": "ParamMouthOpenY",
626 | "Segments": [
627 | 0,
628 | 0,
629 | 1,
630 | 0.067,
631 | 0,
632 | 0.133,
633 | 0,
634 | 0.2,
635 | 0,
636 | 1,
637 | 0.278,
638 | 0,
639 | 0.356,
640 | 0,
641 | 0.433,
642 | 0,
643 | 1,
644 | 0.522,
645 | 0,
646 | 0.611,
647 | 1,
648 | 0.7,
649 | 1,
650 | 0,
651 | 2.1,
652 | 1
653 | ]
654 | },
655 | {
656 | "Target": "Parameter",
657 | "Id": "ParamBodyAngleX",
658 | "Segments": [
659 | 0,
660 | 0,
661 | 0,
662 | 2.1,
663 | 0
664 | ]
665 | },
666 | {
667 | "Target": "Parameter",
668 | "Id": "ParamBodyAngleY",
669 | "Segments": [
670 | 0,
671 | 0,
672 | 1,
673 | 0.067,
674 | 0,
675 | 0.133,
676 | 0,
677 | 0.2,
678 | 0,
679 | 1,
680 | 0.278,
681 | 0,
682 | 0.356,
683 | 8,
684 | 0.433,
685 | 8,
686 | 1,
687 | 0.5,
688 | 8,
689 | 0.567,
690 | -7,
691 | 0.633,
692 | -7,
693 | 1,
694 | 0.689,
695 | -7,
696 | 0.744,
697 | 3,
698 | 0.8,
699 | 3,
700 | 1,
701 | 0.844,
702 | 3,
703 | 0.889,
704 | 0,
705 | 0.933,
706 | 0,
707 | 0,
708 | 2.1,
709 | 0
710 | ]
711 | },
712 | {
713 | "Target": "Parameter",
714 | "Id": "ParamBodyAngleZ",
715 | "Segments": [
716 | 0,
717 | 0,
718 | 1,
719 | 0.067,
720 | 0,
721 | 0.133,
722 | 0,
723 | 0.2,
724 | 0,
725 | 1,
726 | 0.278,
727 | 0,
728 | 0.356,
729 | 0,
730 | 0.433,
731 | 0,
732 | 1,
733 | 0.511,
734 | 0,
735 | 0.589,
736 | 4,
737 | 0.667,
738 | 4,
739 | 1,
740 | 0.722,
741 | 4,
742 | 0.778,
743 | 2,
744 | 0.833,
745 | 2,
746 | 0,
747 | 2.1,
748 | 2
749 | ]
750 | },
751 | {
752 | "Target": "Parameter",
753 | "Id": "ParamBreath",
754 | "Segments": [
755 | 0,
756 | 0,
757 | 1,
758 | 0.067,
759 | 0,
760 | 0.133,
761 | 0,
762 | 0.2,
763 | 0,
764 | 1,
765 | 0.278,
766 | 0,
767 | 0.356,
768 | 0,
769 | 0.433,
770 | 0,
771 | 0,
772 | 2.1,
773 | 0
774 | ]
775 | },
776 | {
777 | "Target": "Parameter",
778 | "Id": "ParamShoulder",
779 | "Segments": [
780 | 0,
781 | 0,
782 | 1,
783 | 0.067,
784 | 0,
785 | 0.133,
786 | 0,
787 | 0.2,
788 | 0,
789 | 1,
790 | 0.278,
791 | 0,
792 | 0.356,
793 | -1,
794 | 0.433,
795 | -1,
796 | 1,
797 | 0.5,
798 | -1,
799 | 0.567,
800 | 1,
801 | 0.633,
802 | 1,
803 | 1,
804 | 0.689,
805 | 1,
806 | 0.744,
807 | -0.4,
808 | 0.8,
809 | -0.4,
810 | 1,
811 | 0.956,
812 | -0.4,
813 | 1.111,
814 | 0,
815 | 1.267,
816 | 0,
817 | 0,
818 | 2.1,
819 | 0
820 | ]
821 | },
822 | {
823 | "Target": "Parameter",
824 | "Id": "ParamLeg",
825 | "Segments": [
826 | 0,
827 | 1,
828 | 0,
829 | 2.1,
830 | 1
831 | ]
832 | },
833 | {
834 | "Target": "Parameter",
835 | "Id": "ParamArmLA",
836 | "Segments": [
837 | 0,
838 | 0,
839 | 0,
840 | 2.1,
841 | 0
842 | ]
843 | },
844 | {
845 | "Target": "Parameter",
846 | "Id": "ParamArmRA",
847 | "Segments": [
848 | 0,
849 | 0,
850 | 0,
851 | 2.1,
852 | 0
853 | ]
854 | },
855 | {
856 | "Target": "Parameter",
857 | "Id": "ParamArmLB",
858 | "Segments": [
859 | 0,
860 | 0,
861 | 1,
862 | 0.067,
863 | 0,
864 | 0.133,
865 | 0,
866 | 0.2,
867 | 0,
868 | 1,
869 | 0.244,
870 | 0,
871 | 0.289,
872 | -5.208,
873 | 0.333,
874 | -5.208,
875 | 1,
876 | 0.4,
877 | -5.208,
878 | 0.467,
879 | 9.583,
880 | 0.533,
881 | 9.583,
882 | 0,
883 | 2.1,
884 | 9.583
885 | ]
886 | },
887 | {
888 | "Target": "Parameter",
889 | "Id": "ParamArmRB",
890 | "Segments": [
891 | 0,
892 | 0,
893 | 1,
894 | 0.067,
895 | 0,
896 | 0.133,
897 | 0,
898 | 0.2,
899 | 0,
900 | 1,
901 | 0.244,
902 | 0,
903 | 0.289,
904 | -4.583,
905 | 0.333,
906 | -4.583,
907 | 1,
908 | 0.4,
909 | -4.583,
910 | 0.467,
911 | 4.375,
912 | 0.533,
913 | 4.375,
914 | 0,
915 | 2.1,
916 | 4.375
917 | ]
918 | },
919 | {
920 | "Target": "Parameter",
921 | "Id": "ParamHandLB",
922 | "Segments": [
923 | 0,
924 | 10,
925 | 1,
926 | 0.122,
927 | 10,
928 | 0.244,
929 | 8.89,
930 | 0.367,
931 | 4.167,
932 | 1,
933 | 0.411,
934 | 2.449,
935 | 0.456,
936 | -4.583,
937 | 0.5,
938 | -4.583,
939 | 1,
940 | 0.544,
941 | -4.583,
942 | 0.589,
943 | 4.792,
944 | 0.633,
945 | 4.792,
946 | 0,
947 | 2.1,
948 | 4.792
949 | ]
950 | },
951 | {
952 | "Target": "Parameter",
953 | "Id": "ParamHandRB",
954 | "Segments": [
955 | 0,
956 | 10,
957 | 1,
958 | 0.122,
959 | 10,
960 | 0.244,
961 | 8.89,
962 | 0.367,
963 | 4.167,
964 | 1,
965 | 0.411,
966 | 2.449,
967 | 0.456,
968 | -4.583,
969 | 0.5,
970 | -4.583,
971 | 1,
972 | 0.544,
973 | -4.583,
974 | 0.589,
975 | 7.292,
976 | 0.633,
977 | 7.292,
978 | 0,
979 | 2.1,
980 | 7.292
981 | ]
982 | },
983 | {
984 | "Target": "Parameter",
985 | "Id": "ParamHairAhoge",
986 | "Segments": [
987 | 0,
988 | 0,
989 | 1,
990 | 0.067,
991 | 0,
992 | 0.133,
993 | 0,
994 | 0.2,
995 | 0,
996 | 1,
997 | 0.244,
998 | 0,
999 | 0.289,
1000 | -0.142,
1001 | 0.333,
1002 | 0.234,
1003 | 1,
1004 | 0.411,
1005 | 0.89,
1006 | 0.489,
1007 | 10,
1008 | 0.567,
1009 | 10,
1010 | 1,
1011 | 0.611,
1012 | 10,
1013 | 0.656,
1014 | -10,
1015 | 0.7,
1016 | -10,
1017 | 1,
1018 | 0.767,
1019 | -10,
1020 | 0.833,
1021 | 9.951,
1022 | 0.9,
1023 | 9.951,
1024 | 1,
1025 | 0.978,
1026 | 9.951,
1027 | 1.056,
1028 | -9.508,
1029 | 1.133,
1030 | -9.508,
1031 | 1,
1032 | 1.211,
1033 | -9.508,
1034 | 1.289,
1035 | 5.892,
1036 | 1.367,
1037 | 5.892,
1038 | 1,
1039 | 1.433,
1040 | 5.892,
1041 | 1.5,
1042 | -2,
1043 | 1.567,
1044 | -2,
1045 | 1,
1046 | 1.611,
1047 | -2,
1048 | 1.656,
1049 | 1,
1050 | 1.7,
1051 | 1,
1052 | 1,
1053 | 1.756,
1054 | 1,
1055 | 1.811,
1056 | 0,
1057 | 1.867,
1058 | 0,
1059 | 0,
1060 | 2.1,
1061 | 0
1062 | ]
1063 | },
1064 | {
1065 | "Target": "PartOpacity",
1066 | "Id": "PartArmA",
1067 | "Segments": [
1068 | 0,
1069 | 0,
1070 | 0,
1071 | 2.1,
1072 | 0
1073 | ]
1074 | },
1075 | {
1076 | "Target": "PartOpacity",
1077 | "Id": "PartArmB",
1078 | "Segments": [
1079 | 0,
1080 | 1,
1081 | 0,
1082 | 2.1,
1083 | 1
1084 | ]
1085 | }
1086 | ]
1087 | }
--------------------------------------------------------------------------------
/res/Hiyori/model/Hiyori/motions/Hiyori_m10.motion3.json:
--------------------------------------------------------------------------------
1 | {
2 | "Version": 3,
3 | "Meta": {
4 | "Duration": 4.17,
5 | "Fps": 30.0,
6 | "Loop": true,
7 | "AreBeziersRestricted": false,
8 | "CurveCount": 33,
9 | "TotalSegmentCount": 118,
10 | "TotalPointCount": 321,
11 | "UserDataCount": 0,
12 | "TotalUserDataSize": 0
13 | },
14 | "Curves": [
15 | {
16 | "Target": "Parameter",
17 | "Id": "ParamAngleX",
18 | "Segments": [
19 | 0,
20 | 0,
21 | 1,
22 | 0.067,
23 | 0,
24 | 0.133,
25 | 0,
26 | 0.2,
27 | 0,
28 | 1,
29 | 0.4,
30 | 0,
31 | 0.6,
32 | 0,
33 | 0.8,
34 | 0,
35 | 1,
36 | 1.067,
37 | 0,
38 | 1.333,
39 | 1.041,
40 | 1.6,
41 | 1.041,
42 | 1,
43 | 1.844,
44 | 1.041,
45 | 2.089,
46 | -8,
47 | 2.333,
48 | -8,
49 | 1,
50 | 2.656,
51 | -8,
52 | 2.978,
53 | 6,
54 | 3.3,
55 | 6,
56 | 0,
57 | 4.167,
58 | 6
59 | ]
60 | },
61 | {
62 | "Target": "Parameter",
63 | "Id": "ParamAngleY",
64 | "Segments": [
65 | 0,
66 | 0,
67 | 1,
68 | 0.067,
69 | 0,
70 | 0.133,
71 | 0,
72 | 0.2,
73 | 0,
74 | 1,
75 | 0.344,
76 | 0,
77 | 0.489,
78 | -30,
79 | 0.633,
80 | -30,
81 | 0,
82 | 4.167,
83 | -30
84 | ]
85 | },
86 | {
87 | "Target": "Parameter",
88 | "Id": "ParamAngleZ",
89 | "Segments": [
90 | 0,
91 | 0,
92 | 1,
93 | 0.067,
94 | 0,
95 | 0.133,
96 | 0,
97 | 0.2,
98 | 0,
99 | 0,
100 | 4.167,
101 | 0
102 | ]
103 | },
104 | {
105 | "Target": "Parameter",
106 | "Id": "ParamCheek",
107 | "Segments": [
108 | 0,
109 | 0,
110 | 1,
111 | 0.067,
112 | 0,
113 | 0.133,
114 | 0,
115 | 0.2,
116 | 0,
117 | 0,
118 | 4.167,
119 | 0
120 | ]
121 | },
122 | {
123 | "Target": "Parameter",
124 | "Id": "ParamEyeLOpen",
125 | "Segments": [
126 | 0,
127 | 1,
128 | 1,
129 | 0.067,
130 | 1,
131 | 0.133,
132 | 1,
133 | 0.2,
134 | 1,
135 | 1,
136 | 0.311,
137 | 1,
138 | 0.422,
139 | 0.988,
140 | 0.533,
141 | 0.8,
142 | 1,
143 | 0.589,
144 | 0.706,
145 | 0.644,
146 | 0,
147 | 0.7,
148 | 0,
149 | 1,
150 | 0.722,
151 | 0,
152 | 0.744,
153 | 0,
154 | 0.767,
155 | 0,
156 | 1,
157 | 0.822,
158 | 0,
159 | 0.878,
160 | 0.8,
161 | 0.933,
162 | 0.8,
163 | 1,
164 | 1.422,
165 | 0.8,
166 | 1.911,
167 | 0.8,
168 | 2.4,
169 | 0.8,
170 | 1,
171 | 2.456,
172 | 0.8,
173 | 2.511,
174 | 0,
175 | 2.567,
176 | 0,
177 | 1,
178 | 2.589,
179 | 0,
180 | 2.611,
181 | 0,
182 | 2.633,
183 | 0,
184 | 1,
185 | 2.689,
186 | 0,
187 | 2.744,
188 | 0.8,
189 | 2.8,
190 | 0.8,
191 | 0,
192 | 4.167,
193 | 0.8
194 | ]
195 | },
196 | {
197 | "Target": "Parameter",
198 | "Id": "ParamEyeLSmile",
199 | "Segments": [
200 | 0,
201 | 0,
202 | 1,
203 | 0.067,
204 | 0,
205 | 0.133,
206 | 0,
207 | 0.2,
208 | 0,
209 | 0,
210 | 4.167,
211 | 0
212 | ]
213 | },
214 | {
215 | "Target": "Parameter",
216 | "Id": "ParamEyeROpen",
217 | "Segments": [
218 | 0,
219 | 1,
220 | 1,
221 | 0.067,
222 | 1,
223 | 0.133,
224 | 1,
225 | 0.2,
226 | 1,
227 | 1,
228 | 0.311,
229 | 1,
230 | 0.422,
231 | 0.988,
232 | 0.533,
233 | 0.8,
234 | 1,
235 | 0.589,
236 | 0.706,
237 | 0.644,
238 | 0,
239 | 0.7,
240 | 0,
241 | 1,
242 | 0.722,
243 | 0,
244 | 0.744,
245 | 0,
246 | 0.767,
247 | 0,
248 | 1,
249 | 0.822,
250 | 0,
251 | 0.878,
252 | 0.8,
253 | 0.933,
254 | 0.8,
255 | 1,
256 | 1.422,
257 | 0.8,
258 | 1.911,
259 | 0.8,
260 | 2.4,
261 | 0.8,
262 | 1,
263 | 2.456,
264 | 0.8,
265 | 2.511,
266 | 0,
267 | 2.567,
268 | 0,
269 | 1,
270 | 2.589,
271 | 0,
272 | 2.611,
273 | 0,
274 | 2.633,
275 | 0,
276 | 1,
277 | 2.689,
278 | 0,
279 | 2.744,
280 | 0.8,
281 | 2.8,
282 | 0.8,
283 | 0,
284 | 4.167,
285 | 0.8
286 | ]
287 | },
288 | {
289 | "Target": "Parameter",
290 | "Id": "ParamEyeRSmile",
291 | "Segments": [
292 | 0,
293 | 0,
294 | 1,
295 | 0.067,
296 | 0,
297 | 0.133,
298 | 0,
299 | 0.2,
300 | 0,
301 | 1,
302 | 0.278,
303 | 0,
304 | 0.356,
305 | 0,
306 | 0.433,
307 | 0,
308 | 0,
309 | 4.167,
310 | 0
311 | ]
312 | },
313 | {
314 | "Target": "Parameter",
315 | "Id": "ParamEyeBallX",
316 | "Segments": [
317 | 0,
318 | 0,
319 | 1,
320 | 0.067,
321 | 0,
322 | 0.133,
323 | 0,
324 | 0.2,
325 | 0,
326 | 1,
327 | 0.278,
328 | 0,
329 | 0.356,
330 | 0,
331 | 0.433,
332 | 0,
333 | 1,
334 | 0.667,
335 | 0,
336 | 0.9,
337 | 0.004,
338 | 1.133,
339 | -0.01,
340 | 1,
341 | 1.4,
342 | -0.025,
343 | 1.667,
344 | -0.43,
345 | 1.933,
346 | -0.43,
347 | 1,
348 | 2.211,
349 | -0.43,
350 | 2.489,
351 | 0.283,
352 | 2.767,
353 | 0.283,
354 | 0,
355 | 4.167,
356 | 0.283
357 | ]
358 | },
359 | {
360 | "Target": "Parameter",
361 | "Id": "ParamEyeBallY",
362 | "Segments": [
363 | 0,
364 | 0,
365 | 1,
366 | 0.067,
367 | 0,
368 | 0.133,
369 | 0,
370 | 0.2,
371 | 0,
372 | 1,
373 | 0.278,
374 | 0,
375 | 0.356,
376 | -1,
377 | 0.433,
378 | -1,
379 | 0,
380 | 4.167,
381 | -1
382 | ]
383 | },
384 | {
385 | "Target": "Parameter",
386 | "Id": "ParamBrowLY",
387 | "Segments": [
388 | 0,
389 | 0,
390 | 1,
391 | 0.067,
392 | 0,
393 | 0.133,
394 | 0,
395 | 0.2,
396 | 0,
397 | 1,
398 | 0.278,
399 | 0,
400 | 0.356,
401 | 0.19,
402 | 0.433,
403 | 0.19,
404 | 0,
405 | 4.167,
406 | 0.19
407 | ]
408 | },
409 | {
410 | "Target": "Parameter",
411 | "Id": "ParamBrowRY",
412 | "Segments": [
413 | 0,
414 | 0,
415 | 1,
416 | 0.067,
417 | 0,
418 | 0.133,
419 | 0,
420 | 0.2,
421 | 0,
422 | 1,
423 | 0.278,
424 | 0,
425 | 0.356,
426 | 0.11,
427 | 0.433,
428 | 0.11,
429 | 0,
430 | 4.167,
431 | 0.11
432 | ]
433 | },
434 | {
435 | "Target": "Parameter",
436 | "Id": "ParamBrowLX",
437 | "Segments": [
438 | 0,
439 | 0,
440 | 1,
441 | 0.067,
442 | 0,
443 | 0.133,
444 | 0,
445 | 0.2,
446 | 0,
447 | 1,
448 | 0.278,
449 | 0,
450 | 0.356,
451 | -0.48,
452 | 0.433,
453 | -0.48,
454 | 0,
455 | 4.167,
456 | -0.48
457 | ]
458 | },
459 | {
460 | "Target": "Parameter",
461 | "Id": "ParamBrowRX",
462 | "Segments": [
463 | 0,
464 | 0,
465 | 1,
466 | 0.067,
467 | 0,
468 | 0.133,
469 | 0,
470 | 0.2,
471 | 0,
472 | 1,
473 | 0.278,
474 | 0,
475 | 0.356,
476 | 0.29,
477 | 0.433,
478 | 0.29,
479 | 0,
480 | 4.167,
481 | 0.29
482 | ]
483 | },
484 | {
485 | "Target": "Parameter",
486 | "Id": "ParamBrowLAngle",
487 | "Segments": [
488 | 0,
489 | 0,
490 | 1,
491 | 0.067,
492 | 0,
493 | 0.133,
494 | 0,
495 | 0.2,
496 | 0,
497 | 1,
498 | 0.278,
499 | 0,
500 | 0.356,
501 | 1,
502 | 0.433,
503 | 1,
504 | 0,
505 | 4.167,
506 | 1
507 | ]
508 | },
509 | {
510 | "Target": "Parameter",
511 | "Id": "ParamBrowRAngle",
512 | "Segments": [
513 | 0,
514 | 0,
515 | 1,
516 | 0.067,
517 | 0,
518 | 0.133,
519 | 0,
520 | 0.2,
521 | 0,
522 | 1,
523 | 0.278,
524 | 0,
525 | 0.356,
526 | 0.85,
527 | 0.433,
528 | 0.85,
529 | 0,
530 | 4.167,
531 | 0.85
532 | ]
533 | },
534 | {
535 | "Target": "Parameter",
536 | "Id": "ParamBrowLForm",
537 | "Segments": [
538 | 0,
539 | 0,
540 | 1,
541 | 0.067,
542 | 0,
543 | 0.133,
544 | 0,
545 | 0.2,
546 | 0,
547 | 1,
548 | 0.278,
549 | 0,
550 | 0.356,
551 | -0.75,
552 | 0.433,
553 | -0.75,
554 | 0,
555 | 4.167,
556 | -0.75
557 | ]
558 | },
559 | {
560 | "Target": "Parameter",
561 | "Id": "ParamBrowRForm",
562 | "Segments": [
563 | 0,
564 | 0,
565 | 1,
566 | 0.067,
567 | 0,
568 | 0.133,
569 | 0,
570 | 0.2,
571 | 0,
572 | 1,
573 | 0.278,
574 | 0,
575 | 0.356,
576 | -0.87,
577 | 0.433,
578 | -0.87,
579 | 0,
580 | 4.167,
581 | -0.87
582 | ]
583 | },
584 | {
585 | "Target": "Parameter",
586 | "Id": "ParamMouthForm",
587 | "Segments": [
588 | 0,
589 | 1,
590 | 1,
591 | 0.067,
592 | 1,
593 | 0.133,
594 | 1,
595 | 0.2,
596 | 1,
597 | 1,
598 | 0.278,
599 | 1,
600 | 0.356,
601 | -1,
602 | 0.433,
603 | -1,
604 | 0,
605 | 4.167,
606 | -1
607 | ]
608 | },
609 | {
610 | "Target": "Parameter",
611 | "Id": "ParamMouthOpenY",
612 | "Segments": [
613 | 0,
614 | 0,
615 | 1,
616 | 0.067,
617 | 0,
618 | 0.133,
619 | 0,
620 | 0.2,
621 | 0,
622 | 1,
623 | 0.278,
624 | 0,
625 | 0.356,
626 | 1,
627 | 0.433,
628 | 1,
629 | 0,
630 | 4.167,
631 | 1
632 | ]
633 | },
634 | {
635 | "Target": "Parameter",
636 | "Id": "ParamBodyAngleX",
637 | "Segments": [
638 | 0,
639 | 0,
640 | 1,
641 | 0.067,
642 | 0,
643 | 0.133,
644 | 0,
645 | 0.2,
646 | 0,
647 | 1,
648 | 0.444,
649 | 0,
650 | 0.689,
651 | 0,
652 | 0.933,
653 | 0,
654 | 1,
655 | 1.211,
656 | 0,
657 | 1.489,
658 | 0,
659 | 1.767,
660 | 0,
661 | 1,
662 | 2.056,
663 | 0,
664 | 2.344,
665 | -6,
666 | 2.633,
667 | -6,
668 | 1,
669 | 3.033,
670 | -6,
671 | 3.433,
672 | 10,
673 | 3.833,
674 | 10,
675 | 0,
676 | 4.167,
677 | 10
678 | ]
679 | },
680 | {
681 | "Target": "Parameter",
682 | "Id": "ParamBodyAngleY",
683 | "Segments": [
684 | 0,
685 | 0,
686 | 1,
687 | 0.067,
688 | 0,
689 | 0.133,
690 | 0,
691 | 0.2,
692 | 0,
693 | 0,
694 | 4.167,
695 | 0
696 | ]
697 | },
698 | {
699 | "Target": "Parameter",
700 | "Id": "ParamBodyAngleZ",
701 | "Segments": [
702 | 0,
703 | 0,
704 | 1,
705 | 0.067,
706 | 0,
707 | 0.133,
708 | 0,
709 | 0.2,
710 | 0,
711 | 1,
712 | 0.8,
713 | 0,
714 | 1.4,
715 | -2,
716 | 2,
717 | -2,
718 | 1,
719 | 2.456,
720 | -2,
721 | 2.911,
722 | 8.125,
723 | 3.367,
724 | 8.125,
725 | 0,
726 | 4.167,
727 | 8.125
728 | ]
729 | },
730 | {
731 | "Target": "Parameter",
732 | "Id": "ParamBreath",
733 | "Segments": [
734 | 0,
735 | 0,
736 | 1,
737 | 0.067,
738 | 0,
739 | 0.133,
740 | 0,
741 | 0.2,
742 | 0,
743 | 0,
744 | 4.167,
745 | 0
746 | ]
747 | },
748 | {
749 | "Target": "Parameter",
750 | "Id": "ParamShoulder",
751 | "Segments": [
752 | 0,
753 | 0,
754 | 0,
755 | 4.167,
756 | 0
757 | ]
758 | },
759 | {
760 | "Target": "Parameter",
761 | "Id": "ParamLeg",
762 | "Segments": [
763 | 0,
764 | 1,
765 | 1,
766 | 0.667,
767 | 1,
768 | 1.333,
769 | 1,
770 | 2,
771 | 1,
772 | 1,
773 | 2.267,
774 | 1,
775 | 2.533,
776 | 0.948,
777 | 2.8,
778 | 0.948,
779 | 0,
780 | 4.167,
781 | 0.948
782 | ]
783 | },
784 | {
785 | "Target": "Parameter",
786 | "Id": "ParamArmLA",
787 | "Segments": [
788 | 0,
789 | 0,
790 | 1,
791 | 0.067,
792 | 0,
793 | 0.133,
794 | 0,
795 | 0.2,
796 | 0,
797 | 1,
798 | 0.233,
799 | 0,
800 | 0.267,
801 | 0,
802 | 0.3,
803 | 0,
804 | 1,
805 | 0.478,
806 | 0,
807 | 0.656,
808 | -10,
809 | 0.833,
810 | -10,
811 | 1,
812 | 0.922,
813 | -10,
814 | 1.011,
815 | -8.846,
816 | 1.1,
817 | -8.846,
818 | 1,
819 | 1.467,
820 | -8.846,
821 | 1.833,
822 | -8.835,
823 | 2.2,
824 | -9.1,
825 | 1,
826 | 2.622,
827 | -9.405,
828 | 3.044,
829 | -10,
830 | 3.467,
831 | -10,
832 | 0,
833 | 4.167,
834 | -10
835 | ]
836 | },
837 | {
838 | "Target": "Parameter",
839 | "Id": "ParamArmRA",
840 | "Segments": [
841 | 0,
842 | 0,
843 | 1,
844 | 0.067,
845 | 0,
846 | 0.133,
847 | 0,
848 | 0.2,
849 | 0,
850 | 1,
851 | 0.233,
852 | 0,
853 | 0.267,
854 | 0,
855 | 0.3,
856 | 0,
857 | 1,
858 | 0.478,
859 | 0,
860 | 0.656,
861 | -10,
862 | 0.833,
863 | -10,
864 | 1,
865 | 0.922,
866 | -10,
867 | 1.011,
868 | -8.972,
869 | 1.1,
870 | -8.846,
871 | 1,
872 | 1.467,
873 | -8.328,
874 | 1.833,
875 | -8.2,
876 | 2.2,
877 | -8.2,
878 | 1,
879 | 2.622,
880 | -8.2,
881 | 3.044,
882 | -10,
883 | 3.467,
884 | -10,
885 | 0,
886 | 4.167,
887 | -10
888 | ]
889 | },
890 | {
891 | "Target": "Parameter",
892 | "Id": "ParamArmLB",
893 | "Segments": [
894 | 0,
895 | 0,
896 | 0,
897 | 4.167,
898 | 0
899 | ]
900 | },
901 | {
902 | "Target": "Parameter",
903 | "Id": "ParamArmRB",
904 | "Segments": [
905 | 0,
906 | 0,
907 | 0,
908 | 4.167,
909 | 0
910 | ]
911 | },
912 | {
913 | "Target": "Parameter",
914 | "Id": "ParamHairAhoge",
915 | "Segments": [
916 | 0,
917 | 0,
918 | 1,
919 | 0.067,
920 | 0,
921 | 0.133,
922 | 0,
923 | 0.2,
924 | 0,
925 | 1,
926 | 0.233,
927 | 0,
928 | 0.267,
929 | -5,
930 | 0.3,
931 | -5,
932 | 1,
933 | 0.378,
934 | -5,
935 | 0.456,
936 | 10,
937 | 0.533,
938 | 10,
939 | 1,
940 | 0.633,
941 | 10,
942 | 0.733,
943 | 4,
944 | 0.833,
945 | 4,
946 | 0,
947 | 4.167,
948 | 4
949 | ]
950 | },
951 | {
952 | "Target": "PartOpacity",
953 | "Id": "PartArmA",
954 | "Segments": [
955 | 0,
956 | 1,
957 | 0,
958 | 4.17,
959 | 1
960 | ]
961 | },
962 | {
963 | "Target": "PartOpacity",
964 | "Id": "PartArmB",
965 | "Segments": [
966 | 0,
967 | 0,
968 | 0,
969 | 4.17,
970 | 0
971 | ]
972 | }
973 | ]
974 | }
--------------------------------------------------------------------------------
/src/DS2Native/DS2Native.cpp:
--------------------------------------------------------------------------------
1 | // DS2Native.cpp : Defines the exported functions for the DLL.
2 | //
3 |
4 | #include "framework.h"
5 | #include "DS2Native.h"
6 | #include
7 |
8 |
9 | ULONGLONG WINAPI DS2_GetLastInputTickCount(void) {
10 | LASTINPUTINFO lii = { sizeof(LASTINPUTINFO),0 };
11 | GetLastInputInfo(&lii);
12 | ULONGLONG tick = GetTickCount64();
13 | return tick - lii.dwTime;
14 | }
15 |
16 |
17 | HWND WINAPI DS2_GetDesktopWindowHandle(void) {
18 | HWND hWnd1 = FindWindow("Progman", NULL);
19 | SendMessageTimeout(hWnd1,
20 | 0x052c,
21 | NULL,
22 | NULL,
23 | SMTO_NORMAL,
24 | 1000,
25 | NULL);
26 |
27 | static HWND g_hWnd = NULL;
28 | EnumWindows([](HWND hWnd, LPARAM) {
29 | HWND hWnd2 = FindWindowEx(hWnd, NULL, "SHELLDLL_DefView", NULL);
30 | if (hWnd2) {
31 | g_hWnd = FindWindowEx(NULL, hWnd, "WorkerW", NULL);
32 | return FALSE;
33 | }
34 | return TRUE;
35 | }, NULL);
36 |
37 | return g_hWnd;
38 | }
39 |
40 |
41 | int WINAPI DS2_TestScreen(RECT rect) {
42 | static HWND g_hWnd = NULL;
43 | if (!g_hWnd) {
44 | EnumWindows([](HWND hWnd, LPARAM) {
45 | HWND hWnd1 = FindWindowEx(hWnd, NULL, "SHELLDLL_DefView", NULL);
46 | if (hWnd1) {
47 | g_hWnd = FindWindowEx(hWnd1, NULL, "SysListView32", NULL);
48 | return FALSE;
49 | }
50 | return TRUE;
51 | }, NULL);
52 | }
53 |
54 | const int offset = 4;
55 | int ic = 0;
56 | int x = rect.left + offset;
57 | int y = rect.top + offset;
58 | int w = rect.right - rect.left - offset * 2;
59 | int h = rect.bottom - rect.top - offset * 2;
60 |
61 | POINT ps[9] = {
62 | {x,y}, {x + (w / 2),y}, {x + w,y},
63 | {x,y + (h / 2)},{x + (w / 2),y + (h / 2)},{x + w,y + (h / 2)},
64 | {x,y + h}, {x + (w / 2),y + h}, {x + w,y + h}
65 | };
66 |
67 | for (size_t i = 0; i < 9; i++)
68 | {
69 | HWND hWnd2 = WindowFromPoint(ps[i]);
70 | if (hWnd2 == g_hWnd) {
71 | ++ic;
72 | }
73 | }
74 | return ic;
75 | }
76 |
77 |
78 | typedef struct {
79 | HWND hWnd;
80 | HWND hWndParent;
81 | RECT rect;
82 | LONG dwStyle;
83 | } LASTWINDOWINFO;
84 |
85 | LASTWINDOWINFO g_lwi;
86 |
87 |
88 | void WINAPI DS2_SetWindowPosition(HWND hWnd, RECT rect) {
89 | ShowWindow(hWnd, SW_RESTORE);
90 |
91 | RECT rect2 = { 0 };
92 | GetWindowRect(hWnd, &rect2);
93 | LONG dwStyle = GetWindowLong(hWnd, GWL_STYLE);
94 | HWND hWndParent = GetParent(hWnd);
95 | g_lwi = { hWnd,hWndParent,rect2,dwStyle };
96 |
97 | SetWindowLong(hWnd, GWL_STYLE, dwStyle & (~WS_CAPTION) & (~WS_SYSMENU) & (~WS_THICKFRAME));
98 | SetWindowPos(hWnd,
99 | HWND_TOP,
100 | rect.left,
101 | rect.top,
102 | rect.right - rect.left,
103 | rect.bottom - rect.top,
104 | SWP_SHOWWINDOW);
105 | }
106 |
107 |
108 | void WINAPI DS2_RestoreLastWindowPosition(void) {
109 | if (g_lwi.hWnd) {
110 | SetParent(g_lwi.hWnd, g_lwi.hWndParent);
111 | SetWindowLong(g_lwi.hWnd, GWL_STYLE, g_lwi.dwStyle);
112 | SetWindowPos(g_lwi.hWnd,
113 | HWND_TOP,
114 | g_lwi.rect.left,
115 | g_lwi.rect.top,
116 | g_lwi.rect.right - g_lwi.rect.left,
117 | g_lwi.rect.bottom - g_lwi.rect.top,
118 | SWP_SHOWWINDOW);
119 | }
120 | g_lwi = { 0 };
121 | }
122 |
123 |
124 | void WINAPI DS2_RefreshDesktop(BOOL animated) {
125 | if (animated) {
126 | HRESULT nRet = CoInitialize(NULL);
127 | if (SUCCEEDED(nRet)) {
128 | IDesktopWallpaper* pDesktopWallpaper = NULL;
129 | nRet = CoCreateInstance(CLSID_DesktopWallpaper, 0, CLSCTX_LOCAL_SERVER, IID_IDesktopWallpaper, (void**)&pDesktopWallpaper);
130 | if (SUCCEEDED(nRet)) {
131 | LPWSTR path = NULL;
132 | pDesktopWallpaper->GetWallpaper(NULL, &path);
133 | if (path && wcslen(path)) {
134 | pDesktopWallpaper->SetWallpaper(NULL, path);
135 | }
136 | else {
137 | COLORREF color;
138 | pDesktopWallpaper->GetBackgroundColor(&color);
139 | pDesktopWallpaper->SetBackgroundColor(color);
140 | }
141 | pDesktopWallpaper->Release();
142 | }
143 | CoUninitialize();
144 | }
145 | }
146 | else {
147 | SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_UPDATEINIFILE);
148 | }
149 | }
150 |
151 |
152 | BOOL WINAPI DS2_IsVisibleDesktopIcons(void) {
153 | SHELLSTATE state = { 0 };
154 | SHGetSetSettings(&state, SSF_HIDEICONS, FALSE);
155 | return !state.fHideIcons;
156 | }
157 |
158 |
159 | HWND GetDesktopSHELLDLL_DefView()
160 | {
161 | HWND hShellViewWin = NULL;
162 | HWND hWorkerW = NULL;
163 |
164 | HWND hProgman = FindWindow("Progman", "Program Manager");
165 | HWND hDesktopWnd = GetDesktopWindow();
166 |
167 | // If the main Program Manager window is found
168 | if (hProgman != NULL)
169 | {
170 | // Get and load the main List view window containing the icons.
171 | hShellViewWin = FindWindowEx(hProgman, NULL, "SHELLDLL_DefView", NULL);
172 | if (hShellViewWin == NULL)
173 | {
174 | // When this fails (picture rotation is turned ON, toggledesktop shell cmd used ), then look for the WorkerW windows list to get the
175 | // correct desktop list handle.
176 | // As there can be multiple WorkerW windows, iterate through all to get the correct one
177 | do
178 | {
179 | hWorkerW = FindWindowEx(hDesktopWnd, hWorkerW, "WorkerW", NULL);
180 | hShellViewWin = FindWindowEx(hWorkerW, NULL, "SHELLDLL_DefView", NULL);
181 | } while (hShellViewWin == NULL && hWorkerW != NULL);
182 | }
183 | }
184 | return hShellViewWin;
185 | }
186 |
187 |
188 | void WINAPI DS2_ToggleShowDesktopIcons(void) {
189 | HWND hShellViewWin = GetDesktopSHELLDLL_DefView();
190 | if (hShellViewWin) {
191 | SendMessage(hShellViewWin, WM_COMMAND, 0x7402, NULL);
192 | }
193 | }
194 |
195 |
196 | BOOL DS2_IsDesktop(void) {
197 | // Thanks: https://stackoverflow.com/a/56812642
198 | HWND hProgman = FindWindow("Progman", "Program Manager");
199 | HWND hWorkerW = NULL;
200 |
201 | // Get and load the main List view window containing the icons.
202 | HWND hShellViewWin = FindWindowEx(hProgman, NULL, "SHELLDLL_DefView", NULL);
203 | if (!hShellViewWin)
204 | {
205 | HWND hDesktopWnd = GetDesktopWindow();
206 |
207 | // When this fails (picture rotation is turned ON, toggledesktop shell cmd used ), then look for the WorkerW windows list to get the
208 | // correct desktop list handle.
209 | // As there can be multiple WorkerW windows, iterate through all to get the correct one
210 | do
211 | {
212 | hWorkerW = FindWindowEx(hDesktopWnd, hWorkerW, "WorkerW", NULL);
213 | hShellViewWin = FindWindowEx(hWorkerW, NULL, "SHELLDLL_DefView", NULL);
214 | } while (!hShellViewWin && hWorkerW);
215 | }
216 |
217 | HWND hForegroundWindow = GetForegroundWindow();
218 | return hForegroundWindow == hWorkerW || hForegroundWindow == hProgman;
219 | }
220 |
221 |
222 | HWND g_hWnd = NULL;
223 |
224 | LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
225 | if (nCode == HC_ACTION) {
226 | if (DS2_IsDesktop()) {
227 | KBDLLHOOKSTRUCT* p = (KBDLLHOOKSTRUCT*)lParam;
228 |
229 | if (wParam == WM_KEYDOWN) {
230 | int lp = 1 | (p->scanCode << 16) | (1 << 24) | (0 << 29) | (0 << 30) | (0 << 31);
231 | PostMessage(g_hWnd, (UINT)wParam, p->vkCode, lp);
232 | }
233 | else if (wParam == WM_KEYUP) {
234 | int lp = 1 | (p->scanCode << 16) | (1 << 24) | (0 << 29) | (1 << 30) | (1 << 31);
235 | PostMessage(g_hWnd, (UINT)wParam, p->vkCode, lp);
236 | }
237 | }
238 | }
239 | return CallNextHookEx(NULL, nCode, wParam, lParam);
240 | }
241 |
242 |
243 | LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
244 | if (nCode == HC_ACTION) {
245 | MSLLHOOKSTRUCT* p = (MSLLHOOKSTRUCT*)lParam;
246 | LONG lp = MAKELONG(p->pt.x, p->pt.y);
247 |
248 | if (DS2_IsDesktop()) {
249 | if (wParam == WM_MOUSEMOVE) {
250 | PostMessage(g_hWnd, (UINT)wParam, MK_XBUTTON1, lp);
251 | }
252 | else if (wParam == WM_LBUTTONDOWN || wParam == WM_LBUTTONUP) {
253 | PostMessage(g_hWnd, (UINT)wParam, MK_LBUTTON, lp);
254 | }
255 | else if (wParam == WM_MOUSEWHEEL) {
256 | // TODO:
257 | }
258 | }
259 | else if (wParam == WM_MOUSEMOVE) {
260 | RECT rect = { 0 };
261 | GetWindowRect(GetForegroundWindow(), &rect);
262 |
263 | if (!PtInRect(&rect, p->pt)) {
264 | PostMessage(g_hWnd, (UINT)wParam, MK_XBUTTON1, lp);
265 | }
266 | }
267 | }
268 | return CallNextHookEx(NULL, nCode, wParam, lParam);
269 | }
270 |
271 |
272 | HHOOK g_hLowLevelMouseHook = NULL;
273 | HHOOK g_hLowLevelKeyboardHook = NULL;
274 |
275 | BOOL WINAPI DS2_StartForwardMouseKeyboardMessage(HWND hWnd) {
276 | g_hWnd = hWnd;
277 |
278 | HMODULE hModule = GetModuleHandle(NULL);
279 | g_hLowLevelMouseHook = SetWindowsHookEx(WH_MOUSE_LL, LowLevelMouseProc, hModule, NULL);
280 | if (!g_hLowLevelMouseHook) {
281 | return FALSE;
282 | }
283 |
284 | g_hLowLevelKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hModule, NULL);
285 | return TRUE;
286 | }
287 |
288 |
289 | void WINAPI DS2_EndForwardMouseKeyboardMessage(void) {
290 | if (g_hLowLevelMouseHook) {
291 | UnhookWindowsHookEx(g_hLowLevelMouseHook);
292 | g_hLowLevelMouseHook = NULL;
293 | }
294 |
295 | if (g_hLowLevelKeyboardHook) {
296 | UnhookWindowsHookEx(g_hLowLevelKeyboardHook);
297 | g_hLowLevelKeyboardHook = NULL;
298 | }
299 | }
300 |
301 |
302 | typedef LONG(NTAPI* NtSuspendProcess)(IN HANDLE ProcessHandle);
303 | typedef LONG(NTAPI* NtResumeProcess)(IN HANDLE ProcessHandle);
304 |
305 | void WINAPI DS2_ToggleProcess(DWORD dwPID, BOOL bResumeProcess) {
306 | HMODULE hModule = GetModuleHandle("ntdll");
307 | if (hModule) {
308 | HANDLE processHandle = OpenProcess(PROCESS_SUSPEND_RESUME, FALSE, dwPID);
309 |
310 | if (bResumeProcess)
311 | {
312 | NtResumeProcess pfnNtResumeProcess = (NtResumeProcess)GetProcAddress(hModule, "NtResumeProcess");
313 | pfnNtResumeProcess(processHandle);
314 | }
315 | else
316 | {
317 | NtSuspendProcess pfnNtSuspendProcess = (NtSuspendProcess)GetProcAddress(hModule, "NtSuspendProcess");
318 | pfnNtSuspendProcess(processHandle);
319 | }
320 | CloseHandle(processHandle);
321 | }
322 | }
323 |
--------------------------------------------------------------------------------
/src/DS2Native/DS2Native.h:
--------------------------------------------------------------------------------
1 | // The following ifdef block is the standard way of creating macros which make exporting
2 | // from a DLL simpler. All files within this DLL are compiled with the DS2NATIVE_EXPORTS
3 | // symbol defined on the command line. This symbol should not be defined on any project
4 | // that uses this DLL. This way any other project whose source files include this file see
5 | // DS2NATIVE_API functions as being imported from a DLL, whereas this DLL sees symbols
6 | // defined with this macro as being exported.
7 | #ifdef DS2NATIVE_EXPORTS
8 | #define DS2NATIVE_API __declspec(dllexport)
9 | #else
10 | #define DS2NATIVE_API __declspec(dllimport)
11 | #endif
12 |
13 |
14 | #ifdef __cplusplus
15 | extern "C" {
16 | #endif
17 |
18 | DS2NATIVE_API ULONGLONG WINAPI DS2_GetLastInputTickCount(void);
19 | DS2NATIVE_API HWND WINAPI DS2_GetDesktopWindowHandle(void);
20 | DS2NATIVE_API int WINAPI DS2_TestScreen(RECT rect);
21 | DS2NATIVE_API void WINAPI DS2_SetWindowPosition(HWND hWnd, RECT rect);
22 | DS2NATIVE_API void WINAPI DS2_RestoreLastWindowPosition(void);
23 | DS2NATIVE_API void WINAPI DS2_RefreshDesktop(BOOL animated = FALSE);
24 | DS2NATIVE_API void WINAPI DS2_ToggleShowDesktopIcons(void);
25 | DS2NATIVE_API BOOL WINAPI DS2_IsVisibleDesktopIcons(void);
26 | DS2NATIVE_API BOOL WINAPI DS2_StartForwardMouseKeyboardMessage(HWND hWnd);
27 | DS2NATIVE_API void WINAPI DS2_EndForwardMouseKeyboardMessage(void);
28 | DS2NATIVE_API void WINAPI DS2_ToggleProcess(DWORD dwPID, BOOL bResumeProcess);
29 |
30 | #ifdef __cplusplus
31 | }
32 | #endif
33 |
--------------------------------------------------------------------------------
/src/DS2Native/DS2Native.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | 16.0
23 | Win32Proj
24 | {3eb67cd9-3814-4a20-89d5-c1bd393db163}
25 | DS2Native
26 | 10.0
27 |
28 |
29 |
30 | DynamicLibrary
31 | true
32 | v143
33 | MultiByte
34 |
35 |
36 | DynamicLibrary
37 | false
38 | v143
39 | true
40 | MultiByte
41 |
42 |
43 | DynamicLibrary
44 | true
45 | v143
46 | MultiByte
47 |
48 |
49 | DynamicLibrary
50 | false
51 | v143
52 | true
53 | MultiByte
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | true
75 | DS2Native
76 |
77 |
78 | false
79 | DS2Native
80 |
81 |
82 | true
83 | DS2Native
84 |
85 |
86 | false
87 | DS2Native
88 |
89 |
90 |
91 | Level3
92 | true
93 | WIN32;_DEBUG;DS2NATIVE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
94 | true
95 |
96 |
97 | Windows
98 | true
99 | false
100 |
101 |
102 |
103 |
104 | Level3
105 | true
106 | true
107 | true
108 | WIN32;NDEBUG;DS2NATIVE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
109 | true
110 |
111 |
112 | Windows
113 | true
114 | true
115 | true
116 | false
117 |
118 |
119 |
120 |
121 | Level3
122 | true
123 | _DEBUG;DS2NATIVE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
124 | true
125 |
126 |
127 | Windows
128 | true
129 | false
130 |
131 |
132 |
133 |
134 | Level3
135 | true
136 | true
137 | true
138 | NDEBUG;DS2NATIVE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
139 | true
140 |
141 |
142 | Windows
143 | true
144 | true
145 | true
146 | false
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
--------------------------------------------------------------------------------
/src/DS2Native/DS2Native.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Header Files
23 |
24 |
25 | Header Files
26 |
27 |
28 |
29 |
30 | Source Files
31 |
32 |
33 | Source Files
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/DS2Native/cpp.hint:
--------------------------------------------------------------------------------
1 | #define DS2NATIVE_API __declspec(dllexport)
2 | #define DS2NATIVE_API __declspec(dllimport)
3 |
--------------------------------------------------------------------------------
/src/DS2Native/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // dllmain.cpp : Defines the entry point for the DLL application.
2 | #include "framework.h"
3 |
4 | BOOL APIENTRY DllMain( HMODULE hModule,
5 | DWORD ul_reason_for_call,
6 | LPVOID lpReserved
7 | )
8 | {
9 | switch (ul_reason_for_call)
10 | {
11 | case DLL_PROCESS_ATTACH:
12 | case DLL_THREAD_ATTACH:
13 | case DLL_THREAD_DETACH:
14 | case DLL_PROCESS_DETACH:
15 | break;
16 | }
17 | return TRUE;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/src/DS2Native/framework.h:
--------------------------------------------------------------------------------
1 | // header.h : include file for standard system include files,
2 | // or project specific include files
3 | //
4 |
5 | #pragma once
6 |
7 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
8 | // Windows Header Files
9 | #include
10 |
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/DreamScene2 (Package).wapproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 15.0
5 |
6 |
7 |
8 | Debug
9 | x86
10 |
11 |
12 | Release
13 | x86
14 |
15 |
16 | Debug
17 | x64
18 |
19 |
20 | Release
21 | x64
22 |
23 |
24 |
25 | $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
26 |
27 |
28 |
29 | 5dc72ab8-ef9d-4130-a690-04897977bfcc
30 | 10.0.19041.0
31 | 10.0.14393.0
32 | zh-cn
33 | false
34 | $(NoWarn);NU1702
35 | ..\DreamScene2\DreamScene2.csproj
36 | True
37 |
38 |
39 |
40 | Designer
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Images/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2 (Package)/Images/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/src/DreamScene2 (Package)/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 | DreamScene2
16 | Weizhong He
17 | Images\StoreLogo.png
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
32 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/src/DreamScene2/AboutDialog.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace DreamScene2
3 | {
4 | partial class AboutDialog
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Windows Form Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.lblName = new System.Windows.Forms.Label();
33 | this.linkGit = new System.Windows.Forms.LinkLabel();
34 | this.btnClose = new System.Windows.Forms.Button();
35 | this.picLogo = new System.Windows.Forms.PictureBox();
36 | this.lblVersion = new System.Windows.Forms.Label();
37 | ((System.ComponentModel.ISupportInitialize)(this.picLogo)).BeginInit();
38 | this.SuspendLayout();
39 | //
40 | // lblName
41 | //
42 | this.lblName.AutoSize = true;
43 | this.lblName.Location = new System.Drawing.Point(105, 14);
44 | this.lblName.Name = "lblName";
45 | this.lblName.Size = new System.Drawing.Size(71, 12);
46 | this.lblName.TabIndex = 2;
47 | this.lblName.Text = "DreamScene2";
48 | //
49 | // linkGit
50 | //
51 | this.linkGit.AutoSize = true;
52 | this.linkGit.Location = new System.Drawing.Point(105, 56);
53 | this.linkGit.Name = "linkGit";
54 | this.linkGit.Size = new System.Drawing.Size(41, 12);
55 | this.linkGit.TabIndex = 4;
56 | this.linkGit.TabStop = true;
57 | this.linkGit.Text = "GitHub";
58 | this.linkGit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkGit_LinkClicked);
59 | //
60 | // btnClose
61 | //
62 | this.btnClose.Location = new System.Drawing.Point(160, 69);
63 | this.btnClose.Name = "btnClose";
64 | this.btnClose.Size = new System.Drawing.Size(75, 23);
65 | this.btnClose.TabIndex = 1;
66 | this.btnClose.Text = "确定";
67 | this.btnClose.UseVisualStyleBackColor = true;
68 | this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
69 | //
70 | // picLogo
71 | //
72 | this.picLogo.Image = global::DreamScene2.Properties.Resources.AppLogo;
73 | this.picLogo.Location = new System.Drawing.Point(12, 12);
74 | this.picLogo.Name = "picLogo";
75 | this.picLogo.Size = new System.Drawing.Size(80, 80);
76 | this.picLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
77 | this.picLogo.TabIndex = 0;
78 | this.picLogo.TabStop = false;
79 | //
80 | // lblVersion
81 | //
82 | this.lblVersion.AutoSize = true;
83 | this.lblVersion.Location = new System.Drawing.Point(105, 35);
84 | this.lblVersion.Name = "lblVersion";
85 | this.lblVersion.Size = new System.Drawing.Size(71, 12);
86 | this.lblVersion.TabIndex = 3;
87 | this.lblVersion.Text = "Version 1.0";
88 | //
89 | // AboutDialog
90 | //
91 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
92 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
93 | this.ClientSize = new System.Drawing.Size(246, 103);
94 | this.Controls.Add(this.lblVersion);
95 | this.Controls.Add(this.btnClose);
96 | this.Controls.Add(this.linkGit);
97 | this.Controls.Add(this.lblName);
98 | this.Controls.Add(this.picLogo);
99 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
100 | this.MaximizeBox = false;
101 | this.MinimizeBox = false;
102 | this.Name = "AboutDialog";
103 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
104 | this.Text = "关于 DreamScene2";
105 | ((System.ComponentModel.ISupportInitialize)(this.picLogo)).EndInit();
106 | this.ResumeLayout(false);
107 | this.PerformLayout();
108 |
109 | }
110 |
111 | #endregion
112 |
113 | private System.Windows.Forms.PictureBox picLogo;
114 | private System.Windows.Forms.Label lblName;
115 | private System.Windows.Forms.LinkLabel linkGit;
116 | private System.Windows.Forms.Button btnClose;
117 | private System.Windows.Forms.Label lblVersion;
118 | }
119 | }
--------------------------------------------------------------------------------
/src/DreamScene2/AboutDialog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace DreamScene2
5 | {
6 | public partial class AboutDialog : Form
7 | {
8 | public AboutDialog()
9 | {
10 | InitializeComponent();
11 | lblVersion.Text = "Version " + Constants.Version;
12 | this.Icon = DreamScene2.Properties.Resources.AppIcon;
13 | }
14 |
15 | private void btnClose_Click(object sender, EventArgs e)
16 | {
17 | this.Close();
18 | }
19 |
20 | private void linkGit_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
21 | {
22 | Helper.OpenLink("https://github.com/he55/DreamScene2");
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/DreamScene2/AboutDialog.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/src/DreamScene2/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/DreamScene2/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace DreamScene2
2 | {
3 | public static class Constants
4 | {
5 | public const string ProjectName = "DreamScene2";
6 | public const string Version = "1.7";
7 | public const string MainWindowTitle = ProjectName + " ";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/DreamScene2/DreamScene2.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WinExe
5 | net472
6 | true
7 | True
8 | Resources\AppIcon.ico
9 | x86;x64
10 | win7-x86;win7-x64
11 | app.manifest
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | True
21 | True
22 | Resources.resx
23 |
24 |
25 |
26 |
27 |
28 | ResXFileCodeGenerator
29 | Resources.Designer.cs
30 |
31 |
32 |
33 |
34 |
35 | PreserveNewest
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/DreamScene2/Helper.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System;
3 | using System.Diagnostics;
4 | using System.IO;
5 |
6 | namespace DreamScene2
7 | {
8 | public static class Helper
9 | {
10 | const string ProjectName = "DreamScene2";
11 | const string STARTUP_KEY = @"Software\Microsoft\Windows\CurrentVersion\Run";
12 | static string s_appPath;
13 |
14 | public static void OpenLink(string link)
15 | {
16 | Process.Start(new ProcessStartInfo
17 | {
18 | FileName = link,
19 | UseShellExecute = true
20 | });
21 | }
22 |
23 | public static string GetPathForStartupFolder(string subPath)
24 | {
25 | string executablePath = Process.GetCurrentProcess().MainModule.FileName;
26 | string startupPath = Path.GetDirectoryName(executablePath);
27 | return Path.Combine(startupPath, subPath);
28 | }
29 |
30 | public static string GetPathForUserAppDataFolder(string subPath)
31 | {
32 | if (s_appPath == null)
33 | {
34 | s_appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), ProjectName);
35 | if (!Directory.Exists(s_appPath))
36 | {
37 | Directory.CreateDirectory(s_appPath);
38 | }
39 | }
40 | return Path.Combine(s_appPath, subPath);
41 | }
42 |
43 | public static bool CheckStartOnBoot()
44 | {
45 | RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(STARTUP_KEY);
46 | bool startOnBoot = startupKey.GetValue(ProjectName) != null;
47 | startupKey.Close();
48 | return startOnBoot;
49 | }
50 |
51 | public static void SetStartOnBoot()
52 | {
53 | string executablePath = Process.GetCurrentProcess().MainModule.FileName;
54 | RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(STARTUP_KEY, true);
55 | startupKey.SetValue(ProjectName, $"\"{executablePath}\" -b");
56 | startupKey.Close();
57 | }
58 |
59 | public static void RemoveStartOnBoot()
60 | {
61 | RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(STARTUP_KEY, true);
62 | startupKey.DeleteValue(ProjectName);
63 | startupKey.Close();
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/DreamScene2/IPlayer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 |
4 | namespace DreamScene2
5 | {
6 | public interface IPlayer
7 | {
8 | IntPtr GetHandle();
9 | void SetPosition(Rectangle rect);
10 | void Shutdown();
11 | }
12 |
13 | public interface IPlayerControl
14 | {
15 | bool IsPlaying { get; }
16 | Uri Source { get; set; }
17 | bool IsMuted { get; set; }
18 | double Volume { get; set; }
19 |
20 | void Play();
21 | void Pause();
22 | }
23 |
24 | public interface IPlayerInteractive
25 | {
26 | IntPtr GetMessageHandle();
27 | }
28 |
29 | public enum WindowType
30 | {
31 | None,
32 | Video,
33 | Web,
34 | Window
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/DreamScene2/InputDialog.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace DreamScene2
3 | {
4 | partial class InputDialog
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Windows Form Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.label1 = new System.Windows.Forms.Label();
33 | this.txtUrl = new System.Windows.Forms.TextBox();
34 | this.btnConfirm = new System.Windows.Forms.Button();
35 | this.lblTipMsg = new System.Windows.Forms.Label();
36 | this.SuspendLayout();
37 | //
38 | // label1
39 | //
40 | this.label1.AutoSize = true;
41 | this.label1.Location = new System.Drawing.Point(12, 12);
42 | this.label1.Name = "label1";
43 | this.label1.Size = new System.Drawing.Size(71, 12);
44 | this.label1.TabIndex = 1;
45 | this.label1.Text = "请输入 URL:";
46 | //
47 | // txtUrl
48 | //
49 | this.txtUrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
50 | | System.Windows.Forms.AnchorStyles.Right)));
51 | this.txtUrl.Location = new System.Drawing.Point(12, 36);
52 | this.txtUrl.Name = "txtUrl";
53 | this.txtUrl.Size = new System.Drawing.Size(259, 21);
54 | this.txtUrl.TabIndex = 2;
55 | this.txtUrl.Text = "https://";
56 | //
57 | // btnConfirm
58 | //
59 | this.btnConfirm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
60 | this.btnConfirm.Location = new System.Drawing.Point(196, 68);
61 | this.btnConfirm.Name = "btnConfirm";
62 | this.btnConfirm.Size = new System.Drawing.Size(75, 23);
63 | this.btnConfirm.TabIndex = 4;
64 | this.btnConfirm.Text = "确定";
65 | this.btnConfirm.UseVisualStyleBackColor = true;
66 | this.btnConfirm.Click += new System.EventHandler(this.btnConfirm_Click);
67 | //
68 | // lblTipMsg
69 | //
70 | this.lblTipMsg.AutoSize = true;
71 | this.lblTipMsg.ForeColor = System.Drawing.Color.Red;
72 | this.lblTipMsg.Location = new System.Drawing.Point(12, 73);
73 | this.lblTipMsg.Name = "lblTipMsg";
74 | this.lblTipMsg.Size = new System.Drawing.Size(59, 12);
75 | this.lblTipMsg.TabIndex = 3;
76 | this.lblTipMsg.Text = "提示信息:";
77 | //
78 | // InputDialog
79 | //
80 | this.AcceptButton = this.btnConfirm;
81 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
82 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
83 | this.ClientSize = new System.Drawing.Size(280, 99);
84 | this.Controls.Add(this.lblTipMsg);
85 | this.Controls.Add(this.btnConfirm);
86 | this.Controls.Add(this.txtUrl);
87 | this.Controls.Add(this.label1);
88 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
89 | this.MaximizeBox = false;
90 | this.MinimizeBox = false;
91 | this.Name = "InputDialog";
92 | this.ShowInTaskbar = false;
93 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
94 | this.Text = "DreamScene2";
95 | this.ResumeLayout(false);
96 | this.PerformLayout();
97 |
98 | }
99 |
100 | #endregion
101 |
102 | private System.Windows.Forms.Label label1;
103 | private System.Windows.Forms.TextBox txtUrl;
104 | private System.Windows.Forms.Button btnConfirm;
105 | private System.Windows.Forms.Label lblTipMsg;
106 | }
107 | }
--------------------------------------------------------------------------------
/src/DreamScene2/InputDialog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace DreamScene2
5 | {
6 | public partial class InputDialog : Form
7 | {
8 | public InputDialog()
9 | {
10 | InitializeComponent();
11 | this.Icon = DreamScene2.Properties.Resources.AppIcon;
12 | lblTipMsg.Text = "";
13 | }
14 |
15 | public string URL => txtUrl.Text;
16 |
17 | private void btnConfirm_Click(object sender, EventArgs e)
18 | {
19 | if (string.IsNullOrEmpty(txtUrl.Text))
20 | {
21 | lblTipMsg.Text = "输入不能为空";
22 | return;
23 | }
24 |
25 | try
26 | {
27 | _ = new Uri(txtUrl.Text);
28 | }
29 | catch
30 | {
31 | lblTipMsg.Text = "输入的 URL 无效";
32 | return;
33 | }
34 |
35 | this.DialogResult = DialogResult.OK;
36 | this.Close();
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/DreamScene2/InputDialog.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/src/DreamScene2/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 135, 17
125 |
126 |
--------------------------------------------------------------------------------
/src/DreamScene2/NativeMethods.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Text;
4 |
5 | namespace DreamScene2
6 | {
7 | public static class NativeMethods
8 | {
9 | [DllImport("User32.dll")]
10 | public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
11 |
12 | [DllImport("User32.dll")]
13 | public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
14 |
15 | [DllImport("User32.dll")]
16 | public static extern IntPtr FindWindowEx(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);
17 |
18 | [DllImport("User32.dll")]
19 | [return: MarshalAs(UnmanagedType.Bool)]
20 | public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
21 |
22 | [DllImport("User32.dll")]
23 | [return: MarshalAs(UnmanagedType.Bool)]
24 | public static extern bool SetForegroundWindow(IntPtr hWnd);
25 |
26 | [DllImport("User32.dll")]
27 | [return: MarshalAs(UnmanagedType.Bool)]
28 | public static extern bool IsWindowVisible(IntPtr hWnd);
29 |
30 | [DllImport("User32.dll")]
31 | public static extern IntPtr GetParent(IntPtr hWnd);
32 |
33 | [DllImport("User32.dll")]
34 | public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
35 |
36 | [DllImport("User32.dll")]
37 | public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
38 |
39 | [DllImport("User32.dll")]
40 | [return: MarshalAs(UnmanagedType.Bool)]
41 | public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
42 |
43 | [DllImport("User32.dll")]
44 | [return: MarshalAs(UnmanagedType.Bool)]
45 | public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
46 |
47 |
48 | [DllImport("DS2Native.dll")]
49 | public static extern ulong DS2_GetLastInputTickCount();
50 |
51 | [DllImport("DS2Native.dll")]
52 | public static extern IntPtr DS2_GetDesktopWindowHandle();
53 |
54 | [DllImport("DS2Native.dll")]
55 | public static extern int DS2_TestScreen(RECT rect);
56 |
57 | [DllImport("DS2Native.dll")]
58 | public static extern void DS2_SetWindowPosition(IntPtr hWnd, RECT rect);
59 |
60 | [DllImport("DS2Native.dll")]
61 | public static extern void DS2_RestoreLastWindowPosition();
62 |
63 | [DllImport("DS2Native.dll")]
64 | public static extern void DS2_RefreshDesktop(int animated = 0);
65 |
66 | [DllImport("DS2Native.dll")]
67 | public static extern void DS2_ToggleShowDesktopIcons();
68 |
69 | [DllImport("DS2Native.dll")]
70 | public static extern int DS2_IsVisibleDesktopIcons();
71 |
72 | [DllImport("DS2Native.dll")]
73 | public static extern int DS2_StartForwardMouseKeyboardMessage(IntPtr hWnd);
74 |
75 | [DllImport("DS2Native.dll")]
76 | public static extern void DS2_EndForwardMouseKeyboardMessage();
77 |
78 | [DllImport("DS2Native.dll")]
79 | public static extern void DS2_ToggleProcess(uint dwPID, int bResumeProcess);
80 | }
81 |
82 | public struct RECT
83 | {
84 | public int left;
85 | public int top;
86 | public int right;
87 | public int bottom;
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/src/DreamScene2/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Windows.Forms;
4 |
5 | namespace DreamScene2
6 | {
7 | internal static class Program
8 | {
9 | [DllImport("Kernel32.dll")]
10 | static extern IntPtr LoadLibrary(string lpFileName);
11 |
12 | ///
13 | /// The main entry point for the application.
14 | ///
15 | [STAThread]
16 | static void Main(string[] args)
17 | {
18 | IntPtr hwnd = NativeMethods.FindWindow(null, Constants.MainWindowTitle);
19 | if (hwnd != IntPtr.Zero)
20 | {
21 | const int SW_RESTORE = 9;
22 | NativeMethods.ShowWindow(hwnd, SW_RESTORE);
23 | NativeMethods.SetForegroundWindow(hwnd);
24 | return;
25 | }
26 |
27 | string dllPath = Helper.GetPathForStartupFolder("DS2Native.dll");
28 | LoadLibrary(dllPath);
29 |
30 | #if NETCOREAPP3_0_OR_GREATER
31 | Application.SetHighDpiMode(HighDpiMode.SystemAware);
32 | #endif
33 |
34 | Application.EnableVisualStyles();
35 | Application.SetCompatibleTextRenderingDefault(false);
36 |
37 | if (args.Length == 0)
38 | {
39 | Application.Run(new MainForm());
40 | return;
41 | }
42 |
43 | if (args[0] == "-b" || args[0] == "--background")
44 | {
45 | MainForm mainForm = new MainForm();
46 | if (args.Length > 1)
47 | mainForm.PlayPath = args[1];
48 | mainForm.Opacity = 0;
49 | mainForm.Show();
50 |
51 | mainForm.Hide();
52 | mainForm.Opacity = 1;
53 | Application.Run();
54 | }
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/DreamScene2/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace DreamScene2.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DreamScene2.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
65 | ///
66 | internal static System.Drawing.Icon AppIcon {
67 | get {
68 | object obj = ResourceManager.GetObject("AppIcon", resourceCulture);
69 | return ((System.Drawing.Icon)(obj));
70 | }
71 | }
72 |
73 | ///
74 | /// Looks up a localized resource of type System.Drawing.Bitmap.
75 | ///
76 | internal static System.Drawing.Bitmap AppLogo {
77 | get {
78 | object obj = ResourceManager.GetObject("AppLogo", resourceCulture);
79 | return ((System.Drawing.Bitmap)(obj));
80 | }
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/src/DreamScene2/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\Resources\AppIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
125 | ..\Resources\AppLogo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
126 |
127 |
--------------------------------------------------------------------------------
/src/DreamScene2/RecentFile.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.IO;
3 |
4 | namespace DreamScene2
5 | {
6 | public static class RecentFile
7 | {
8 | static readonly string s_recentPath = Helper.GetPathForUserAppDataFolder("recent.txt");
9 | static readonly List s_recentFiles = new List();
10 |
11 | public static List Load()
12 | {
13 | if (File.Exists(s_recentPath))
14 | {
15 | string[] paths = File.ReadAllLines(s_recentPath);
16 | s_recentFiles.AddRange(paths);
17 | }
18 | return s_recentFiles;
19 | }
20 |
21 | public static void Save()
22 | {
23 | File.WriteAllLines(s_recentPath, s_recentFiles);
24 | }
25 |
26 | public static void Clean()
27 | {
28 | s_recentFiles.Clear();
29 | File.WriteAllText(s_recentPath, "");
30 | }
31 |
32 | public static void Update(string path)
33 | {
34 | if (s_recentFiles.Count == 0 || s_recentFiles[0] != path)
35 | {
36 | if (s_recentFiles.Contains(path))
37 | s_recentFiles.Remove(path);
38 |
39 | s_recentFiles.Insert(0, path);
40 | Save();
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/DreamScene2/RectangleExtensions.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 |
3 | namespace DreamScene2
4 | {
5 | public static class RectangleExtensions
6 | {
7 | public static RECT ToRECT(this Rectangle @this)
8 | {
9 | RECT rect;
10 | rect.left = @this.Left;
11 | rect.top = @this.Top;
12 | rect.right = @this.Right;
13 | rect.bottom = @this.Bottom;
14 | return rect;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/DreamScene2/Resources/AppIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2/Resources/AppIcon.ico
--------------------------------------------------------------------------------
/src/DreamScene2/Resources/AppLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/he55/DreamScene2/03ece1b592f7baed36c8ff1975323082e893317b/src/DreamScene2/Resources/AppLogo.png
--------------------------------------------------------------------------------
/src/DreamScene2/Settings.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using System.Xml.Serialization;
3 |
4 | namespace DreamScene2
5 | {
6 | public class Settings
7 | {
8 | static string s_filePath = Helper.GetPathForUserAppDataFolder("settings.xml");
9 | static Settings s_settings;
10 |
11 | private Settings() { }
12 |
13 | public bool FirstRun { get; set; } = true;
14 | public bool AutoPlay { get; set; } = true;
15 | public int PlayMode { get; set; }
16 |
17 | public bool AutoPause1 { get; set; }
18 | public bool AutoPause2 { get; set; }
19 | public bool AutoPause3 { get; set; }
20 |
21 | public bool IsMuted { get; set; }
22 | public bool DisableWebSecurity { get; set; } = true;
23 | public bool UseDesktopInteraction { get; set; } = true;
24 |
25 | public bool CanPause()
26 | {
27 | return AutoPause1 || AutoPause2 || AutoPause3;
28 | }
29 |
30 | public static Settings Load()
31 | {
32 | if (s_settings != null)
33 | return s_settings;
34 |
35 | if (!File.Exists(s_filePath))
36 | {
37 | s_settings = new Settings();
38 | return s_settings;
39 | }
40 |
41 | using (FileStream fileStream = File.OpenRead(s_filePath))
42 | {
43 | XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings));
44 | s_settings = (Settings)xmlSerializer.Deserialize(fileStream);
45 | }
46 | return s_settings;
47 | }
48 |
49 | public static void Save()
50 | {
51 | using (FileStream fileStream = File.Create(s_filePath))
52 | {
53 | XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings));
54 | xmlSerializer.Serialize(fileStream, s_settings);
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/DreamScene2/VideoWindow.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DreamScene2/VideoWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Windows;
4 | using System.Windows.Interop;
5 |
6 | namespace DreamScene2
7 | {
8 | public partial class VideoWindow : Window, IPlayer, IPlayerControl
9 | {
10 | public VideoWindow()
11 | {
12 | InitializeComponent();
13 | }
14 |
15 | public IntPtr GetHandle()
16 | {
17 | return new WindowInteropHelper(this).Handle;
18 | }
19 |
20 | public void SetPosition(Rectangle rect)
21 | {
22 | this.WindowStyle = WindowStyle.None;
23 | this.ResizeMode = ResizeMode.NoResize;
24 | this.Left = rect.Left;
25 | this.Top = rect.Top;
26 | this.Width = rect.Width;
27 | this.Height = rect.Height;
28 | }
29 |
30 | public void Shutdown()
31 | {
32 | this.Close();
33 | }
34 |
35 | public bool IsPlaying { get; private set; }
36 |
37 | public Uri Source
38 | {
39 | get => mediaElement.Source;
40 | set => mediaElement.Source = value;
41 | }
42 |
43 | public double Volume
44 | {
45 | get => mediaElement.Volume;
46 | set => mediaElement.Volume = value;
47 | }
48 |
49 | public bool IsMuted
50 | {
51 | get => mediaElement.IsMuted;
52 | set => mediaElement.IsMuted = value;
53 | }
54 |
55 | public void Play()
56 | {
57 | mediaElement.Play();
58 | IsPlaying = true;
59 | }
60 |
61 | public void Pause()
62 | {
63 | mediaElement.Pause();
64 | IsPlaying = false;
65 | }
66 |
67 | private void mediaElement_MediaEnded(object sender, RoutedEventArgs e)
68 | {
69 | mediaElement.Position = TimeSpan.Zero;
70 | mediaElement.Play();
71 | }
72 |
73 | protected override void OnClosed(EventArgs e)
74 | {
75 | mediaElement.Close();
76 | mediaElement = null;
77 | }
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/src/DreamScene2/WebWindow.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/DreamScene2/WebWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Web.WebView2.Core;
2 | using System;
3 | using System.Drawing;
4 | using System.IO;
5 | using System.Windows;
6 | using System.Windows.Interop;
7 |
8 | namespace DreamScene2
9 | {
10 | public partial class WebWindow : Window, IPlayer, IPlayerControl, IPlayerInteractive
11 | {
12 | WebWindowOptions _webWindowOptions;
13 | uint _d3dRenderingSubProcessPid;
14 |
15 | public WebWindow(WebWindowOptions webWindowOptions)
16 | {
17 | _webWindowOptions = webWindowOptions;
18 | InitializeComponent();
19 | InitializeCoreWebView2Environment();
20 | }
21 |
22 | async void InitializeCoreWebView2Environment()
23 | {
24 | string args = "--autoplay-policy=no-user-gesture-required ";
25 | if (_webWindowOptions.DisableWebSecurity)
26 | args += "--disable-web-security";
27 |
28 | CoreWebView2Environment coreWebView2Environment = await CoreWebView2Environment.CreateAsync(null, _webWindowOptions.UserDataFolder, new CoreWebView2EnvironmentOptions(args));
29 | await webView2.EnsureCoreWebView2Async(coreWebView2Environment);
30 | webView2.CoreWebView2.IsMuted = _webWindowOptions.IsMuted;
31 |
32 | IsPlaying = true;
33 |
34 | string script = File.ReadAllText(Helper.GetPathForStartupFolder("script.js"));
35 | await webView2.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync(script);
36 | }
37 |
38 | public IntPtr GetHandle()
39 | {
40 | return new WindowInteropHelper(this).Handle;
41 | }
42 |
43 | public void SetPosition(Rectangle rect)
44 | {
45 | this.WindowStyle = WindowStyle.None;
46 | this.ResizeMode = ResizeMode.NoResize;
47 | this.Left = rect.Left;
48 | this.Top = rect.Top;
49 | this.Width = rect.Width;
50 | this.Height = rect.Height;
51 | }
52 |
53 | public void Shutdown()
54 | {
55 | this.Close();
56 | }
57 |
58 | public bool IsPlaying { get; private set; }
59 |
60 | public Uri Source
61 | {
62 | get => webView2.Source;
63 | set => webView2.Source = value;
64 | }
65 |
66 | public bool IsMuted
67 | {
68 | get => webView2.CoreWebView2.IsMuted;
69 | set => webView2.CoreWebView2.IsMuted = value;
70 | }
71 |
72 | public double Volume { get; set; }
73 |
74 | public void Play()
75 | {
76 | NativeMethods.DS2_ToggleProcess(_d3dRenderingSubProcessPid, 1);
77 | IsPlaying = true;
78 | }
79 |
80 | public void Pause()
81 | {
82 | _d3dRenderingSubProcessPid = GetD3DRenderingSubProcessPid();
83 | NativeMethods.DS2_ToggleProcess(_d3dRenderingSubProcessPid, 0);
84 | IsPlaying = false;
85 | }
86 |
87 | public IntPtr GetMessageHandle()
88 | {
89 | IntPtr chrome_WidgetWin_0 = NativeMethods.FindWindowEx(webView2.Handle, IntPtr.Zero, "Chrome_WidgetWin_0", null);
90 | if (chrome_WidgetWin_0 == IntPtr.Zero)
91 | return IntPtr.Zero;
92 | return NativeMethods.FindWindowEx(chrome_WidgetWin_0, IntPtr.Zero, "Chrome_WidgetWin_1", null);
93 | }
94 |
95 | public uint GetD3DRenderingSubProcessPid()
96 | {
97 | IntPtr chrome_WidgetWin_1 = GetMessageHandle();
98 | if (chrome_WidgetWin_1 != IntPtr.Zero)
99 | {
100 | IntPtr d3dWindowHandle = NativeMethods.FindWindowEx(chrome_WidgetWin_1, IntPtr.Zero, "Intermediate D3D Window", null);
101 | NativeMethods.GetWindowThreadProcessId(d3dWindowHandle, out uint pid);
102 | return pid;
103 | }
104 | return 0;
105 | }
106 |
107 | protected override void OnClosed(EventArgs e)
108 | {
109 | webView2.Dispose();
110 | webView2 = null;
111 | }
112 |
113 | public static bool TryGetWebView2Version(out string version)
114 | {
115 | try
116 | {
117 | version = CoreWebView2Environment.GetAvailableBrowserVersionString();
118 | return true;
119 | }
120 | catch
121 | {
122 | version = null;
123 | return false;
124 | }
125 | }
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/src/DreamScene2/WebWindowOptions.cs:
--------------------------------------------------------------------------------
1 | namespace DreamScene2
2 | {
3 | public class WebWindowOptions
4 | {
5 | public string UserDataFolder { get; set; }
6 | public bool DisableWebSecurity { get; set; }
7 | public bool IsMuted { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/DreamScene2/WindowPlayer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 |
4 | namespace DreamScene2
5 | {
6 | public class WindowPlayer : IPlayer
7 | {
8 | IntPtr _windowHandle;
9 |
10 | public WindowPlayer(IntPtr windowHandle)
11 | {
12 | _windowHandle = windowHandle;
13 | }
14 |
15 | public IntPtr GetHandle()
16 | {
17 | return _windowHandle;
18 | }
19 |
20 | public void SetPosition(Rectangle rect)
21 | {
22 | NativeMethods.DS2_SetWindowPosition(_windowHandle, rect.ToRECT());
23 | }
24 |
25 | public void Shutdown()
26 | {
27 | _windowHandle = IntPtr.Zero;
28 | NativeMethods.DS2_RestoreLastWindowPosition();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/DreamScene2/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
54 |
62 |
63 |
64 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/DreamScene2/script.js:
--------------------------------------------------------------------------------
1 | // @name bilibili 自动网页全屏
2 | // @author sangkuanji
3 | // @license MIT
4 |
5 | (function () {
6 | if (location.hostname == 'www.bilibili.com' && /\/video\/BV/i.test(location.pathname)) {
7 | window.addEventListener('load', function () {
8 | console.log("load success");
9 | let elementNames = ["bpx-player-ctrl-web-enter", "bilibili-player-iconfont-web-fullscreen-off", "player_pagefullscreen_player", "squirtle-pagefullscreen-inactive"];
10 | for (var i = 0; i < elementNames.length; i++) {
11 | waitElement(elementNames[i]);
12 | }
13 | });
14 | }
15 |
16 | function waitElement(elementName) {
17 | var _times = 20,
18 | _interval = 1000,
19 | _self = document.getElementsByClassName(elementName)[0],
20 | _iIntervalID;
21 | if (_self != undefined) {
22 | _self.click();
23 | } else {
24 | _iIntervalID = setInterval(function () {
25 | if (!_times) {
26 | clearInterval(_iIntervalID);
27 | }
28 | _times <= 0 || _times--;
29 | _self = document.getElementsByClassName(elementName)[0];
30 | if (_self == undefined) {
31 | _self = document.getElementById(elementName);
32 | }
33 | if (_self != undefined) {
34 | _self.click();
35 | clearInterval(_iIntervalID);
36 | }
37 | }, _interval);
38 | }
39 | }
40 | })();
--------------------------------------------------------------------------------