GSoC/2020/StatusReports/SaurabhKumar: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2020‎ | StatusReports
Line 18: Line 18:


====Krita's Anamtion API====
====Krita's Anamtion API====
Say about Keyframe and keyframe channels.  
Talk about Keyframe and keyframe channels.  
Talk about ANimationInterface
Talk about AnimationInterface
Talk about the syncing and addition of keyframes.
Talk about the syncing and addition of keyframes.


Line 30: Line 30:


=====Week 0=====
=====Week 0=====
I implemented the delegate class for the CommentModel. I also added a visibility property to members of the CommentModel. This property is shown as an eye icon which can be toggled by clicking. I also implemented the StoryboardItem class that makes up the data of the StoryboardModel and implemented functions in StoryboardModel to manage that data. (Commits : [https://invent.kde.org/graphics/krita/-/merge_requests/379/diffs?commit_id=b40df7599478cf6d4e40dcb31ee8533fd8761193 2], [https://invent.kde.org/graphics/krita/-/merge_requests/379/diffs?commit_id=35118443147f2d5d0e08bc738a706099ca3cba74 6])
I implemented the delegate class for the CommentModel. I also added a visibility property to members of the CommentModel. This property is shown as an eye icon which can be toggled by clicking. I also implemented the StoryboardItem class that makes up the data of the StoryboardModel and implemented functions in StoryboardModel to manage that data. (Commits : [https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=5aca0e09bba2ac06895961fcc468720b6f90a94f 2], [https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=6d4c6c7f179f57928dad5dad110d616a84b7dd26 6])


Also I implemented unit-tests for the CommentModel, StoryboardModel and the interactions between those classes.(Commits: [https://invent.kde.org/graphics/krita/-/merge_requests/379/diffs?commit_id=ef7901228522ef2f188c038a7a3d32c4f465f034 3],  
Also I implemented unit-tests for the CommentModel, StoryboardModel and the interactions between those classes.(Commits: [https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=884d20a4b420b39deba4acc19e9cb0bfb60d7caf 3],  
[https://invent.kde.org/graphics/krita/-/merge_requests/379/diffs?commit_id=d2d9a16b12f515018f5d9aa1382da22204545d35 4], [https://invent.kde.org/graphics/krita/-/merge_requests/379/diffs?commit_id=df876054e3031237d7cc5b7c2ad614951d756470 5])
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=88d71e6287a7b6abf51bfe9dd8dc8f6162b6f33b 4], [https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=b17bb11c8a678e041b9e1771914afb7f341c598b 5])


[https://confifu.wordpress.com/2020/06/02/week-0-gsoc-project-report/ Blog post]
[https://confifu.wordpress.com/2020/06/02/week-0-gsoc-project-report/ Blog post]


=====Week 1=====
=====Week 1=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=816fc7e11e00af50cced7545e369eb3843e9bcfc 7]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=302fc0f98398008b34e8967e854f0705113fd911 8]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=e32d23261354813f67f8e76e248ff4bf9f6f8f04 9][https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=d61652c90d9372b544aa52265d9ae0c58048b650 10]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=0e807b51e76fcf725c37e0c6ba797e0b4db52935 11])


=====Week 2=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=65c3a423d0a1ddcec3a80a0ecf5752bb740d977a 12]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=cb3212730eca77e223ae342cb912052d48ab1ada 13]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c02c86c336d462f5963b0e433a5b31d602c475f2 14]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=63790b4c947c5f3b4dd36870ff2c3573b54b74ce 15]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=fccd367324d8266cba060c495b4de6a8d70daabf 16]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=52a0dd27e7befe5074fd12efc68045e9b7e7b703 17])


