ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【CLIP STUDIO PAINT】簡単なアニメーションの作成方法

 今までBlender関係やプログラミング関係の記事を書いていましたが、今回はCLIP STUDIO PAINTについての記事です。

 検索すればタイトルにあるような機能の解説はいくらでも出て来ますし、自分も全部の機能を使いこなせている訳ではないのですが、パッと見た感じで初心者向けに書かれた記事があまりないような印象を受けたので今回書いてみた次第です。

 参考資料にあるCLIP STUDIO公式のヨツベさんの動画がわかりやすいかと思うので、詳しい説明はそちらを参照したり、各自で調べるようお願いします。

 本記事ではとりあえず以下のような簡単なパラパラマンガを作ってみるぐらいの軽い感じでいきます。
f:id:rikoubou:20190708170314g:plain

 また本記事の内容は「CLIP STUDIO PAINT EX」になります。「PRO」など他のバージョンでは使えない機能などもあるので注意してください。

 では始めます。


1:アニメーション用ファイルの新規作成と準備
 とりあえずCLIP STUDIO PAINTでアニメーションを作るための準備です。説明は次の項目でやります。

 CLIP STUDIO PAINTを起動させたらメニューの「ファイル」→「新規」を選択します。
f:id:rikoubou:20190122142508p:plain

 でてきたウインドウにある「作品の用途」のところの一番右にある「アニメーション」を選択し、とりあえず何も考えずにOKのボタンをクリックします。
f:id:rikoubou:20190122142809p:plain

 すると以下のような画面になります。青枠部分が実際に書き出される範囲でその外部分は余白になっています。
f:id:rikoubou:20190122143055p:plain

 この状態だとタイムラインウインドウが表示されてないので、表示させます。

 メニューの「ウインドウ」→「タイムライン」を選択します。
f:id:rikoubou:20190122143438p:plain

 以下の赤枠部分のように「タイムライン」のウインドウが表示されます。
f:id:rikoubou:20190708140333p:plain

 次にフレームレート(fps)を変更します。「アニメーション」→「タイムライン」→「フレームレートを変更」を選択します。
f:id:rikoubou:20190708142853p:plain

 ここでは24fpsを選択して「OK」ボタンをクリックして24fpsにします。
f:id:rikoubou:20190708143322p:plain

 これで24fpsでのアニメーション作成の準備ができました。


2:実際に動きを描いていく
 この状態では「アニメーションフォルダー」内にある「1」という名前のレイヤーが選択されています。
f:id:rikoubou:20190708141037p:plain

 なのでとりあえずこの「1」のレイヤーに対して、適当な色とペンで大きな丸を描きます。これを1枚目の絵にします。
f:id:rikoubou:20190708141319p:plain

 1枚目ができたらタイムラインの4フレーム目(前のフレーム+3)のところをクリックして選択した状態で「新規アニメーションセル」ボタンをクリックします。
f:id:rikoubou:20190708143726p:plain

 すると選択した4フレーム目に「2」というレイヤーが追加され、1枚目目で書いた「1」のレイヤーが見えなくなります。
f:id:rikoubou:20190708144101p:plain

 アニメーションを作るときには前後のフレームの絵があるとわかりやすいので、それを表示させる機能である「オニオンスキン」を有効にします。

 タイムラインの「オニオンスキンを有効化」をクリックし、前後の絵が表示されるようにします。(ここでは2の後に絵が存在しないので1の絵だけが表示されています。)
f:id:rikoubou:20190708144552p:plain

 1の丸の上部分を合わせるようにして、少し小さめの丸を2のレイヤーに描きます。
f:id:rikoubou:20190708144757p:plain

 続いて同じように7フレーム目(前のフレーム+3)をクリックして選択して「新規アニメーションセル」ボタンをクリックします。
f:id:rikoubou:20190708145128p:plain

 丸についても同じように前のフレームの絵の上側が合うようにして少し小さい丸を描きます。
f:id:rikoubou:20190708145324p:plain

 これを何度か繰り返して+3フレームずつちょっとずつ小さくなる丸を描いていきます。

 1フレームごとの画面を確認したい場合はタイムラインにある「◀︎」と「▶︎」のボタンを押すことで確認できます。
f:id:rikoubou:20190708150155p:plain

 今回は適当に7枚分書いて以下のようにしました。
f:id:rikoubou:20190708145848g:plain

 一応これでもボールが奥へと動いているようには見えますが、奥から戻ってきてループさせる感じにしたいです。

 とはいえもう一度同じような絵を書いていくのも面倒なので、今まで書いた絵を使い回します。

 22フレーム目をクリックで選択し状態で右クリックをして、出てきた中から一つ前の絵である「6」を選択します。
