Skip to content

Commit 358d038

Browse files
author
arch
committed
add keyboard shortcuts to doc
1 parent 43cf29d commit 358d038

File tree

12 files changed

+218
-9
lines changed

12 files changed

+218
-9
lines changed

docs/app/docs/index.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,45 @@ A Python program to quickly create prototype algorithms to partially automate th
44

55
**NOTE:** The program is currently not intended for productive use. But you can do whatever you want with this tool.
66

7+
## UI
8+
9+
The UI use an embedded mpv video player and matplotlib to draw the actions timeseries at the bottom.
10+
11+
### Keyboard Shortcuts
12+
13+
| Key | Function |
14+
| -------------------- | --------------------------- |
15+
| P | Pause / Playback |
16+
| . | Next frame |
17+
| , | Previous frame |
18+
| [ | Decrease speed |
19+
| ] | Increase speed |
20+
| Ctrl + Shift + Left | Previous Action Point |
21+
| Ctrl + Shift + Right | Next Action Point |
22+
| Shift + L | Loop Video |
23+
| W | Move Stroke Indicator Up |
24+
| A | Move Stroke Indicator Left |
25+
| S | Move Stroke Indicator Down |
26+
| D | Move Stroke Indicator Right |
27+
| Ctrl + I | Invert Stroke Indicator |
28+
| Ctrl + Plus | Increase Stroke Indicator |
29+
| Ctrl + Minus | Decrease Stroke Indicator |
30+
| Gtrl + G | Start Funscript Generator |
31+
| Shift + Pos1 | First Action Point |
32+
| Shift + End | Last Action Point |
33+
| Pos1 | Jump to Video Start |
34+
| End | Jump to Video End |
35+
| 0 | Add Action Point at 0% |
36+
| 1 | Add Action Point at 10% |
37+
| 2 | Add Action Point at 20% |
38+
| 3 | Add Action Point at 30% |
39+
| 4 | Add Action Point at 40% |
40+
| 5 | Add Action Point at 50% |
41+
| 6 | Add Action Point at 60% |
42+
| 7 | Add Action Point at 70% |
43+
| 8 | Add Action Point at 80% |
44+
| 9 | Add Action Point at 90% |
45+
746
## Algorithms
847

948
### Create Funscript Action using OpenCV Tracker

docs/app/site/index.html

Lines changed: 138 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454

