As I mentioned in Week 1 report, the goal of this project is to create 2D animation by capturing real-world kinematic movements. Animations play an important role in conveying ideas and telling a story [Xing, 2015], but the current making process is largely based on frame-by-frame approach, which is very time-consuming and tedious process [Igarashi, 2005]. Also, making these frame-by-frame animations requires experienced skills, as a result, it remains difficult for novice users to create their own animation.
In this project, I aim to make this process easier by creating semi-automatic hand-drawn animation through capturing movements from real-world examples. In week 1, I proposed a proof-of-concept prototype which captures facial expression and makes animation based on the movements of face parts. This approach works well for the specific purpose, but it could be very difficult to use for the general purpose since it does not analyze the drawing sketch. To overcome this drawback, in this project 2, I tried to detect a skeleton from drawing paths.
To achieve the final goal of this project, three different components are needed: 1) shape analysis, 2) shape deformation, and 3) movement capturing. In project 2, we focus on shape analysis since shape deformation part is essentially relies on the shape analysis part.
First, we implement triangulation of 2D drawing mesh. In this process, we take user strokes as input and produce 2D triangulation mesh as output. We first simplify the stroke as a series of Bezier paths and extract vertices of each connected paths. After that, we create triangles with Constrained Delaunay triangulation algorithm [Chew, 1989]. This triangulation process will be important in shape deformation process since typical shape deformation algorithms achieve natural deformation by minimizing the distortion of triangle meshes [Igarashi, 2005].
After triangulating drawn objects, then we detect a skeleton of the 2D geometry. To detect a skeleton, we adapt to optimal skeleton network algorithm [Wang, 2009]. This algorithm is basically search the internal edges of constrained Delaunay triangles, and connect the middle points of the each edges. This is very naive approach because it does not guarantee homotopic of the topology. Prior work suggests several alternatives such as 2D thinning algorithms [Couprie, 2006], curve skeleton extraction [Tagliasacchi, 2009], and Laplacian smoothing algorithm [Au, 2008]. To have a better skeleton, as a next goal, we will implement Laplacian smoothing algorithm proposed in Au et al [Au, 2008]. Some results are here.
Cod on GitHub: https://github.com/ryosuzuki/drawing-tool
1. Applying Laplacian smoothing algorithm to 2D mesh skeletonization [Au, 2008].
2. Implementing shape deformation prototype by adapting to the combination of as-rigid-as possible shape deformation algorithm [Igarashi, 2005] and skeleton-driven deformation [Pan, 2011]
3. Capturing movements of a skeleton by Kinect
- Xing, Jun, Li-Yi Wei, Takaaki Shiratori, and Koji Yatani. “Autocomplete hand-drawn animations.” ACM Transactions on Graphics (TOG) 34, no. 6 (2015): 169.
- Igarashi, Takeo, Tomer Moscovich, and John F. Hughes. “Spatial keyframing for performance-driven animation.” In Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation, pp. 107-115. ACM, 2005.
- Chew, L. Paul. “Constrained delaunay triangulations.” Algorithmica 4, no. 1-4 (1989): 97-108.
- Igarashi, Takeo, Tomer Moscovich, and John F. Hughes. “As-rigid-as-possible shape manipulation.” ACM transactions on Graphics (TOG) 24, no. 3 (2005): 1134-1141.
- Wang, Tao. “Extraction of optimal skeleton of polygon based on hierarchical analysis.” Int. Archives of Photogrammetry, Remote Sensing, and Spatial Information Sciences 28 (2009): 272-276.
- Couprie, Michel. “Note on fifteen 2d parallel thinning algorithms.” Université de Marne-la-Vallée, rap. tech (2006).
- Tagliasacchi, Andrea, Hao Zhang, and Daniel Cohen-Or. “Curve skeleton extraction from incomplete point cloud.” In ACM Transactions on Graphics (TOG), vol. 28, no. 3, p. 71. ACM, 2009.
- Au, Oscar Kin-Chung, Chiew-Lan Tai, Hung-Kuo Chu, Daniel Cohen-Or, and Tong-Yee Lee. “Skeleton extraction by mesh contraction.” In ACM Transactions on Graphics (TOG), vol. 27, no. 3, p. 44. ACM, 2008.
- Pan, Junjun, and Jian J. Zhang. “Sketch-based skeleton-driven 2D animation and motion capture.” In Transactions on edutainment VI, pp. 164-181. Springer Berlin Heidelberg, 2011.