2020年08月02日

blender2.8.3 eeveeでViewLayerを使用したマスク合成方法二つ。どこでもドア。

2.7.9以前のBlenderRenderレンダラーを使って合成していた内容をblender2.8.3に移行。eeveeレンダラーを使用してのマスク方法を検証する必要があったのでViewLayerを使用して二つの方法でマスク検証しました。
(1)Holdoutボタンを使用してのマスクの作成。
(2)Holdoutシェーダーを使用してのマスクの作成。

以下が結果。どこでもドアのような合成。
(1)左側より(2)右側がfreestyleの描写がうまくいきました。ちなみにeeveeではCiclesのようにMaskIDやCryptmatteでのマスクは作れないです。



(1)Holdoutボタンを使用してのマスクの作成。
基本的には間にセパレート用にkabeオブジェクトを作りマスクする事で実現しています。Holdoutボタンではfreestyleを切り取ってくれなかったので各ViewLayerについてfreestyleを別出力して本体のαチャンネルを使用して切り取っています。ちなみにViewlayerはアウトライナーの右上のボタンから作る事ができます。アウトライナーとノードエディタは以下。(文字がつぶれていれば画像のみ表示をさせてみてください。)


kabeオブジェクトの影は欲しいのでマテリアルを調整。本体はtranparentBSDFを使用して、シェーダー設定で影のみを落とすようにしておく。影のマテリアル設定は画像をキャプチャしておくのをわすれました。マテリアルプロパティ>Settings>Blend Mode:Alpha Clip かつ Shadow Mode:Opaque です。


できた動画が以下。

Holdoutボタンではfreestyleを切り取られないのでオブジェクトのαチャンネルを使ってfreestyleを切り抜きました。オブジェクトから溢れたfrestyleの線が切り取られます。freestyleを変形させるほど切り取られる制限を受けます。



(2)Holdoutシェーダーを使用してのマスクの作成。
同じくkabeオブジェクトを使用しての合成ですが(1)と違いαチャンネルによる切り抜きを行いません。つまり"背景と線の画像"の上に"小物と小窓の線と画像"をのせるイメージです。kabeオブジェクトは二つ用意します。影を出力するためマテリアル設定したkabe_shadowオブジェクトと、Holdoutシェーダーをマテリアル設定するためのkabeオブジェクトです。以下がコンポジットウィンドウとアウトライナー。(文字がつぶれていれば画像のみ表示を。)


kabe_shadowの影のみを落とす方法は(1)で前述したので、マスクを作るためのkabeオブジェクトのシェーダーノードのみを記述。Holdoutをoutputをつなぐだけで背後のオブジェクトは非表示になります。以下。


出力した動画は以下、

Holdoutシェーダーのマスクがある箇所はfreestyleが作られない事がわかり、結局freestyle出力用に三つ目のViewレイヤーを作りました。freestyleの線の感じはきれいに出ていますが、元々、freestyleの前後判定の精度が高くないため、たまに壁の向こうのラインが見えます。



■参考
Blender 2.8 View Layer & Collectionの基礎
https://3dcg.hamken100.com/2018/12/21/blender28-viewlayer-collection/

一つの.blendファイルに複数のシーンを持たせる
http://masayuki-osaka.hatenablog.com/entry/2019/07/28/013300

ID Mask Node
https://docs.blender.org/manual/en/latest/compositing/types/converter/id_mask.html

Freestyle
http://cg.xyamu.net/Blender/entry286
ラベル:Blender Dothuman
烏野の箱庭ページ烏野の箱庭 …動画・絵・漫画・脚本などの作品紹介
烏野のyoutubeページ烏野博史動画 …広告・実験・講習用映像のyoutubeチャンネル
烏野のyoutubeページうのひろし日々描描 …作画配信のyoutubeチャンネル
UNOUNOのPixiv …絵、デザイン資料、漫画、実験画像
karasuno10をフォローしましょうkarsauno10のTwitter …考え、宣伝
posted by karasuno10 at 09:28 | Comment(0) | 動画>Blender | このブログの読者になる | 更新情報をチェックする

2020年04月06日

sambaファイルサーバへのアップロード・ダウンロード同期Windowsパッチ