f:id:rikoubou:20190708150640p:plain

 すると22フレーム目に6の絵が追加されます。
f:id:rikoubou:20190708150813p:plain

 それからは同じように+3フレーム刻みで一つずつ前の絵を選択して「2」まで設定していきます。
f:id:rikoubou:20190708150952p:plain

 最後の「2」が3フレームになるようにタイムラインの終わりのフレーム数をドラッグで調節します。
f:id:rikoubou:20190708151634g:plain

 ここまでできたらタイムラインの「再生」ボタンをクリックして動きを確認します。
(※ソフトの不具合なのか、CLIP STUDIO PAINT上でのプレピュー再生では時々コマ落ちして正しく再生されない場合があるので注意してください)
f:id:rikoubou:20190708151201p:plain

 おおまかな動きは以下のようにプレビューで確認できます。
f:id:rikoubou:20190708151751g:plain


3:アニメーションとして書き出す
 完成、または正確な動きを確認したい場合はgifファイルまたは動画ファイルとして書き出して確認します。

  • gifファイルとして書き出す場合

 gifファイルとして書き出す場合は「ファイル」→「アニメーション書き出し」→「アニメーションGIF」を選択します。
f:id:rikoubou:20190708162130p:plain

 保存ファイル名を入力した後、出力する画像サイズやフレームレート、出力範囲のフレーム数、ループ回数などを設定して「OK」ボタンをクリックします(基本的にはデフォルトのままで問題ないです)。
f:id:rikoubou:20190708162323p:plain

 以下の表示が出たらgifファイルとして保存されているので「OK」ボタンをクリックします。
f:id:rikoubou:20190708162528p:plain

 今回書き出した結果は以下のようになります。
f:id:rikoubou:20190708163055g:plain

  • 動画ファイルとして書き出す場合

 動画ファイルとして書き出す場合は「ファイル」→「アニメーション書き出し」→「ムービー」を選択します。
f:id:rikoubou:20190708162629p:plain

 保存ファイル名を入力した後、画面サイズやフレームレート、2Dカメラを使用するかどうかの設定を行い「OK」ボタンをクリックします(基本的にはデフォルトのままで問題ないです)。
f:id:rikoubou:20190708162747p:plain

 書き出し時間を表示したバーを表示するウインドウが消えたら書き出しが終了しています。

 今回書き出した結果は以下のようになります。

 これでとりあえずのアニメーション作成方法がわかったかと思います。


4:複数レイヤーを1つの絵にする
 今の状態だと1つのアニメーションの絵につき、1枚のレイヤーしか表示できないようになっています。
f:id:rikoubou:20190708164004p:plain

 例えば主線部分と色を別レイヤーにして、合わせた絵を表示させたい場合は以下のようにします。

 対象のレイヤーを選択した状態で「右クリック」→「フォルダーを作成してレイヤーを挿入」を選択します。
f:id:rikoubou:20190708164322p:plain

 すると同じ名前のフォルダが作成され、その中に対象レイヤーが入っている状態になります。
f:id:rikoubou:20190708164445p:plain

「右クリック」→「新規ラスターレイヤー」でレイヤーを追加します。
f:id:rikoubou:20190708164714p:plain

 追加されたレイヤーの名前を適当に「色」などに変更してフォルダ内の一番下になるようにドラッグで移動させます。
f:id:rikoubou:20190708164857p:plain

 範囲選択や塗りつぶしなどを使って、この「色」レイヤーに色をつけます。

 すると以下のようにフォルダ内の絵が合わさった状態が表示されます。
f:id:rikoubou:20190708165051p:plain

 あとは同じように他の全ての動きのレイヤーをフォルダに入れて色のレイヤーを追加していきます。
f:id:rikoubou:20190708165410p:plain

 この状態でアニメーションとして書き出すと、以下のようにちゃんと色のレイヤーも表示された状態で出力されます。
f:id:rikoubou:20190708165442g:plain

 ようするに、各動きの絵をフォルダに入れてレイヤーを増やせば良いということです。


5:背景を設定する
 アニメーションフォルダーの中にあるものしかアニメーションさせないようになっているので、アニメーションフォルダーの外に動かないレイヤーを一枚追加すればそれが背景になります。

 例えば以下のようにアニメーションフォルダーの外に新規レイヤーを作成して「背景」という名前にし、アニメーションフォルダーよりも下の位置まで移動させます。
f:id:rikoubou:20190708165957p:plain

 この背景のレイヤーを適当に塗りつぶすと、以下のようにアニメーションフォルダーの後ろに背景レイヤーが表示されます。
f:id:rikoubou:20190708170153p:plain

 この状態でアニメーションとして書き出すと、以下のように背景もちゃんと出力されます。
