ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
PencilKitの新機能
PencilKitがあれば、お持ちのiPad Appで、クリエイティブな作業、作文、描画、アニメーションの作成が可能になります。 描画や注釈のフレームワークに加えられた最新の改良点を詳しく探り、イラストや作文Appの新機能をサポートするためのPKToolPicker、PKCanvasView、PKStrokeなどのAPIの活用方法について知ることができます。 このセッションで多くのことを学んでいただくためには、PencilKitの基礎知識が必要です。復習が必要なら、WWDC19での “Introduction to PencilKit” から始めるといいでしょう。
リソース
関連ビデオ
WWDC20
WWDC19
-
ダウンロード
こんにちは WWDCへようこそ “PencilKitの新性能” 私はジェニー Pencil and Paperチームのエンジニアです “What's New in PencilKit”へようこそ iOS13で発表したPencilKitは 低遅延で豊かな描画を アプリケーションに組み込むフレームワークです iOS14では このPencilKitに 新たな機能を追加しました 指やペンで描く際の システム全体に対する ポリシーにも変更があります APIの変更点や発表予定の新しいAPIについても 最後にお話しするので PencilKitの可能性を更に実感できるでしょう
iOS13は PKCanvasViewのコードを 数行追加するだけだったので もう試してもらえたと思います まだの方は 2019年のWWDCで その手軽さを ぜひご確認ください Apple Pencilを使えば生産性が向上し iPadの可能性も広がります PencilKitに追加した新しい機能について さっそく見ていきましょう 最大の特長は すぐに使えることです
PencilKitは組み込んだ知能により 更に賢くなりました 画面上に表示されるテキストが 選択しやすくなり ダブルタップで単語や行を選択 指を動かすことで範囲を広げることもできます 指の速さを感知するなど 特殊な動作にも対応し なぞったところだけを 選択することもできるんです
スペースを簡単に挿入する方法を紹介します 途中で書き忘れに気づいたとしても 小さな隙間に書き足す必要はありません 空白をタップするとバーが表示されるので “スペースの挿入”を選択 幅も調整できます
ここに文字を書き足すだけです
新しいUIKitシステム標準のカラーピッカーで 選べる色が増えました スペクトラムやスライダーから さまざまな色が選べ カスタム色の保存や スポイトツールで確認することもできます 現在 PencilKitをお使いなら 何も追加する必要はありません 詳細は“Build With iOS Pickers, Menus and Actions”をご確認ください また サードパーティ向けに レイテンシーの最適化も行いました iOS13では視覚効果や ぼかしの使用を避けるなど 技術的なレイテンシーの回避を 推奨してきました iOS14なら さまざまな視覚効果ビューで 思いどおりのコンテンツが作成できます
Catalystに対応する PKCanvasViewも追加しました ツールピッカーは未対応ですが PKCanvasView APIでインクを設定できます こうした高い操作性や新しいカラーピッカーは 個別に追加する必要がありません システムに組み込んでいるので 拡張機能をシステム全体で一貫した エクスペリエンスとして提供できます また 指とペンでの描画の区別について 一元化する方法にも取り組みました PencilKitは iPhoneやiPadにも対応しています もちろん皆さんの中には Apple Pencilを使わない方もいるでしょう
iOS13で紹介した allowsFingerDrawingでは “描画は1本指 スクロールは2本指”などの 設定ができました
iOS14のグローバル設定では 新しいApple Pencilメニューから Prefer Only Pencil Drawingボタンで 変更できます この機能に対応しているのは PencilKitやオリジナルの描画エンジンです
UIKitのUIPencilInteractionで設定できます 独自の描画エンジンがあり PencilKitを使わない時のパラメータは UIPencilInteractionの prefersPencilOnlyDrawingに従います 常に指を使うiPhoneでは 値がfalseに設定されています
一方 PencilKitでは 初めからツールピッカーに表示されます これはグローバル設定に表示されるボタンです Draw With Fingersをオンにすると スクリーンショットやマークアップ その他のPencilKitクライアントなど システム全体に反映し 新たな値も設定されます
このボタンに対応するよう PKCanvasViewの 呼び出しもアップデートしました allowsFingerDrawingに代わり キャンバスの PKCanvasViewDrawingPolicyを設定します 描画のジェスチャー認識を allowedTouchTypesに設定せず キャンバスでの描画ポリシーは ペンか指に設定してください
描画ポリシーは3つあります 1つ目は PKCanvasViewDrawingPolicy.anyInput これは指またはペンで入力するという 意味になります
2つ目の pencilOnlyは ペンでのみ入力が可能です この場合 指ではスクロールや選択ができます
3つ目がデフォルトで ツールピッカーの表示の有無で違います 表示されていれば UIPencilInteractionでの 入力方法に従うので ユーザが設定した内容によって変わります
表示がなければ 描画に使えるのはペンのみです 指を使った場合の スクロールや選択方法を見てみましょう なげなわツールは使わず ペンを選択した状態で スクロールや コンテンツを自由に選択したり 好きな場所にペンで書いたりできます
もちろん選択も
ペンのみを使う場合 Draw With Fingerボタンは不要なので PKToolPickerのshowPolicyControlsを falseに設定し 表示を消しましょう iPadのデフォルトでは trueなので ボタンがツールピッカーに表示されています 描画ポリシーが pencilOnlyの場合 falseに設定しておけば “ボタンをオンにしたのに何も起きない” という混乱を防げます
また PKToolPickerの 初期化方法を新しくしました UIウィンドウに対し1つの共有ツールではなく 個別でインスタンスを初期化でき それぞれの場合に応じた PKToolPickerが使えるようになります キャンバスやウィンドウごとに ツールピッカーを設定できて便利ですが アイバーに反映させて 個別のインスタンスを 常に持っておく必要があります
インスタンスはどのように決めるのでしょうか “Introducing PencilKit”からのおさらいです UIレスポンダーをtrueに設定し ツールピッカーを表示している場合は それぞれのレスポンダーに インスタンスを渡す必要があります
違うツールピッカーが必要な場合とは 私のように メモ用と描画用で 分けているケースです
メモ用はデフォルトのポリシーにして 描画用では指とペンの両方を 使えるようにしたいのです そこで キャンバスには用途に応じた ツールインスタンスが必要になります 描画用にはポリシーを表示したくないからです
使用するツールにより設定の内容も違います メモ用のツールは黒のペンに 描画用は紫のマーカーをデフォルトにします それ以外にも設定は変わるでしょう 描画やマークアップでも ユーザーインターフェイスの色は違います
最後に iOS14 PencilKit最大の変更点は Strokesへのアクセスにより PKDrawingの内部をのぞけることです インクやパス ポイントなどに アクセスできるようになりました
“Inspect, Modify and Construct PencilKit Drawings”で詳細をご覧ください Strokesへのアクセスにより PencilKitのカスタム性は コメントや動画 認識 機械学習などへと広がりました 以上がPencilKitの新機能です すでにPencilKitがあれば この機能拡張を利用できるので 使いやすさやカラーピッカーを お試しください 廃止のAPIから新しいAPIへ移行することで 指やペンでの描画が より すばらしいものになるでしょう 最後にお話しした PKDrawing内部のStrokesや 新しいPencilKit APIで 次世代の描画体験を楽しみましょう ぜひPencilKitを使ってみてください
-
-
5:21 - PKCanvasView drawingPolicy
var drawingPolicy: PKCanvasViewDrawingPolicy
-
7:06 - PKToolPicker showDrawingPolicyControls
PKToolPicker.showsDrawingPolicyControls
-
8:40 - Toolpicker per canvas
notesCanvas.drawingPolicy = .default notesToolPicker.showsDrawingPolicyControls = true notesToolPicker.selectedTool = PKInkingTool(.pen, color: .black, width: 2) drawingCanvas.drawingPolicy = .anyInput drawingToolPicker.showsDrawingPolicyControls = false drawingToolPicker.selectedTool = PKInkingTool(.marker, color: .purple, width: 20)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。