普段サーバにデータを置いて作業をしているのですが、描画ソフトClipstudioがネットワークからの参照を拒否してくるので、解決策としてアップロード・ダウンロード用のWindowsパッチを組みました。いまの所、漫画・絵コンテ制作に使えています。

・ローカル作業フォルダをパスワードのあるサーバのフォルダと同期。
・作業フォルダと同じ階層に置いておく事を想定。
・各作業PCに置いたbatファイルを使用。
・一日の作業終わりにupload.batをダブルクリック。
・一日の作業はじめにdownload.batをダブルクリック。
・同期先が新しいと保留。確認を表示。

以下、upload.batとdownload.bat。 "■■■"の間の"同期元フォルダ、同期先フォルダ、ユーザー、パスワード"の変数を書き換えてください。

upload.bat

@echo off
rem 【ローカルの作業フォルダにおいてこのバッチファイルをダブルクリックする事でサーバのフォルダと同期します。】

setlocal
rem ■■■■■■■■■■■■■■■■■■■■■■
rem ------ 定義、以下を環境に合わせて定義 ------
rem SERVER_PATH=【アップロード先のsambaサーバーのIPかホスト名から始まるパス。絶対パスが都合が良い】
set SERVER_PATH=\\192.168.11.25\path\to\comic_folder
rem LOCAL_PATH=【アップロード元となるローカルフォルダのパス、バッチファイルupload.batからの相対パスが都合が良い】
set LOCAL_PATH=comic_folder
rem USERNAME=【sambaのユーザー名】
set USERNAME=hoge
rem PASSWORD=【sambaユーザーのパスワード】
set PASSWORD=hogepassword
rem ■■■■■■■■■■■■■■■■■■■■■■
rem ISCHANGEは管理用なので変更しないでください------------------
set ISCHANGE=0
rem ------------------

rem ------ 処理 ------
rem 1. 接続
net use %SERVER_PATH% %PASSWORD% /user:%USERNAME% /Y
rem 2. 処理
chcp 65001 > nul
robocopy %LOCAL_PATH% %SERVER_PATH% /E /XO /NP /V /LOG:upload.log
rem 3. 切断
net use %SERVER_PATH% /delete > nul


rem 4.結果の連絡
chcp 932 > nul
rem 新しファイルの確認。
findstr /I /c:"New File" upload.log > nul
if "%ERRORLEVEL%"=="0" (
echo 新しいファイルをアップロードしました。
echo ----------------------------------------
findstr /I /c:"New File" upload.log
echo ----------------------------------------
set ISCHANGE=1
)

findstr /I "Newer" upload.log > nul
if "%ERRORLEVEL%"=="0" (
echo ファイルをアップロード更新。
echo ----------------------------------------
findstr /I "Newer" upload.log
echo ----------------------------------------
set ISCHANGE=1
)
rem 古いファイルの確認。
findstr /I "older" upload.log > nul
if "%ERRORLEVEL%"=="0" (
echo こちらが古いのでアップロードを見送りました。ご確認ください。
echo ----------------------------------------
findstr /I "older" upload.log
echo ----------------------------------------
set ISCHANGE=1
)

rem 不明なファイルの確認。
findstr "EXTRA" upload.log > nul
if "%ERRORLEVEL%"=="0" (
echo アップロード先に妙なファイルがあるのを放っておきました。ご確認ください。
echo ----------------------------------------
findstr "EXTRA" upload.log
echo ----------------------------------------
set ISCHANGE=1
)
rem 何かしらの特記事項があればキー入力があるまでストップ。
if "%ISCHANGE%"=="1" (
echo 画面を閉じるには何かキーを押してくだささい。
PAUSE > nul
)


download.bat

@echo off

rem 【ローカルの作業フォルダにおいてこのバッチファイルをダブルクリックする事でサーバのフォルダと同期します。】