f:id:rikoubou:20190708170314g:plain

 要は「アニメーションフォルダーは動かす絵を入れるもの」であり「その外にあるものは止まっているもの」というざっくりとした使い分けをするということです。


 以上がCLIP STUDIO PAINTで簡単なアニメーションを作成する方法です。

 本当に基本的なことしか書いてない上に自分も他の詳しい機能などはあまり知らないので、とりあえずの取っ掛かりになればと思います。


・参考資料
www.youtube.com


・関連記事

【Blender】Blender2.8で水面(海)を作ってものを浮かせる方法

 ものすごく久しぶりのBlender関連の記事になります。

 今回はタイトルにあるようにBlender2.8を使って水面(海)を作って、そこにオブジェクトを浮かせる方法の備忘録です。

 では始めます。


1:Blenderで海の動きを作る
 Blenderを起動させてデフォルトキューブを削除した後、「Shift+Aキー」を押して出てきた中から「Mesh」→「Plane」を選択してPlaneを追加します。
f:id:rikoubou:20190705144104p:plain

 追加したPlaneを選択した状態で「Modifier」アイコンのタブを選択し「Add Modifier」のプルダウンをクリックします。
f:id:rikoubou:20190705144311p:plain

 出てきたリストの中にある「Ocean」を選択します。
f:id:rikoubou:20190705144524p:plain

 モディファイアの各設定項目について、以下の赤枠で囲ってある部分のように入力します。(※Resolutionは解像度でこの値を大きくするときめ細かい波を再現できますが、処理はかなり重くなります)
f:id:rikoubou:20190705145130p:plain

 値の設定が済んだら、1フレーム目が選択されていることを確認してから「Time」の項目上にマウスカーソルを持ってきた状態で「i」キーを押してキーフレームの登録をします。
f:id:rikoubou:20190705145808p:plain

 登録するとTimeの項目が黄色くなり、1フレーム目にひし形のマークが追加されます。
f:id:rikoubou:20190705150023p:plain

 250フレーム目まで移動させ、Timeの値を5.10などの値に変更してから同じように「i」キーを押してキーフレーム登録をします。
f:id:rikoubou:20190705150414p:plain

 キーフレームの登録が終わったら「Editor Type」のプルダウンから「Graph Editor」を選択します。
f:id:rikoubou:20190705150711p:plain

 グラフエディタの画面に切り替わるので、下の画像の赤枠の部分をクリックして選択した後、ドラッグで移動させて直線になるように調節します。
f:id:rikoubou:20190705151012p:plain

 調節して以下のように大体直線になるようにします。
f:id:rikoubou:20190705151219p:plain

 プルダウンから再び「Timeline」を選択して戻します。
f:id:rikoubou:20190705151513p:plain

「Play Animation」ボタンをクリックしてアニメーションを再生してみます。
f:id:rikoubou:20190705151748p:plain

 実際にアニメーションを再生すると以下のようになります。
f:id:rikoubou:20190705153217g:plain

 PCスペックの関係でFPSは出ていませんが、波打っているような動きになっているのがわかると思います。

 これで海の動きは完成です。


2:海の見栄えをよくする
 海の動きはできたので、海の見栄えをよくするためにMaterialの設定をしていきます。

 Planeを選択した状態で画面のタブから「Shading」を選択します。
f:id:rikoubou:20190705153746p:plain

 Shadingの画面に切り替わるので、以下の赤枠にある「New」ボタンをクリックします。
f:id:rikoubou:20190705154020p:plain

 すると以下のように「Principled BSDF」というノードと「Material Output」というノードが追加されます。
f:id:rikoubou:20190705154241p:plain

「Principled BSDF」ノードのBase Colorを青っぽい色に変更し、その他赤枠の部分の値を変更します。
f:id:rikoubou:20190705154737p:plain

「Principled BSDF」ノードの変更が終わったら「Shift + Aキー」を押して出てきたメニューから「Input」→「Attribute」を選択します。
f:id:rikoubou:20190705155044p:plain

「Attribute」ノードが追加されるので、NameのところにOceanモディファイアで設定した名前と同じものを入力します。
f:id:rikoubou:20190705155456p:plain

「Shift + Aキー」を押して「Shader」→「Emission」を選択します。
f:id:rikoubou:20190705155753p:plain

 ノードが追加されるので「Attribute」ノードのColorと「Emission」ノードのColorをドラッグでつなぎます。
f:id:rikoubou:20190705160734p:plain

「Shift + Aキー」を押して「Shader」→「Add Shader」を選択します。
f:id:rikoubou:20190705160508p:plain

 ノードが追加されるので、ドラッグして各ノードを以下のように繋げます。
f:id:rikoubou:20190705160849p:plain

