2022/04/20(水) [n年前の日記]
#1 [moho] Mohoのパースペクティブワープを試した
せっかく Moho 13.5.3 にアップデートしたので、Moho の機能について調べているところ。環境は Windows10 x64 21H2。
チュートリアルpdf(英文)を眺めていたら、パースペクティブワープ(Perspective warp)なる機能が目に入って、気になったので使い方を調べてみた。Moho 13.5.2 で追加された機能、なのかな。たぶん。
チュートリアルpdf(英文)を眺めていたら、パースペクティブワープ(Perspective warp)なる機能が目に入って、気になったので使い方を調べてみた。Moho 13.5.2 で追加された機能、なのかな。たぶん。
◎ パースペクティブワープについて。 :
パースペクティブワープは、ベクター/イメージレイヤーを、パースをつけて変形させる機能。変形させたいベクター/イメージレイヤーとは別に、ベクターレイヤーを新規作成しておいて、そこに塗り潰した四角形を描いて、「このベクターレイヤーを変形指定に使うよ」と、変形したいレイヤーのプロパティで設定してやれば、パース変形をすることができる。
もっとも、Moho は以前からレイヤーに対して、3Dで移動したり回転させたりできたので、「パース変形? 前からできてましたよね?」てな印象ではあるのだけど…。
ただ、回転角度を指定するのではなく、四角形の4つの頂点位置を調整して変形具合を指定できるあたりが、絵描きさんには分かりやすいのかもしれないなと…。例えば、手描きの動画に対して、一部分にテクスチャをパース変形させながら貼り込んでいく場合は、四角形の頂点で位置決めできたほうが楽なはず。宮崎アニメの「風立ちぬ」の計算尺のカットとか、ああいう感じで。
さておき。実際に使ってみる。
チュートリアルpdf上ではベクターレイヤーを変形させていたけれど、今回はイメージレイヤーを変形させてみることにした。変形させたいイメージレイヤーの上に、ベクターレイヤーを新規作成。レイヤー名は「mesh map」にしておいたけれど、分かりやすい名前なら何でもいいはず。
例えば、イメージレイヤーが下のような見た目だったら…。
先ほど新規作成したベクターレイヤー(mesh map レイヤー)上で、変形させたい部分を覆い隠すように、「塗り潰した」四角形を描いてやる。「シェイプを描画」ツールを選んで、四角形のアイコンをクリックして、「自動塗りつぶし」にチェックを入れて、キャンバス上で左ボタンを押しながらドラッグ。
mesh mapレイヤーのプロパティ設定を変更。「編集時に非表示」「このレイヤーをレンダリングしない」にチェックを入れる。
「このレイヤーを変形指定に使うよ」的な設定をする。変形させたいベクター/イメージレイヤーのプロパティ設定を開く。レイヤーウインドウ上で、目的のレイヤーをダブルクリックするか、レイヤーを選択してから、上のほうにある「…」アイコンをクリックすれば、そのレイヤーのプロパティが表示される。
ベクターレイヤーなら「ベクター」タブを、イメージレイヤーなら「イメージ」タブを選択。下のほうに「スマートワープレイヤー」という項目があって「なし」になっているはずなので、クリックして「mesh map」を選択してやる。ここで選択したレイヤーが、変形具合を指定するレイヤーになる。
mesh map レイヤーを選択して、タイムライン上の現在フレームを0フレーム以外(1〜最終フレーム)にしてから、四角形の頂点の位置を変更してやると、ベクター/イメージレイヤーがパースのついた状態で変形してくれる。0フレーム以外にしないと頂点位置を変更できないので注意。
そんなわけで、以下のようなアニメが作れました。
でもまあ、最初に書いた通り、レイヤーを3Dで移動したり回転させてもパース変形ができるので…。場面に合わせて、やり易いほうで作業すればいいのだろうなと…。
もっとも、3Dっぽく見せたいなら、blender等の3DCGソフトを使ったほうが良くね? という気もする…。簡単なモデルを作って、テクスチャ貼って、モデルを動かすだけでも、イイ感じの映像になるよな…。
もっとも、Moho は以前からレイヤーに対して、3Dで移動したり回転させたりできたので、「パース変形? 前からできてましたよね?」てな印象ではあるのだけど…。
ただ、回転角度を指定するのではなく、四角形の4つの頂点位置を調整して変形具合を指定できるあたりが、絵描きさんには分かりやすいのかもしれないなと…。例えば、手描きの動画に対して、一部分にテクスチャをパース変形させながら貼り込んでいく場合は、四角形の頂点で位置決めできたほうが楽なはず。宮崎アニメの「風立ちぬ」の計算尺のカットとか、ああいう感じで。
さておき。実際に使ってみる。
チュートリアルpdf上ではベクターレイヤーを変形させていたけれど、今回はイメージレイヤーを変形させてみることにした。変形させたいイメージレイヤーの上に、ベクターレイヤーを新規作成。レイヤー名は「mesh map」にしておいたけれど、分かりやすい名前なら何でもいいはず。
例えば、イメージレイヤーが下のような見た目だったら…。
先ほど新規作成したベクターレイヤー(mesh map レイヤー)上で、変形させたい部分を覆い隠すように、「塗り潰した」四角形を描いてやる。「シェイプを描画」ツールを選んで、四角形のアイコンをクリックして、「自動塗りつぶし」にチェックを入れて、キャンバス上で左ボタンを押しながらドラッグ。
mesh mapレイヤーのプロパティ設定を変更。「編集時に非表示」「このレイヤーをレンダリングしない」にチェックを入れる。
「このレイヤーを変形指定に使うよ」的な設定をする。変形させたいベクター/イメージレイヤーのプロパティ設定を開く。レイヤーウインドウ上で、目的のレイヤーをダブルクリックするか、レイヤーを選択してから、上のほうにある「…」アイコンをクリックすれば、そのレイヤーのプロパティが表示される。
ベクターレイヤーなら「ベクター」タブを、イメージレイヤーなら「イメージ」タブを選択。下のほうに「スマートワープレイヤー」という項目があって「なし」になっているはずなので、クリックして「mesh map」を選択してやる。ここで選択したレイヤーが、変形具合を指定するレイヤーになる。
mesh map レイヤーを選択して、タイムライン上の現在フレームを0フレーム以外(1〜最終フレーム)にしてから、四角形の頂点の位置を変更してやると、ベクター/イメージレイヤーがパースのついた状態で変形してくれる。0フレーム以外にしないと頂点位置を変更できないので注意。
そんなわけで、以下のようなアニメが作れました。
でもまあ、最初に書いた通り、レイヤーを3Dで移動したり回転させてもパース変形ができるので…。場面に合わせて、やり易いほうで作業すればいいのだろうなと…。
もっとも、3Dっぽく見せたいなら、blender等の3DCGソフトを使ったほうが良くね? という気もする…。簡単なモデルを作って、テクスチャ貼って、モデルを動かすだけでも、イイ感じの映像になるよな…。
[ ツッコむ ]
#2 [moho] Mohoのクアッドワープを試した
Moho 13.5.2 から追加されたらしい、クアッドワープ(Quad warp)機能も試してみた。環境は Windows10 x64 21H2 + Moho Pro 13.5.3。
◎ クアッドワープについて。 :
今までの Moho のメッシュ変形は、三角形ポリゴンで領域を分割して変形させていたらしいけど、四角形ポリゴンで分割して変形させることもできるようになった模様。それがクアッドワープ、なのだろう…。
使い方はパースペクティブワープと同じで、変形させたいベクター/イメージレイヤーとは別にベクターレイヤーを作って、そこに四角形を意識したメッシュを描画しておいて、そのメッシュで変形具合を指定していくらしい。
とりあえず、実際に試してみる。
変形したいベクター/イメージレイヤーの上に、ベクターレイヤーを新規作成。名前は「Quad Mesh」にしてみたけど、分かりやすい名前なら何でもいい。
Quad Meshレイヤー上で、「ポイントを追加」ツールを使って、四角形を意識しつつ、変形したい部分を覆い隠すように線を引いて形を描いていく。
形が出来上がったら、スクリプトを使って塗り潰しをする。スクリプト → 描画 → Fill Quad Mesh、を選択。
自動で塗り潰しをしてくれた。もし、三角形や四角形以外の形があったらエラーを表示してくれるらしいので、その時は形を修正してスクリプトを実行し直す、のかな。たぶん。
Quad Meshレイヤーのプロパティを変更。「編集時に非表示」「このレイヤーをレンダリングしない」にチェックを入れる。
変形したいベクター/イメージレイヤーを選択して、プロパティを変更。「ベクター」または「イメージ」タブを選択。「スマートワープレイヤー」が「なし」になっているはずなので、クリックして「Quad Mesh」を選択。これで、Quad Meshレイヤー上の形に基づいて変形されるようになる。
Quad Mesh レイヤーを選択。タイムライン上で0フレーム以外にして、各頂点の位置を変更すると、変形ができる。
そんな感じで、こんなアニメが作れた。
四角形ポリゴンで変形すると、三角形ポリゴンで変形するより歪みが少なくなる場合があるらしいので、場面によって適切なポリゴン形状を選んで作業する、ということになるのかな…。たぶん。
使い方はパースペクティブワープと同じで、変形させたいベクター/イメージレイヤーとは別にベクターレイヤーを作って、そこに四角形を意識したメッシュを描画しておいて、そのメッシュで変形具合を指定していくらしい。
とりあえず、実際に試してみる。
変形したいベクター/イメージレイヤーの上に、ベクターレイヤーを新規作成。名前は「Quad Mesh」にしてみたけど、分かりやすい名前なら何でもいい。
Quad Meshレイヤー上で、「ポイントを追加」ツールを使って、四角形を意識しつつ、変形したい部分を覆い隠すように線を引いて形を描いていく。
- 「自動ウェルド」にチェックを入れて、既にあるポイントに自動で吸着するようにする。
- 「コーナーをシャープ」にチェックを入れて、直線で線が描かれるように指定。
- 後からスクリプトを使って自動で塗り潰しをするので、「自動塗りつぶし」「自動ストローク」のチェックは外しておく。
形が出来上がったら、スクリプトを使って塗り潰しをする。スクリプト → 描画 → Fill Quad Mesh、を選択。
自動で塗り潰しをしてくれた。もし、三角形や四角形以外の形があったらエラーを表示してくれるらしいので、その時は形を修正してスクリプトを実行し直す、のかな。たぶん。
Quad Meshレイヤーのプロパティを変更。「編集時に非表示」「このレイヤーをレンダリングしない」にチェックを入れる。
変形したいベクター/イメージレイヤーを選択して、プロパティを変更。「ベクター」または「イメージ」タブを選択。「スマートワープレイヤー」が「なし」になっているはずなので、クリックして「Quad Mesh」を選択。これで、Quad Meshレイヤー上の形に基づいて変形されるようになる。
Quad Mesh レイヤーを選択。タイムライン上で0フレーム以外にして、各頂点の位置を変更すると、変形ができる。
そんな感じで、こんなアニメが作れた。
四角形ポリゴンで変形すると、三角形ポリゴンで変形するより歪みが少なくなる場合があるらしいので、場面によって適切なポリゴン形状を選んで作業する、ということになるのかな…。たぶん。
[ ツッコむ ]
#3 [moho] MohoからH.264エクスポートが無くなっていて微妙に困る
Moho Pro 13.5.2 から、H.264 動画のエクスポート機能が無くなっているようで。微妙に困るなと…。
_Moho Pro 13.5.2から出力映像形式にMP4(H.264-AAC)が無くなった… : 第三次ねこら対策要塞基地日誌
_Moho 13.5.2 update is available! - Page 4 - Moho Forum
H.264 が無くなって、代わり(?)に HEVC/H.265(MP4(H.265-AAC)) が追加されているのだけど、H.265は各ブラウザが対応してないわけで…。
動画エクスポート時に「MP4(MPEG4-AAC)」を選べばいいのかなと思ったけれど、出力してみたら Firefox 99.0.1 x64 でも Google Chrome 100.0.4896.127 x64 でも開けない mp4 だった。H.264、かつ、yuv420p じゃないとダメなのだろう…。
仕方ないので、連番pngでエクスポートして、ffmpeg を使って連番pngから動画を作成した。
まあ、公式フォーラムを眺めても、誰も彼もが「連番pngでエクスポートして別ソフトで動画にするもんだろJK」と言ってるようでもあるし…。
そもそも、「Moho から mp4 でエクスポートすると何故か動画が1秒短くなる」「avi なら大丈夫だった」みたいな話も見かけた…。なんだか怖い。バグだろうか。そういえば、Mohoでループアニメを作って、mp4でエクスポートして再生したら、ループ時にギクシャクしちゃって首を捻った記憶があるような…。もしやそのせいだったのでは…。
以下、参考ページ。ありがたや。
_H.264でエンコード:tech.ckme.co.jp
余談。上記のような指定を、Windows上でbatファイルにする時は、「%」を「%%」にしておくこと。
_Moho Pro 13.5.2から出力映像形式にMP4(H.264-AAC)が無くなった… : 第三次ねこら対策要塞基地日誌
_Moho 13.5.2 update is available! - Page 4 - Moho Forum
H.264 が無くなって、代わり(?)に HEVC/H.265(MP4(H.265-AAC)) が追加されているのだけど、H.265は各ブラウザが対応してないわけで…。
動画エクスポート時に「MP4(MPEG4-AAC)」を選べばいいのかなと思ったけれど、出力してみたら Firefox 99.0.1 x64 でも Google Chrome 100.0.4896.127 x64 でも開けない mp4 だった。H.264、かつ、yuv420p じゃないとダメなのだろう…。
仕方ないので、連番pngでエクスポートして、ffmpeg を使って連番pngから動画を作成した。
まあ、公式フォーラムを眺めても、誰も彼もが「連番pngでエクスポートして別ソフトで動画にするもんだろJK」と言ってるようでもあるし…。
そもそも、「Moho から mp4 でエクスポートすると何故か動画が1秒短くなる」「avi なら大丈夫だった」みたいな話も見かけた…。なんだか怖い。バグだろうか。そういえば、Mohoでループアニメを作って、mp4でエクスポートして再生したら、ループ時にギクシャクしちゃって首を捻った記憶があるような…。もしやそのせいだったのでは…。
ffmpeg -y -framerate 24 -i render\output_%05d.png -vcodec utvideo out.avi ffmpeg -y -i out.avi -vcodec libx264 -pix_fmt yuv420p -r 24 -crf 6 -preset veryslow out_1280x720.mp4 ffmpeg -y -i out.avi -vf scale=512:-2:flags=lanczos -vcodec libx264 -pix_fmt yuv420p -r 24 out_512x288.mp4
- -y : ファイル上書きを許可。
- -framerate 24 : 入力は24FPSであると指定。
- -i render\output_%05d.png : 入力連番画像を指定。renderフォルダ内の output_00001.png - output_0xxxx.png が対象。
- -vcodec utvideo : 可逆圧縮の Ut Video codec で変換出力。
- out.avi : 出力ファイル名を指定。
- -i out.avi : 入力動画を指定。
- -vcodec libx264 -pix_fmt yuv420p : 各ブラウザでも開ける H.264動画を出力。
- -r 24 : 出力動画のフレームレートを 24FPS にする。
- -crf 6 : 品質固定モードで変換。数値が小さいほど高画質で、ファイルサイズも大きくなる。20以下を指定すると良いとか、16と18は見た目で違いが分からない、という話も見かけた。
- -preset veryslow : 時間をかけてファイルサイズを小さくするように計算させる。
- -vf scale=512:-2:flags=lanczos : Lanczosアルゴリズムで、横幅512ドットの動画に縮小。縦幅は自動計算してくれる。
以下、参考ページ。ありがたや。
_H.264でエンコード:tech.ckme.co.jp
余談。上記のような指定を、Windows上でbatファイルにする時は、「%」を「%%」にしておくこと。
[ ツッコむ ]
以上、1 日分です。