5555
<li class="nav-item" data-level="1"><a href="#python-funscript-editor" class="nav-link">Python Funscript Editor</a>
5656
<ul class="nav flex-column">
57+
<li class="nav-item" data-level="2"><a href="#ui" class="nav-link">UI</a>
58+
<ul class="nav flex-column">
59+
</ul>
60+
</li>
5761
<li class="nav-item" data-level="2"><a href="#algorithms" class="nav-link">Algorithms</a>
5862
<ul class="nav flex-column">
5963
</ul>
@@ -68,6 +72,139 @@
6872
<h1 id="python-funscript-editor">Python Funscript Editor</h1>
6973
<p>A Python program to quickly create prototype algorithms to partially automate the generation of funscripts.</p>
7074
<p><strong>NOTE:</strong> The program is currently not intended for productive use. But you can do whatever you want with this tool.</p>
75+
<h2 id="ui">UI</h2>
76+
<p>The UI use an embedded mpv video player and matplotlib to draw the actions timeseries at the bottom.</p>
77+
<h3 id="keyboard-shortcuts">Keyboard Shortcuts</h3>
78+
<table>
79+
<thead>
80+
<tr>
81+
<th>Key</th>
82+
<th>Function</th>
83+
</tr>
84+
</thead>
85+
<tbody>
86+
<tr>
87+
<td>P</td>
88+
<td>Pause / Playback</td>
89+
</tr>
90+
<tr>
91+
<td>.</td>
92+
<td>Next frame</td>
93+
</tr>
94+
<tr>
95+
<td>,</td>
96+
<td>Previous frame</td>
97+
</tr>
98+
<tr>
99+
<td>[</td>
100+
<td>Decrease speed</td>
101+
</tr>
102+
<tr>
103+
<td>]</td>
104+
<td>Increase speed</td>
105+
</tr>
106+
<tr>
107+
<td>Ctrl + Shift + Left</td>
108+
<td>Previous Action Point</td>
109+
</tr>
110+
<tr>
111+
<td>Ctrl + Shift + Right</td>
112+
<td>Next Action Point</td>
113+
</tr>
114+
<tr>
115+
<td>Shift + L</td>
116+
<td>Loop Video</td>
117+
</tr>
118+
<tr>
119+
<td>W</td>
120+
<td>Move Stroke Indicator Up</td>
121+
</tr>
122+
<tr>
123+
<td>A</td>
124+
<td>Move Stroke Indicator Left</td>
125+
</tr>
126+
<tr>
127+
<td>S</td>
128+
<td>Move Stroke Indicator Down</td>
129+
</tr>
130+
<tr>
131+
<td>D</td>
132+
<td>Move Stroke Indicator Right</td>
133+
</tr>
134+
<tr>
135+
<td>Ctrl + I</td>
136+
<td>Invert Stroke Indicator</td>
137+
</tr>
138+
<tr>
139+
<td>Ctrl + Plus</td>
140+
<td>Increase Stroke Indicator</td>
141+
</tr>
142+
<tr>
143+
<td>Ctrl + Minus</td>
144+
<td>Decrease Stroke Indicator</td>
145+
</tr>
146+
<tr>
147+
<td>Gtrl + G</td>
148+
<td>Start Funscript Generator</td>
149+
</tr>
150+
<tr>
151+
<td>Shift + Pos1</td>
152+
<td>First Action Point</td>
153+
</tr>
154+
<tr>
155+
<td>Shift + End</td>
156+
<td>Last Action Point</td>
157+
</tr>
158+
<tr>
159+
<td>Pos1</td>
160+
<td>Jump to Video Start</td>
161+
</tr>
162+
<tr>
163+
<td>End</td>
164+
<td>Jump to Video End</td>
165+
</tr>
166+
<tr>
167+
<td>0</td>
168+
<td>Add Action Point at 0%</td>
169+
</tr>
170+
<tr>
171+
<td>1</td>
172+
<td>Add Action Point at 10%</td>
173+
</tr>
174+
<tr>
175+
<td>2</td>
176+
<td>Add Action Point at 20%</td>
177+
</tr>
178+
<tr>
179+
<td>3</td>
180+
<td>Add Action Point at 30%</td>
181+
</tr>
182+
<tr>
183+
<td>4</td>
184+
<td>Add Action Point at 40%</td>
185+
</tr>
186+
<tr>
187+
<td>5</td>
188+
<td>Add Action Point at 50%</td>
189+
</tr>
190+
<tr>
191+
<td>6</td>
192+
<td>Add Action Point at 60%</td>
193+
</tr>
194+
<tr>
195+
<td>7</td>
196+
<td>Add Action Point at 70%</td>
197+
</tr>
198+
<tr>
199+
<td>8</td>
200+
<td>Add Action Point at 80%</td>
201+
</tr>
202+
<tr>
203+
<td>9</td>
204+
<td>Add Action Point at 90%</td>
205+
</tr>
206+
</tbody>
207+
</table>
71208
<h2 id="algorithms">Algorithms</h2>
72209
<h3 id="create-funscript-action-using-opencv-tracker">Create Funscript Action using OpenCV Tracker</h3>
73210
<p>Idea: By using <a href="https://learnopencv.com/object-tracking-using-opencv-cpp-python/">OpenCV Tracker</a>, we can determine the relative movements in a static camera setup and map them into Funscript actions using simple signal processing.</p>
@@ -183,5 +320,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
183320