「Layout」タブに戻り、「Viewport Shading」のところから「Rendered」のアイコンをクリックすると、レンダリング結果の画面が表示されます。
f:id:rikoubou:20190705161602p:plain

 これで海のMaterialの設定が終わりました。

 この状態で再度アニメーションさせてみると以下のようになります。
f:id:rikoubou:20190705162636g:plain

 ちょっと荒々しい感じの海になったかと思います。

 これで海部分ができたので、オブジェクト名を「ocean」に変更しておきます。
f:id:rikoubou:20190705163432p:plain


3:ものを浮かべるためのオブジェクトを準備する
 海部分ができたので今度はものを浮かべるための準備をしていきます。

「Shift + Aキー」で「Mesh」→「Plane」を選択します。
f:id:rikoubou:20190705163657p:plain

 追加された「Plane」を選択した状態で左上のプルダウンから「Edit Mode」を選択する。
f:id:rikoubou:20190705163945p:plain

「Edit Mode」に切り替わるので「Edge」→「Subdivide」を選択して面を分割します。
f:id:rikoubou:20190705164232p:plain

 頂点が増えて「Subdivide」の項目が出てくるのでそこをクリックします。
f:id:rikoubou:20190705164604p:plain

「Number of Cuts」の項目を4に設定します。
f:id:rikoubou:20190705164739p:plain

 分割後「Edit Mode」で全頂点を選択したままの状態で「Modifier」アイコンの「Add Modifier」をクリックします。
f:id:rikoubou:20190705165046p:plain

 リストの中にある「Shrinkwrap」を選択します。
f:id:rikoubou:20190705165304p:plain

「Target」のところに海のオブジェクトをである「ocean」を設定します。
f:id:rikoubou:20190705165511p:plain

 次に「Context」アイコンを選択して「+」ボタンをクリックしてグループを追加します。その状態で「Assign」ボタンを押して頂点をグループに登録します。
f:id:rikoubou:20190705165827p:plain

 これで海面の動きに合わせてPlaneが動くようになりました。


4:ものを浮かべる
 浮かべるためのPlaneの準備ができたので、次は実際に浮かべたいものの設定をしていきます。

「Edit Mode」になっているので「Object Mode」に戻ります。
f:id:rikoubou:20190705185018p:plain

「Shift + Aキー」で「Mesh」→「Monkey」を選択してSuzanneを追加します。
f:id:rikoubou:20190705185246p:plain

 追加したSuzanneを選択した状態で「Object Constrains」アイコンの「Add Object Constraint」をクリックします。
f:id:rikoubou:20190705185711p:plain

 リストの中にある「Copy Location」と「Copy Rotation」の2つを選択して追加します。
f:id:rikoubou:20190705190013p:plain

「Copy Location」、「Copy Rotation」両方において、Targetに浮かべるためのオブジェクトである「Plane」、Vertex GroupにPlaneのグループである「Group」を設定します。
f:id:rikoubou:20190705190327p:plain

 ここまでできた状態でアニメーションを再生すると、以下のように波の動きに合わせてPlaneが動き、そのPlaneの座標に合わせてSuzanneが上下に動きます。
f:id:rikoubou:20190705191535g:plain


5:浮かべたものを動かす
 4まででPlaneとSuzanneが連動するように設定できているので、Planeの座標や回転をキーフレームとして登録して移動させれば以下のように動かすことができます。

 1フレーム目の時にLocationとRotationを「i」キーでキーフレーム登録します。
f:id:rikoubou:20190705192644p:plain

 同様に250フレーム目の時に値を変更したLocationとRotationを「i」キーでキーフレーム登録します。
f:id:rikoubou:20190705192855p:plain

 アニメーションの再生を行うと以下のようにSuzanneが移動と回転を行います。
f:id:rikoubou:20190705193434g:plain


6:Planeをレンダリング時に見えなくする
 これで動き全体は完成ですが、Planeは見えてほしくないのでレンダリング時は見えないようにします。

「Plane」を選択した状態で「Object」アイコンの「Visibillity」の項目にある「Show in Renders」のチェックを外します。
f:id:rikoubou:20190705193829p:plain

 これでレンダリング時にPlaneのオブジェクトが見えなくなります。

7:その他もろもろを設定して完成
 あとは照明やカメラ、SuzanneのMaterialの設定などをして出力した完成動画が以下になります。


 以上がBlender2.8で水面(海)を作ってものを浮かせる方法です。

 割と簡単に波などを作れることがわかったので、いろいろ遊んでいきたいです。


・参考資料

【VSCode】Live Shareの導入と簡単な使い方

 VSCodeにはLive Shareという拡張機能があります。

 これを使えば画面共有などが簡単にできるので、今回はその導入方法と簡単な使い方の説明をしていきます。

 では始めます。