setlocal
rem ■■■■■■■■■■■■■■■■■■■■■■
rem ------ 定義、以下を環境に合わせて定義 ------
rem SERVER_PATH=【ダウンロード元のサーバーのIPかホスト名から始まるパス。絶対パスが都合が良い】
set SERVER_PATH=\\192.168.11.25\path\to\comic_folder
rem LOCAL_PATH=【ダウンロード先となるローカルフォルダのパス、バッチファイルdownload.batからの相対パスが都合が良い】
set LOCAL_PATH=comic_folder
rem USERNAME=【sambaのユーザー名】
set USERNAME=hoge
rem PASSWORD=【sambaユーザーのパスワード】
set PASSWORD=hogepassword
rem ■■■■■■■■■■■■■■■■■■■■■■
rem ISCHANGEは管理用なので変更しないでください------------------
set ISCHANGE=0
rem ------------------

rem ------ 処理 ------
rem 1. 接続
net use %SERVER_PATH% %PASSWORD% /user:%USERNAME% /Y
rem 2. 処理
chcp 65001 > nul
robocopy %SERVER_PATH% %LOCAL_PATH% /E /XO /NP /V /LOG:download.log
rem 3. 切断
net use %SERVER_PATH% /delete

rem 4.結果の連絡
chcp 932 > nul
rem 新しファイルの確認。
findstr /I /c:"New File" download.log > nul
if "%ERRORLEVEL%"=="0" (
echo 新しいファイルをダウンロードしました。
echo ----------------------------------------
findstr /I /c:"New File" download.log
echo ----------------------------------------
set ISCHANGE=1
)

findstr /I "Newer" download.log > nul
if "%ERRORLEVEL%"=="0" (
echo ファイルをダウンロード更新。
echo ----------------------------------------
findstr /I "Newer" download.log
echo ----------------------------------------
set ISCHANGE=1
)
rem 古いファイルの確認。
findstr /I "older" download.log > nul
if "%ERRORLEVEL%"=="0" (
echo あちらが古いのでダウンロードを見送りました。ご確認ください。
echo ----------------------------------------
findstr /I "older" download.log
echo ----------------------------------------
set ISCHANGE=1
)

rem 不明なファイルの確認。
findstr "EXTRA" download.log > nul
if "%ERRORLEVEL%"=="0" (
echo ダウンロード先に妙なファイルがあるのを放っておきました。ご確認ください。
echo ----------------------------------------
findstr "EXTRA" download.log
echo ----------------------------------------
set ISCHANGE=1
)
rem 何かしらの特記事項があればキー入力があるまでストップ。
if "%ISCHANGE%"=="1" (
echo 画面を閉じるには何かキーを押してくだささい。
PAUSE > nul
)

計算結果の一時保存が汚くなりそうだったので避けました。
重複処理がありますが、軽快で簡単に使えるかと思います。
烏野の箱庭ページ烏野の箱庭 …動画・絵・漫画・脚本などの作品紹介
烏野のyoutubeページ烏野博史動画 …広告・実験・講習用映像のyoutubeチャンネル
烏野のyoutubeページうのひろし日々描描 …作画配信のyoutubeチャンネル
UNOUNOのPixiv …絵、デザイン資料、漫画、実験画像
karasuno10をフォローしましょうkarsauno10のTwitter …考え、宣伝
posted by karasuno10 at 19:04 | Comment(0) | PC技術 | このブログの読者になる | 更新情報をチェックする

2020年03月02日

2020年の年賀状

皆さま。あけましておめでとうございます。もう3月ですが、2020年の年賀状用の絵を置いておきます。



印刷時に家のレーザープリンターがうまく色を分けて印刷してくれなかったので、コントラストを高めに調整したのが以下です。印刷時には大きく違うのですが、画面上ではあまり変わらないです。



Photoshopを使用する時はRGBで作成してそのまま印刷するほうが、途中からCMYKに変更するより印刷がきれい傾向があると思うので、ClipstudioEXでもRGBで作成したのですが、もっと良い方法があるかもしれないですね。
烏野の箱庭ページ烏野の箱庭 …動画・絵・漫画・脚本などの作品紹介
烏野のyoutubeページ烏野博史動画 …広告・実験・講習用映像のyoutubeチャンネル
烏野のyoutubeページうのひろし日々描描 …作画配信のyoutubeチャンネル
UNOUNOのPixiv …絵、デザイン資料、漫画、実験画像
karasuno10をフォローしましょうkarsauno10のTwitter …考え、宣伝
posted by karasuno10 at 23:15 | Comment(0) | 絵>絵 | このブログの読者になる | 更新情報をチェックする