184321
<!--
185322
MkDocs version : 1.1.2
186-
Build Date UTC : 2021-06-20 14:05:59.620245+00:00
323+
Build Date UTC : 2021-06-23 18:38:21.986284+00:00
187324
-->
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Python Funscript Editor A Python program to quickly create prototype algorithms to partially automate the generation of funscripts. NOTE: The program is currently not intended for productive use. But you can do whatever you want with this tool. Algorithms Create Funscript Action using OpenCV Tracker Idea: By using OpenCV Tracker , we can determine the relative movements in a static camera setup and map them into Funscript actions using simple signal processing. The Algorithm is implemented for 3D Side-By-Side VR Videos. Some parameter are currently hard coded. It should be possible to expand the functionality to 2D Videos by changing the code, with the following limitations. Limitations Static camera setup Fixed reference point of relative movement in video required No video cuts within a tracking sequence allowed No change of position of the performers Features in the video which are visible in all following frames of the tracking sequence required. Process Selection of the features for the Woman and Men in the video, which should be tracked. Predict the feature positions in the following video frames by OpenCV Tracker. Calculate the difference between the predicted tracking boxes. Map the relative difference to an absolute difference score by user input. Filter all local min and max points to get the final action positions for the Funscript. Improvements You can change the OpenCV tracker in the source code which predicts the position. OpenCV offers several trackers which differ in prediction accuracy and processing speed. See also OpenCV Tracker . You can set the number of frames that are interpolated by the skip_frames parameter. 0 means that the OpenCV tracker delivers a prediction for each frame. This is slower but more accurate. Or if greater than zero, the individual frames are skipped and then the tracking boxes are interpolated, which increases the processing speed but decreases the accuracy. I have set the value to 1, i.e. every 2nd frame is skipped and interpolated. Which provides a good mix of accuracy and speed. It is recommended to use a low resolution video e.g. 4K for generating the funscript actions, as the processing speed is higher.","title":"Python Funscript Editor"},{"location":"#python-funscript-editor","text":"A Python program to quickly create prototype algorithms to partially automate the generation of funscripts. NOTE: The program is currently not intended for productive use. But you can do whatever you want with this tool.","title":"Python Funscript Editor"},{"location":"#algorithms","text":"","title":"Algorithms"},{"location":"#create-funscript-action-using-opencv-tracker","text":"Idea: By using OpenCV Tracker , we can determine the relative movements in a static camera setup and map them into Funscript actions using simple signal processing. The Algorithm is implemented for 3D Side-By-Side VR Videos. Some parameter are currently hard coded. It should be possible to expand the functionality to 2D Videos by changing the code, with the following limitations.","title":"Create Funscript Action using OpenCV Tracker"},{"location":"#limitations","text":"Static camera setup Fixed reference point of relative movement in video required No video cuts within a tracking sequence allowed No change of position of the performers Features in the video which are visible in all following frames of the tracking sequence required.","title":"Limitations"},{"location":"#process","text":"Selection of the features for the Woman and Men in the video, which should be tracked. Predict the feature positions in the following video frames by OpenCV Tracker. Calculate the difference between the predicted tracking boxes. Map the relative difference to an absolute difference score by user input. Filter all local min and max points to get the final action positions for the Funscript.","title":"Process"},{"location":"#improvements","text":"You can change the OpenCV tracker in the source code which predicts the position. OpenCV offers several trackers which differ in prediction accuracy and processing speed. See also OpenCV Tracker . You can set the number of frames that are interpolated by the skip_frames parameter. 0 means that the OpenCV tracker delivers a prediction for each frame. This is slower but more accurate. Or if greater than zero, the individual frames are skipped and then the tracking boxes are interpolated, which increases the processing speed but decreases the accuracy. I have set the value to 1, i.e. every 2nd frame is skipped and interpolated. Which provides a good mix of accuracy and speed. It is recommended to use a low resolution video e.g. 4K for generating the funscript actions, as the processing speed is higher.","title":"Improvements"}]}
1+
{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Python Funscript Editor A Python program to quickly create prototype algorithms to partially automate the generation of funscripts. NOTE: The program is currently not intended for productive use. But you can do whatever you want with this tool. UI The UI use an embedded mpv video player and matplotlib to draw the actions timeseries at the bottom. Keyboard Shortcuts Key Function P Pause / Playback . Next frame , Previous frame [ Decrease speed ] Increase speed Ctrl + Shift + Left Previous Action Point Ctrl + Shift + Right Next Action Point Shift + L Loop Video W Move Stroke Indicator Up A Move Stroke Indicator Left S Move Stroke Indicator Down D Move Stroke Indicator Right Ctrl + I Invert Stroke Indicator Ctrl + Plus Increase Stroke Indicator Ctrl + Minus Decrease Stroke Indicator Gtrl + G Start Funscript Generator Shift + Pos1 First Action Point Shift + End Last Action Point Pos1 Jump to Video Start End Jump to Video End 0 Add Action Point at 0% 1 Add Action Point at 10% 2 Add Action Point at 20% 3 Add Action Point at 30% 4 Add Action Point at 40% 5 Add Action Point at 50% 6 Add Action Point at 60% 7 Add Action Point at 70% 8 Add Action Point at 80% 9 Add Action Point at 90% Algorithms Create Funscript Action using OpenCV Tracker Idea: By using OpenCV Tracker , we can determine the relative movements in a static camera setup and map them into Funscript actions using simple signal processing. The Algorithm is implemented for 3D Side-By-Side VR Videos. Some parameter are currently hard coded. It should be possible to expand the functionality to 2D Videos by changing the code, with the following limitations. Limitations Static camera setup Fixed reference point of relative movement in video required No video cuts within a tracking sequence allowed No change of position of the performers Features in the video which are visible in all following frames of the tracking sequence required. Process Selection of the features for the Woman and Men in the video, which should be tracked. Predict the feature positions in the following video frames by OpenCV Tracker. Calculate the difference between the predicted tracking boxes. Map the relative difference to an absolute difference score by user input. Filter all local min and max points to get the final action positions for the Funscript. Improvements You can change the OpenCV tracker in the source code which predicts the position. OpenCV offers several trackers which differ in prediction accuracy and processing speed. See also OpenCV Tracker . You can set the number of frames that are interpolated by the skip_frames parameter. 0 means that the OpenCV tracker delivers a prediction for each frame. This is slower but more accurate. Or if greater than zero, the individual frames are skipped and then the tracking boxes are interpolated, which increases the processing speed but decreases the accuracy. I have set the value to 1, i.e. every 2nd frame is skipped and interpolated. Which provides a good mix of accuracy and speed. It is recommended to use a low resolution video e.g. 4K for generating the funscript actions, as the processing speed is higher.","title":"Python Funscript Editor"},{"location":"#python-funscript-editor","text":"A Python program to quickly create prototype algorithms to partially automate the generation of funscripts. NOTE: The program is currently not intended for productive use. But you can do whatever you want with this tool.","title":"Python Funscript Editor"},{"location":"#ui","text":"The UI use an embedded mpv video player and matplotlib to draw the actions timeseries at the bottom.","title":"UI"},{"location":"#keyboard-shortcuts","text":"Key Function P Pause / Playback . Next frame , Previous frame [ Decrease speed ] Increase speed Ctrl + Shift + Left Previous Action Point Ctrl + Shift + Right Next Action Point Shift + L Loop Video W Move Stroke Indicator Up A Move Stroke Indicator Left S Move Stroke Indicator Down D Move Stroke Indicator Right Ctrl + I Invert Stroke Indicator Ctrl + Plus Increase Stroke Indicator Ctrl + Minus Decrease Stroke Indicator Gtrl + G Start Funscript Generator Shift + Pos1 First Action Point Shift + End Last Action Point Pos1 Jump to Video Start End Jump to Video End 0 Add Action Point at 0% 1 Add Action Point at 10% 2 Add Action Point at 20% 3 Add Action Point at 30% 4 Add Action Point at 40% 5 Add Action Point at 50% 6 Add Action Point at 60% 7 Add Action Point at 70% 8 Add Action Point at 80% 9 Add Action Point at 90%","title":"Keyboard Shortcuts"},{"location":"#algorithms","text":"","title":"Algorithms"},{"location":"#create-funscript-action-using-opencv-tracker","text":"Idea: By using OpenCV Tracker , we can determine the relative movements in a static camera setup and map them into Funscript actions using simple signal processing. The Algorithm is implemented for 3D Side-By-Side VR Videos. Some parameter are currently hard coded. It should be possible to expand the functionality to 2D Videos by changing the code, with the following limitations.","title":"Create Funscript Action using OpenCV Tracker"},{"location":"#limitations","text":"Static camera setup Fixed reference point of relative movement in video required No video cuts within a tracking sequence allowed No change of position of the performers Features in the video which are visible in all following frames of the tracking sequence required.","title":"Limitations"},{"location":"#process","text":"Selection of the features for the Woman and Men in the video, which should be tracked. Predict the feature positions in the following video frames by OpenCV Tracker. Calculate the difference between the predicted tracking boxes. Map the relative difference to an absolute difference score by user input. Filter all local min and max points to get the final action positions for the Funscript.","title":"Process"},{"location":"#improvements","text":"You can change the OpenCV tracker in the source code which predicts the position. OpenCV offers several trackers which differ in prediction accuracy and processing speed. See also OpenCV Tracker . You can set the number of frames that are interpolated by the skip_frames parameter. 0 means that the OpenCV tracker delivers a prediction for each frame. This is slower but more accurate. Or if greater than zero, the individual frames are skipped and then the tracking boxes are interpolated, which increases the processing speed but decreases the accuracy. I have set the value to 1, i.e. every 2nd frame is skipped and interpolated. Which provides a good mix of accuracy and speed. It is recommended to use a low resolution video e.g. 4K for generating the funscript actions, as the processing speed is higher.","title":"Improvements"}]}

docs/app/site/sitemap.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
33
<loc>None</loc>
4-
<lastmod>2021-06-20</lastmod>
4+
<lastmod>2021-06-23</lastmod>
55
<changefreq>daily</changefreq>
66
</url>
77
</urlset>

docs/app/site/sitemap.xml.gz

1 Byte
Binary file not shown.
756 Bytes
Binary file not shown.
6.8 KB
Binary file not shown.

docs/code/_build/html/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 4e4879cc503584d7c7d971f5e1d4974a
3+
config: 29cc07fc783a335c1affc8e49d2c27f5
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

0 commit comments

Comments
 (0)