1:Live Shareをインストールして使えるようにする
 VSCodeを立ち上げ、左側の拡張機能アイコンをクリックして検索欄に「live share」と入力して出てきた一番上のものをインストールします。
f:id:rikoubou:20190617162228p:plain

 次にLive Share Extension Packもインストールします。
f:id:rikoubou:20190617163100p:plain

 上記のインストールが終了したら、VSCodeを再起動させます。

 再起動後、VSCodeの左下の部分に「Live Share」という項目が追加されているのでここをクリックします。
f:id:rikoubou:20190620152323p:plain

 するとブラウザが立ち上がり、以下のようにMicrosoftのアカウントかGithubのアカウントでのサインインの画面になるのでどちらか選んでサインインします。
f:id:rikoubou:20190620152539p:plain

 Microsoftアカウントでサインインした場合は以下のような画面になるので「はい」のボタンをクリックします。
f:id:rikoubou:20190620152840p:plain

 サインインが完了したら以下のような画面になるのでブラウザを閉じます。
f:id:rikoubou:20190620152907p:plain

 これでVSCodeでLive Shareを使う準備は完了です。
 

2:Live Shareのセッションを開始する
 準備ができたのでLive Shareを実際に使っていきます。

 使い方としては最初にVSCodeの左下にある「Live Share」ボタンをクリックします。
 f:id:rikoubou:20190626171126p:plain

 初回起動時には以下のようなメッセージが出る場合があるので「OK」をクリックします。
f:id:rikoubou:20190626171308p:plain

 共有したいフォルダかワークスペースを選択して開きます。
f:id:rikoubou:20190626171552p:plain

 すると左下に以下のようなメッセージが出ます。この時点でセッション用URLがコピーされていますが、もう一度コピーしたい場合は「Copy Again」ボタンをクリックします。
f:id:rikoubou:20190626224025p:plain

 ちなみにセッション用URLは以下のようになっており、毎回別のURLになります。

https://prod.liveshare.vsengsaas.visualstudio.com/join?XXXXXXXXXXXXXXXXXXX

 このURLをチャットなりメールなりで共有したい人に伝えます。

 セッションに参加する人はこのURLを使って参加します。

 セッションを終了させたい場合は、以下の赤枠のボタンを押すと終了できます。
f:id:rikoubou:20190626224755p:plain


3:Live Shareのセッションに参加する
 2でセッションURLを共有された側は、そのURLのブラウザで開きます。

 するとページが開いて以下のようなポップアップが出るので「Live Share for VSCode.appを開く」をクリックします(画像はMacOSの場合)。
f:id:rikoubou:20190626225654p:plain

 VSCodeが立ち上がってしばらく待つとセッションに参加できます。


 以上がLive Shareの導入と簡単な使い方になります。

 セッション中は参加している全員がファイルを編集したり編集した箇所を確認できるので、リモートでのペアプログラミングもできてとても便利です。


おまけ:Live Shareのボタンを押してエラーになる場合
 Live Shareのボタンを押しても以下のようなエラーが出る場合があります。
f:id:rikoubou:20190626171744p:plain
 その場合は一度PC自体を再起動させてからVSCodeを立ち上げると直っている場合があります(自分は再起動でこのエラーが直りました)。
 

・参考資料

【映画鑑賞】海獣の子供の感想(ネタバレあり)

www.youtube.com

 STUDIO4℃と米津玄師の主題歌で話題の映画「海獣の子供」についての個人的な感想をつらつらを書いていこうかと思います(ちなみにこの記事を書いている時点で2回鑑賞しています)。また原作は未読です。

 基本的には「ネタバレを気にしない」方向でいくので注意してください。

 この記事で取り上げている画像は全て参考資料にある予告などからのキャプチャになります。

 では始めます。



1:作品の見方
 CMでは一般向けのエンタメ作品のような印象を受けますが、実際に鑑賞するとどちらかといえばアートに近い作品だと思う人が多いかと思います。
 一見すると難しいかもしれませんが作品のテーマだったり大事にしている部分については全てセリフで説明されているので、それらを拾っていけばなんとなくでも「こういう作品なんだな」と理解はできるかと思います。


2:メタ構造
 基本的にこの海獣の子供という作品はメタ構造になっています。
 祭りの時にデデのセリフであった「生物も宇宙も同じ、地球は子宮で隕石は精子」という言葉のように、主人公の琉花の日常と宇宙も繋がっているような構造になっています。そしてそれは琉花だけでなく、全ての生命についても同列に語られています。
 以下のシーンではクジラの白い斑点一つ一つが銀河のようにも見えます。作中にも「人間は宇宙」というような会話もあり、これは演出的にも生命の中に銀河があることを示していると思います。