=====Week 3=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=04d8d249208ecd2e17ffbbf8a5daad6e5401186f 18]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=dfb9a184d8547d5483dc1da40c4365b540545468 19]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=905724a64353cdfc97ef4f784ab75949e8e27c5f 20]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=14e74be154916c0c0798e9d57470ef609e20b9c4 21]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=fbc77f2cf84727fd9f5e3822f0cf0912c9ad8b63 22]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=a51c97fe22b0ce93d1e30b1d5154d8b4328b7abc 23]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=8cdbba61c718671c65ce4d95c55609626537131b 24]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=48d40b91df00a8da8070408be4bb9d152ade3cdd 25]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=fc556d0aa45b49bb92c495f3e7d64bd4d8470fcf 26]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=a6ae05160313342fc381deb24589856c486f8924 27]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=714c35ac1c3a15bcc591c4dc790d5a4bdb79bb87 28])
=====Week 4 and 5=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=cb4dda6fe8577052cb931e02ed0cda6746678723 29]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=f5edf226d09a8892bd9cd6d94efb1c161db86417 30]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=1b484651d6fb4b9163794cd096fa7554073bbe2d 31]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c4943ef05abdf92a76b7dd572d766ea37dd2a895 32]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=9db959fa36668c3c3c8c725ecabd5cea84c64c6d 33]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=03a0f7a8986a72d7fe74c00bf3e0f2a5c716b7e4 34]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=b8be5e29c4bc18f312379da6c72bb99b4f87161f 35]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=62855495a03be4c9372ecc3802746fef42328fa7 36])
=====Week 6=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=04b8b500aff09fab4f9e50ec093ceb953dfb0dc4 37]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=23a1d3a171672db891bcb7b93fc9617417771ac5 38]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=9dfe31fdec8df750bd8e29ac6c126fbd89b5b713 39]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=30cf637ad32d21bed30a4166ae61a796ecc0c755 40])
=====Week 7=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=a9c25a7ba0fb00e221280228f8fcf14da3cd1f00 41]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=054b3a79736158becc482fca8b9ef16a1d06e7f4 42]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=8c02d1c207e49fd4db43980ba6a298c5c038bc46 43]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=cb449f3eca554d8864402846ac96dca883d8fea9 44])
=====Week 8=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=6ab6f13ade82c66a24c4e43d5563eecdcaff55b6 45]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=70c078d87ecabf262bf46699262efe6e44854cee 46]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=24336c5fa965731befec1136bb096c27811179fa 47]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=e131a0ac1ea2b74871e677605216254059d2107a 48]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=dcc10102b8e0561f28b28113b0e5355bc814be37 49]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=1505f3e69227e2366f98f7ef505ef5e4ce014043 50]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=e56e6cc474410ce550c23cdf2edc8c7aa9a5bd81 51]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=9d1202ecee35cd02ca69315718ee67149a84e3a3 52]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=0a92393348efd8432a5918e8f83d8f17e1a38129 53])
=====Week 9 and 10=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=5f8ba69bb9284df6c887234eb0f0886d6e1cb796 54]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=f06282a73c985dccdb5538dfe9031e657cfc8794 55]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=65b39c401b2f09b0fb67f319574297e13c0dfc09 56]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=1618913cc6012e1195b81bf857f6b7be188333e8 57]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=d7046c380650963081f5be3ecda9840918dab7b0 58]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=4e3b2935de7c1cabaa9c9a27b0782c90a7c45e0a 59]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=ecd63406e5163034794125f115e80449d645e0fe 60]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=0453a2a792c296ddaa8d8fd86765d22574e433fd 61]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=2c29f0e18540a4e0b9ca9ac123e2901619e30157 62]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=21b8fc7a64e8177225f0b6c2e6dc9b795602e316 63]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=f9efa36e85d56066a64616dc39a29e5a15447058 64]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=ef795a5db0f45bbd2da45e8138f4c36e2dd6c9e6 65]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=e9c349d928ebfa03fb7ac5d6668ffdf3d1ca5750 66])
=====Week 11 and 12=====
(Commits :
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=2c6b61a5ad5c1ec85c8d44a7995c23718168cbc8 67]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=865f93ed06b4d701bd91b0f8caf629e5632742c9 68]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=764cfa709f96292945dfe75e0318e0275b5b1acb 69]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=2080150b4cdbb7484363b4c469dd27fa567831c7 70]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=843d1c406b103c2cb046e240913ce42d60f4dfdb 71]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c41360887a4a9c3c3156cbe6bf959a9022b629a1 72]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=1a8f5f8942593547a5a415320837b1fad569b667 73]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=23f9c517efb3f52fa0bd1c8b0838ffaae1029f55 74]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c2dfa3df24fb95f72e4ac5a102868d5a98a748b9 75]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=d636cff623509683a5b226a679bea1a0e03f8970 76]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=07d40943d5ef710a6b73cb862acbdd1c6a9ab471 77]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c91ec8b49cfea4f0b43689e718019e99ee0c1e99 78]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=c7a722730eb9aab8db00f637f0e35f08edfdc814 79]
[https://invent.kde.org/graphics/krita/-/merge_requests/392/diffs?commit_id=0fdf81023b11c0f52f1a9a9291009d9e43c5a625 80])


===Introduction===
===Introduction===

Revision as of 14:10, 25 August 2020

Storyboard Docker For Krita

Project Overview

A storyboard is a graphic organizer that consists of illustrations and comments displayed in sequence for the purpose of pre-visualizing and planning of motion picture and animation. The project was to implement a docker in Krita that would use the existing animation API in Krita to facilitate storyboarding. Qt's MVC classes are used for storing and displaying the storyboard.

Project Goals

The requirements of the project can be broken down into the following goals:

  • Implementing the basic MVC classes for the docker.
  • Integrating relevant parts of Krita, namely the timeline docker and canvas, with the storyboard docker.
  • Implementing functionalities to export storyboard as PDF and SVG.
  • User documentation.

The mockups prepared for the project:


Relevant Code and Technical Pre-requisites

MVC classes

Talk about MVC classes, comment and storyboard.

Krita's Anamtion API

Talk about Keyframe and keyframe channels. Talk about AnimationInterface Talk about the syncing and addition of keyframes.

Work Report

Implementing the MVC classes for the docker

Week -1

I started a few weeks early, to cover up for any unprecedented events due to ongoing COVID-19 crisis. This week I added the storyboard docker to Krita's plugin system and implemented the tool-buttons at the top of the docker and the menu related to those buttons. I implemented the CommentModel class to manage the comment tool-button's menu. The memebers of this menu would be part of the storyboard items that would be part of the storyboard model. I also started implemented the StoryboardModel class. (Commits :1)

Blog post

Week 0

I implemented the delegate class for the CommentModel. I also added a visibility property to members of the CommentModel. This property is shown as an eye icon which can be toggled by clicking. I also implemented the StoryboardItem class that makes up the data of the StoryboardModel and implemented functions in StoryboardModel to manage that data. (Commits : 2, 6)

Also I implemented unit-tests for the CommentModel, StoryboardModel and the interactions between those classes.(Commits: 3, 4, 5)

Blog post

Week 1

(Commits : 7 8 910 11)

Week 2

(Commits : 12 13 14 15 16 17)

Week 3

(Commits : 18 19 20 21 22 23 24 25 26 27 28)

Week 4 and 5

(Commits : 29 30 31 32 33 34 35 36)

Week 6

(Commits : 37 38 39 40)

Week 7

(Commits : 41 42 43 44)

Week 8

(Commits : 45 46 47 48 49 50 51 52 53)

Week 9 and 10

(Commits : 54 55 56 57 58 59 60 61 62 63 64 65 66)

Week 11 and 12

(Commits : 67 68 69 70 71 72 73 74 75 76 77 78 79 80)

Introduction

Storyboard docker

The storyboard docker aims to facilitate storyboarding in Krita. It allows multiple images and associated text to be organized in the form of a storyboard. The arrangement can be tweaked using the mode and view options. Also different field's visibility can be toggled. The storyboard can be rendered as pdf or svg.

Comment menu
Arrange menu


Deliverables