f:id:rikoubou:20190623203932p:plain

 また1つの物事も2つの視点から描かれてもいます。
 死ぬことは生まれること、見つけることは見つけられること、食べることは受け継ぐこと。
 作中で「見つけて欲しいから光る」という内容のセリフが出てきますが、光ることで他の生物に気づかれ食べられてしまうこともあります。見つけられるということは、逆に食べられてしまうというリスクもあるということです。

 琉花が巨大クジラに食べられた体内で、タツノオトシゴの光を食べようと魚が群がってきたシーンもあります。
f:id:rikoubou:20190623205431p:plain

 もはや人でなくなった状態の海を目で見つけて、海が生み出す銀河を食べるシーンもあります。
f:id:rikoubou:20190623210759p:plain
f:id:rikoubou:20190623210056p:plain

 食べた者は食べられた者の命を受け継ぐこと。だからこそ作中に出てくる食事シーンは印象的に描かれており、祭りの最後で海の欠片である銀河を手にした琉花はそれを飲み込んだのだと思います。
f:id:rikoubou:20190623205915p:plain

 連綿と受け継がれる生命の壮大な物語の最後は、琉花の日常に戻ってきます。
 デデの「あなたはあなたで良い」という言葉を受け取った琉花は、怪我を負わせた相手と坂を登って向き合います。これは琉花も相手も「互いの気持ちに気づいた」からこそ、球を投げ返すというコミュニケーションに繋がったのだと思います。


3:テーマ
・「海で起きるほとんどの事は、誰にも気づかれない」
f:id:rikoubou:20190623201124p:plain
 予告に出てくるこの言葉もテーマの一つになっていると思います。
 誰にも気づかれない中でも海で行われている生命たちの活動は確実に存在しています。主人公の琉花も自分の気持ちが他人に気づいてもらえないことに悩みます。琉花は海と空と出会って自分と世界との関係に踏み込んでいくわけですが、
 琉花が水族館で海と出会うシーンでは、最初は海が映像に映っていません。琉花が「誰!?」とちゃんと相手を認識した時に初めて画面に海の姿が映ります。シュレディンガーの猫みたいに「琉花が海の存在に気づいた」から海が存在できたという映像的な演出なのではないかと思います。
「気づく、見つける」ことで初めて「存在」することがわかる。そしてそれを知ろう、理解しようとする、いわば人間だけでなく他の生命や宇宙といったものとのコミュニケーションも描いているのではないかと思います。

・「宇宙の内の1割しか人間は理解できていない」
 こちらは作中に出てきたセリフです。同じように「言葉にすると本来の気持ちがなくなってしまう、表現できない」というようなセリフも出てきました。
 風の音もクジラの音も気持ちそのままを伝えようとしており、言葉だけでは伝えられないものを伝えようとするいわばコミュニケーションの物語でもあると思っています。「見つけて欲しいから光る」というのも一種のコミュニケーションであり、繋がりたいから「存在」に「気づいて」欲しいのです。
 だからこそ琉花は冒頭で怪我を負わせた選手やチームメイト、先生、両親とのディスコミュニケーションから始まっており、海と出会うまでは光の当たらない日陰に隠れるような行動をしています。しかし最後には怪我を負わせた相手にちゃんとボールを投げ返すコミュニケーションをするようにまでなっています。

・「生命の衝動を瞠目せよ」
f:id:rikoubou:20190623201240p:plain
 予告にあるように宇宙の誕生までを想像させる祭りの映像はとにかく圧巻で、それこそ主題歌にある「大切なことは言葉にならない」映像の連続です。セリフはあまりなく抽象的な映像表現が多いですが、受精だったり受精卵の細胞分裂だったりと割とわかりやすい表現も多く取り入れられていました。
 生命が生まれるのと同じように宇宙や銀河も生まれている、そう予感させる壮大な映像が繰り広げられるその様はまさに生命の衝動と言える体験でした。
 そしてエンドロール後に描かれる琉花が母親と赤ちゃんのへその緒を切るシーン。「命を絶つ音がした」というセリフは母親のお腹の中という海から赤ちゃんを断ち切り(死)、新たに肺呼吸をする陸上の生命として産み落とされた(生)ということを表していると思います。出産と赤ちゃんの産声も身近な生命の衝動なのです。


4:その他気づいたところ
・琉花の膝の怪我
 冒頭で琉花も膝に傷を負ってしまい、それから何度か膝の傷に注目するカットが出てきます。これは琉花の心の傷も表しているような気がします。
 海に誘われて見た光る流星のシーンから少しずつ膝の傷が治っていき、空と出会う頃には完全に膝の傷が治っています。海と陸に出会うことで琉花の心の傷も癒えているという表現なのかもしれません。

・琉花という名前
 原作未読なので申し訳ないのですが、海と空が出てくるのにその間である「陸」が出てこないのはおかしいと思っていました。琉花という名前は「陸(りく)」を50音表で見て「り」を一つ下げて「る」、「く」を二つ上げて「か」にして女の子っぽい名前にしたのかな、とか思いました。


 以上、長々と書いていたら感想なのかなんなのかよくわからなくなってしまいました。

 とにかく感想を一言では言い表せないほどの内容と表現がものすごい映像で迫ってくる作品でした。個人的にはなんども見直したくなる作品だったので早くメディア化して欲しいですね。


・参考資料

【ESP-32/Arduino】Windows10にESP-32の環境を構築する

 以前の記事でMacOSにESP-32の開発環境は作成しました。

 今回はWindows10に同じようにESP-32の環境を構築してみた備忘録になります。

 使用するESP32のボードは以下という前提で進めます。


 では始めます。


1:Arduino IDEをインストールする

 上記のページからArduino IDEをダウンロードしてインストールします。
f:id:rikoubou:20190619152057p:plain


2:Arduino IDEでESP-32の設定を行う
 あとの手順は以下のページにある通りに進めていけばよいです。

 
 Stable release linkと書かれた部分のリンク(赤枠の部分のURL)をコピーしておきます(2019/10/21:リンクが変更になっていたので修正)。
f:id:rikoubou:20191021143014p:plain

 Arduino IDEを起動させて「ファイル」→「環境設定」を選択します。
f:id:rikoubou:20190619152933p:plain

 赤枠部分にコピーしたURLをペーストしてOKボタンをクリックします(2019/10/21:リンクが変更になっていたので修正)。
f:id:rikoubou:20191021143441p:plain

 その後「ツール」→「ボード」→「ボードマネージャ」を選択します。
f:id:rikoubou:20190619153714p:plain

 検索欄に「esp32」と入力して出てきたものをインストールします。
f:id:rikoubou:20190619153916p:plain

 INSTALLEDと表示されていればインストールが完了しています。
f:id:rikoubou:20190619154102p:plain


3:ESP-32にテストスケッチを書き込む
 2までの準備ができたら、USBケーブルを使ってESP32-DevKitとPCを接続します。

 Arduino IDEの「ツール」→「ボード」→「ESP32 Dev Module」を選択します。
f:id:rikoubou:20190619155757p:plain

 その後以下のようにアップロードスピードを設定し、接続しているESP32-DevKitのシリアルポートを選択します。
 f:id:rikoubou:20190619155713p:plain

 以下のテストスケッチをコピペして保存します。

・serial_test.ino

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("test");
  delay(1000);
}

 左上の矢印のボタンをクリックしてESP32-DevKitにスケッチを書き込みます。
f:id:rikoubou:20190619160435p:plain

 書き込みが終了したら左上のシリアルモニタのボタンをクリックします。
f:id:rikoubou:20190619160815p:plain

 アップロードスピードと同じ値に設定すると、1秒ごとにtestという文字列が表示されます。
f:id:rikoubou:20190619161016p:plain


 以上がWindows10でのESP-32の環境を構築する方法です。

 MacOSの時よりもスケッチを書き込む時間がかかるのがちょっと気になりました…。


・参考資料

【python】Windowsにdlibをインストールする

 以前の記事でMacにdlibをインストールしました。

 今回はWindowsでもdlibのインストールをやってみたのでその備忘録です。

 では始めます。


0:前提条件
 以下の記事を参考にしてWindowspythonOpenCVを入れて使える状態にしておきます。
rikoubou.hatenablog.com


1:CMakeのインストール
 最初にCMakeをインストールします。

 CMakeのダウンロードページからインストーラを選択してダウンロードします(ここでは3.15.0の64bit)。
f:id:rikoubou:20190617151715p:plain

 インストーラを起動させて指示通りにインストールしていけばOKです。

 CMakeがインストールできたかはPowerShellを立ち上げ、以下のコマンドを入力します。

$ cmake --version

 エラーなくCMakeのバージョンが表示されればインストールできています。


2:Visual Studioのインストール
 次にCMakeのバージョンに合ったVisual Studioコンパイラを入れる必要があります。
 1でCMake 3.15.0をインストールしていた場合は、Visual Studio 2019のコンパイラが必要になります。

 個人利用なのでCommunityを選択してダウンロードします。
f:id:rikoubou:20190617153134p:plain

 インストーラを起動させて色々やっていくと途中で以下のような画面になりますが、コンパイラさえ入ればいいので「C++によるデスクトップ開発」にのみチェックを入れてインストールします。
f:id:rikoubou:20190617153852p:plain

 これでVisual Studio 2019のコンパイラが入ります。


3:pipを使ってdlibをインストールする
 ようやくdlibをインストールする準備ができたのでPowerShellを立ち上げて、以下のpipコマンドでdlibをインストールします。

$ pip install dlib

 インストールにしばらく時間がかかりますが、エラーなく終了していれば大丈夫です。

 PowerShellを立ち上げpythonでimportしてエラーが出なければちゃんとインストールできています。

$ python
>>> import dlib # ここでエラーがでなければOK
>>> exit()


おまけ:自分が嵌ったエラー
 dlibのインストールコマンドでエラーになる場合があります。
 自分の場合はCMakeもVisual Studioも入れているのに以下のようなエラーが出ました。

Collecting dlib
  Using cached https://files.pythonhosted.org/packages/05/57/e8a8caa3c89a27f80bc78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz
Installing collected packages: dlib
  Running setup.py install for dlib ... error
--- 中略 ---
    -- Building for: Visual Studio 16 2019
    CMake Warning (dev) in CMakeLists.txt:
      No project() command is present.  The top-level CMakeLists.txt file must
      contain a literal, direct call to the project() command.  Add a line of
      code such as
    
        project(ProjectName)
    
      near the top of the file, but after cmake_minimum_required().
    
      CMake is pretending there is a "project(Project)" command on the first
      line.
    This warning is for project developers.  Use -Wno-dev to suppress it.
--- 中略 ---
    -- Found PythonInterp: C:/xxxxx/Python/Python37-32/python.exe (found version "3.7.3")
    CMake Error at C:/xxxxx/pip-install-ykd_q9zp/dlib/dlib/external/pybind11/tools/FindPythonLibsNew.cmake:122 (message):
      Python config failure: Python is 32-bit, chosen compiler is 64-bit
--- 以下略 ---

 このエラーの中で重要なのは「Python config failure: Python is 32-bit, chosen compiler is 64-bit」の部分で、要は「Pythonは32bitだけどコンパイラは64bitなのでエラー」ということです。

 pythonのインストール時に64bitか32bitかを確認しておく必要があります。
 もちろんCMakeのインストール時にも64bitか32bitかを確認して合わせるようにしましょう。


 以上がWindowsにdlibをインストールする方法です。

 Macの時とは違ってVisual Studioのインストールが必要だったりと色々と大変でした…。


・参考資料

【python/OpenCV】Windows10にpythonとOpenCVの環境を構築する

 今まで以下のようにDebianMacOSでのOpenCVの環境構築をやってきました。

 今回はタイトルにある通りWindows10でもpythonOpenCVを入れるところまでやってみたのでその備忘録です。

 では始めます。


1:pythonのインストール

※2019/06/17:色々間違っていたので修正しました。

 まずは公式ページからpythonをインストールします。

 公式ページのDownloadのところからWindowsを選択します。
f:id:rikoubou:20190617144610p:plain

 Downloadのページにある中からバージョンと32bitか64bitかを選んでダウンロードします(今回は3.7.3の64bitを選択しました)。
f:id:rikoubou:20190617144834p:plain

 ダウンロードしたインストーラを起動させると以下のような画面になるので、左下のチェックボックス2つにチェックを入れます。
f:id:rikoubou:20190617145251p:plain

 あとはインストーラーの指示に従っていけばpythonのインストールは終了します。

 インストールが終了したらPower Shellを起動させて、以下のバージョン確認コマンドでエラーがなければインストールが完了しています。

$ python -V

 エラーが出た場合はチェックボックスの両方にチェックが入ってなかった(環境変数のパス設定をしていない)可能性が高いので、一度アンインストールしてからやり直すと良いかと思います。


2:pipの最新化
 実は公式のインストーラにはpipも含まれています。なのでOpenCVなどもpipで入れることができます。

 はじめに以下のコマンドでpipのバージョンを確認します。

$ pip --version

 最新化されてない場合があるので、以下のコマンドでpipを最新化します。

$ python -m pip install --upgrade pip

 もう一度pipのバージョン確認のコマンドを実行してバージョンアップされていることを確認します。


3:OpenCVのインストール
 pythonとpipが入ったので、以下のコマンドでOpenCVをインストールします。

拡張機能なしの場合

$ pip install opencv-python

拡張機能ありの場合

$ pip install opencv-contrib-python

 上記のどちらかのコマンドを実行したあと、Power Shellからpythonを起動させてimport cv2をやってエラーが出なければインストールできています。

$ python
>>> import cv2
>>> exit()


 以上がWindows10でpythonOpenCVの環境を構築する方法です。

 思っていた以上に環境構築が楽だったので少し感動しました。


おまけ:その他pipでインストールしたもの
・matplotlib

$ pip install matplotlib


・参考資料