mieki256's diary



2024/07/01(月) [n年前の日記]

#1 [cg_tools] IC-Light拡張機能版のfork版を試用

昨日、Stable Diffusion web UI forge版に IC-Light 拡張機能版をインストールしたけれど、全然それらしく動いてくれなかった。

issue を眺めていたら、fork版があるらしいと知ったので、試してみた。

_Issues - huchenlei/sd-forge-ic-light
_Haoming02/sd-forge-ic-light: An Extension for Forge Webui that implements IC-Light

まずは、今まで入れていた版をアンインストール。「(Stable Diffusion web UI forgeインストールフォルダ)\webui\extensions\」以下の、sd-forge-ic-light フォルダを削除。

以下のURLを使って、fork版をインストール。
https://github.com/Haoming02/sd-forge-ic-light.git

エラーが出た。
*** Error running install.py for extension C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\webui\extensions\sd-forge-ic-light.
*** Command: "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\python.exe" "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\webui\extensions\sd-forge-ic-light\install.py"
*** Error code: 1
*** stdout: Installing onnxruntime-gpu for rembg
***
*** stderr: Traceback (most recent call last):
***   File "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\webui\extensions\sd-forge-ic-light\install.py", line 8, in <module>
***     launch.run_pip(f"install {dep}", f"{dep} for rembg")
***   File "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\webui\modules\launch_utils.py", line 152, in run_pip
***     return run(f'"{python}" -m pip {command} --prefer-binary{index_url_line}', desc=f"Installing {desc}", errdesc=f"Couldn't install {desc}", live=live)
***   File "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\webui\modules\launch_utils.py", line 124, in run
***     raise RuntimeError("\n".join(error_bits))
*** RuntimeError: Couldn't install onnxruntime-gpu for rembg.
*** Command: "C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\python.exe" -m pip install onnxruntime-gpu --prefer-binary
*** Error code: 1
*** stdout: Collecting onnxruntime-gpu
***   Downloading onnxruntime_gpu-1.18.1-cp310-cp310-win_amd64.whl.metadata (4.5 kB)
*** Requirement already satisfied: coloredlogs in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (15.0.1)
*** Requirement already satisfied: flatbuffers in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (24.3.25)
*** Requirement already satisfied: numpy<2.0,>=1.21.6 in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (1.26.2)
*** Requirement already satisfied: packaging in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (23.2)
*** Requirement already satisfied: protobuf in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (3.20.3)
*** Requirement already satisfied: sympy in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from onnxruntime-gpu) (1.12)
*** Requirement already satisfied: humanfriendly>=9.1 in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from coloredlogs->onnxruntime-gpu) (10.0)
*** Requirement already satisfied: mpmath>=0.19 in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from sympy->onnxruntime-gpu) (1.3.0)
*** Requirement already satisfied: pyreadline3 in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from humanfriendly>=9.1->coloredlogs->onnxruntime-gpu) (3.4.1)
*** Downloading onnxruntime_gpu-1.18.1-cp310-cp310-win_amd64.whl (157.7 MB)
***    ---------------------------------------- 157.7/157.7 MB 7.5 MB/s eta 0:00:00
*** Installing collected packages: onnxruntime-gpu
***
*** stderr: ERROR: Could not install packages due to an OSError: [WinError 5] ANZX\u06c2\u0702B: 'C:\\aiwork\\stable-diffusion-webui-forge\\webui_forge_cu121_torch21\\system\\python\\Lib\\site-packages\\onnxruntime\\capi\\onnxruntime_providers_shared.dll'
*** Consider using the `--user` option or check the permissions.
***
***
*** [notice] A new release of pip is available: 24.0 -> 24.1.1
*** [notice] To update, run: python.exe -m pip install --upgrade pip

どうやら onnxruntime-gpu のインストールで失敗してる感じがする…。

Stable Diffusion web UI forge を動かす仮想環境を有効にして、rembg と onnxruntime と onnxruntime-gpu をアンインストールしてから再インストールしてみる。
cd (Stable Diffusion web UI forgeインストールフォルダ)
environment.bat
python -m pip uninstall rembg
python -m pip uninstall onnxruntime
python -m pip uninstall onnxruntime-gpu
python -m pip install onnxruntime-gpu
python -m pip install onnxruntime
python -m pip install rembg

>pip list | grep -E "rembg|onnx|proto|open-clip-torch"  
onnx                      1.15.0
onnxruntime               1.18.1
onnxruntime-gpu           1.18.1
open-clip-torch           2.20.0
protobuf                  3.20.3
rembg                     2.0.57
wsproto                   1.2.0

エラーは出ない状態になったけど、相変わらず正常に動作しない。アンインストールして、オリジナル版を再インストールしておいた。

どうも拡張機能版は、現状では動いてくれないようだなと…。スタンドアローン版はそれらしく動いているから、使いたい時はそちらを使うことにしよう…。

#2 [tv][comic] 「ブラックジャック」実写ドラマ版を視聴

録画してたソレを視聴。高橋一生さんが主演。原作準拠と言いつつもドクターキリコが女性キャラになっててちょっとだけ騒ぎになってたバージョン。後からググって知ったけど、東映が制作していたのだな…。

何話も流すタイプでは無く、今回限りの2時間ドラマ、ということらしい。

高橋一生さんが演じるBJは…。これはアリですな…。ただ、BJって重いキャラなのか、それとも軽いキャラなのか、どっちなんだろうと悩んでしまった。読者一人一人の中でイメージが違うだろうけど。

脚本は原作の各エピソードを再構成して作られていたらしい。自分はBJシリーズに詳しくないからそのあたり分からなかったのだけど、どのエピソードを使ったのか解説されてるページを目にして、上手いこと組み合わせて全体の流れを作っていたのだなと感心した。

アセチレンランプが登場するシーンがあるのだけど、実写でありながらあの蝋燭をしっかり出現させていて、これはお見事と唸ってしまった。こういうお遊び(?)は大好き。

手術シーンは具体的な光景を極力見せないように工夫していた印象。自分は出血シーンを見ると怖くなってチャンネルを変えてしまうヘタレなので、とても助かった。これなら全然視聴できる…。このあたり、「外科医が主人公なのだから手術シーンはしっかり見せなきゃダメだ」と言い出す人達もそこそこ居るのだけど、その結果視聴者を振り落としちゃったらもったいない気もするので…。グロ(?)を直接見せるより、視聴者の中で想像が膨らむ見せ方のほうが絶対にいいと思うのだよな…。

ドクターキリコについて :

女性キャラは違うんじゃないかと思いつつ視聴していたけれど、やっぱり違う気がするなあ、と…。ただ、今回のドラマの患者が女性だったので、相談する相手を女性に、というのもアリかなあ、という気もした。同性同士だからこそ患者が心の中に溜めていた感情を爆発させる流れも自然に思えたし。

それはともかく。既存の実写ドラマではドクターキリコを誰が演じてたのかググってみたところ、草刈正雄版ドクターキリコが存在していたと今頃知って、自分の中でかなり盛り上がってしまった。キャプチャ画像や登場シーンの動画をググって眺めて更に感動。コレ完璧じゃん! どう見ても理想のドクターキリコじゃん! 漫画の中からそのまま飛び出してきたかのような風貌。いやー、今後この配役を越えるのはかなり難しいんじゃないか…。

まあ、御歳を召した今現在の草刈正雄さんではこれまたちょっと違うよな…。あくまで当時の草刈さんだったからパチッとハマるわけで…。であれば、今現在活躍してる役者さんでドクターキリコ役がピッタリな方となると、一体誰になるんだろう…?

2024/07/02(火) [n年前の日記]

#1 [cg_tools] Stable Diffusion web UIで顔が固定できないか実験中

久々に画像生成AIツールを ―― Stable Diffusion web UI forge版を起動して触っていたので、せっかくだから顔の固定ができないか試してみたくなってきた。

ググったところ、以下のような方法で、顔の固定ができることになっているらしい。
_【Stable Diffusion Web UI】ControlNet Reference onlyの使い方 | 業界最安級GPUクラウド | GPUSOROBAN
_Stable Diffusionで同じ人物の画像が作れる『reference only』を使う方法 | romptn Magazine
_Stable Diffusionで同じ顔を再現する方法をご紹介! | romptn Magazine
_2024年7月最新!同じ顔を生成するreference_only(adain)の使い方とベストな設定 - Stable Diffusion攻略図鑑
_本気で同じ顔を量産したいなら、これだけ見ればOK 【Stable Diffusion顔固定の徹底解説】|AIビジネスマスター
_Stable Diffusionで顔を入れ替えできる拡張機能『sd-webui-faceswap』の使い方! | romptn Magazine
_IntellectzProductions/sd-webui-faceswap: FaceSwap Extension - Automatic 1111
_Releases - facefusion/facefusion-assets
_Stable Diffusionで顔を入れ替えできる拡張機能『sd-webui-faceswap』の使い方! | romptn Magazine
_sd-webui-faceswap 顔の入れ替え | パソコン修理のわたなべ

とりあえず、両方共試してみたのだけど、期待した結果にならない…。

どうやら全然違う画像に対して、顔だけスポンと入れ替える、みたいなことは難しいようだなと…。Reference Only を使う場合は、参照画像から派生した雰囲気の画像を生成する感じになるっぽい。faceswapの場合は、結果画像がかなり無理をしている感じの見た目になる印象で…。まあ、もうちょっと実験してみよう…。

2024/07/03(水) [n年前の日記]

#1 [cg_tools] ReActorを試用

画像内の顔の入れ替えを、Stable Diffusion web UI forge 上でやれないものかと少し試していたけれど、FaceSwap という拡張の他に ReActor という拡張もあることを知った。

_Gourieff/sd-webui-reactor: Fast and Simple Face Swap Extension for StableDiffusion WebUI (A1111 SD WebUI, SD WebUI Forge, SD.Next, Cagliostro)
_写真をベースにAIでバーチャルアイドルを作る (Stable Diffusion Webui編)
_画像も動画も!ディープフェイクするならこれ一択【Reactorの完全ガイド】 - Stable Diffusion攻略図鑑

Stable Diffusion web UI Forge版の、Extensions → Available で表示される一覧に対して、「faceswap」でリストアップすると、ReActor が表示された。今回はそこからインストールしてみた。

途中でDOS窓上に「サーバを再起動せよ」と表示されたので、DOS窓を閉じて、Stable Diffusion web UI forge を再起動。

試用してみたけど、img2img上で使ったほうが、結果が分かりやすいかもしれない。差し替えられる元画像を、いつもの img2img にドラッグアンドドロップして、差し替えたい顔が入ってる画像を、ReActor の側にドラッグアンドドロップして入れる。Denoising strength を 0 にすれば、元画像がそのまま出力される状態になるので、顔の部分だけ差し替えることができる。

この手の実験でよく使われている、 _真珠の耳飾りの少女 を512x512にして実験に使ってみたけれど、たしかに顔の部分が差し変わったように見えた。イイ感じかも。

mov2mov という拡張を使えば動画に対して処理することもできるらしい。ちょっと気になる。

余談。2つのFaceSwap :

余談。FaceSwap という拡張は、2種類あるようで…。

_IntellectzProductions/sd-webui-faceswap: FaceSwap Extension - Automatic 1111
_glucauze/sd-webui-faceswaplab: Extended faceswap extension for StableDiffusion web-ui with multiple faceswaps, inpainting, checkpoints, ....

sd-webui-faceswap と、sd-webui-faceswaplab がある。

Stable Diffusion web UI の、Extensions → Available で表示される一覧の中にあるのは FaceSwap Lab なので、そちらのほうが新しいか、もしくは機能豊富なのだろうか…?

余談その2。モジュールのバージョンがおかしくなってしまった :

おそらく、拡張機能の faceswap をインストールした関係で、以下のモジュールのバージョンがおかしくなってしまった。

Installing forge_legacy_preprocessor requirement: changing opencv-python version from 4.10.0.84 to 4.8.0
Installing sd-forge-controlnet requirement: changing opencv-python version from 4.10.0.84 to 4.8.0

opencv-python を 4.8.0 にせよ、と言われてるのかな…。仮想環境を有効にして、opencv-python の再インストールをしてみよう…。
environment.bat
python -m pip list | grep opencv
python -m pip uninstall opencv-python
python -m pip install opencv-python==4.8.0

>python -m pip install opencv-python==4.8.0
ERROR: Ignored the following yanked versions: 3.4.11.39, 3.4.17.61, 4.4.0.42, 4.4.0.44, 4.5.4.58, 4.5.5.62, 4.7.0.68
ERROR: Could not find a version that satisfies the requirement opencv-python==4.8.0 (from versions: 3.4.0.14, 3.4.10.37, 3.4.11.41, 3.4.11.43, 3.4.11.45, 3.4.13.47, 3.4.15.55, 3.4.16.57, 3.4.16.59, 3.4.17.63, 3.4.18.65, 4.3.0.38, 4.4.0.40, 4.4.0.46, 4.5.1.48, 4.5.3.56, 4.5.4.60, 4.5.5.64, 4.6.0.66, 4.7.0.72, 4.8.0.74, 4.8.0.76, 4.8.1.78, 4.9.0.80, 4.10.0.82, 4.10.0.84)
ERROR: No matching distribution found for opencv-python==4.8.0

4.8.0というバージョンは無いよ、と言われてしまった。とりあえず、4.8.0.76 をインストールしておけばいいのだろうか…?
python -m pip install opencv-python==4.8.0.76

>python -m pip install opencv-python==4.8.0.76
Collecting opencv-python==4.8.0.76
  Downloading opencv_python-4.8.0.76-cp37-abi3-win_amd64.whl.metadata (20 kB)
Requirement already satisfied: numpy>=1.21.2 in c:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\lib\site-packages (from opencv-python==4.8.0.76) (1.26.2)
Downloading opencv_python-4.8.0.76-cp37-abi3-win_amd64.whl (38.1 MB)
   ---------------------------------------- 38.1/38.1 MB 10.4 MB/s eta 0:00:00
Installing collected packages: opencv-python
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
lama-cleaner 1.2.5 requires diffusers==0.16.1, but you have diffusers 0.25.0 which is incompatible.
lama-cleaner 1.2.5 requires transformers==4.27.4, but you have transformers 4.30.2 which is incompatible.
Successfully installed opencv-python-4.8.0.76

今度は lama-cleaner が要求するモジュールのバージョンがずれてる、と言われてしまった…。さて、どうしよう…。

2024/07/04(木) [n年前の日記]

#1 [neta][cg_tools] 作画崩壊カットを画像生成AIで修正できないものだろうか

一応手を動かして実験していたけど、これはほとんど妄想メモ。

ここ数日、画像生成AIツールの Stable Diffusion web UI Forge版で、顔の入れ替えができないものかと試していたのだけど。そこでふとなんとなく妄想してしまった。

コレを使ったら、深夜TVアニメでたまに見かける作画崩壊カットを修正できたりするのでは…? 顔を入れ替えるだけでも印象が違ってくるのではないか…?

もし、画像生成AIを使って修正ができるなら、かなりメリットがありそうな気がする。絵描きさんじゃなくて、直接絵を描かない業種の人でもそのカットをガンガン修正できるわけだから…。演出家さんでもいいし、撮影さんでもいいし、制作進行さんでもいい。手が空いてる人さえ居れば誰でも修正作業ができてしまうはず。

でも、本当にそんなことができるのだろうか。気になったので少し試してみた。

ReActorはダメだった :

まずは Stable Diffusion web UI Forge + img2img + ReActor で、アニメ絵の顔の入れ替えができるか実験。

これはダメだった。ReActor の参考画像(元画像)に、写真ではなく、「モナリザ」「真珠の耳飾りの少女」等の絵画を指定してるサンプルが多いのでイケるかなーと思ったのだけど、残念ながら書き換えられる側の画像(対象画像。ターゲット画像)に対して、顔がある部分を認識することができなかった。

顔認識に失敗した理由は不明。アニメ絵はえてして目が大き過ぎるので、人間の顔として認識できないのだろうか。それとも、作画崩壊カットは人間の顔とは思えぬ顔パーツの配置になってるということなのか…。後者だったらなんだかちょっと面白い状況かもしれない。AIにすら、「この画像の中に人間の顔は存在しないと思われます」と判断されていることになるし…。

Reference onlyもダメだった :

img2img + ControlNet + Reference only も試したけれど、ダメだった。元々の作画崩壊カットより、更に作画崩壊している状態になった。見ているだけでこちらの精神が病んでしまいそう。この生成結果画像を見た後で、元々の作画崩壊カットを目にしたら、「なんだ。結構整ってるやん…全然アリやん…」と思えてしまった。そのくらい、この変換結果はヤバイ。

Reference only は、参考画像からそれほど離れていない構図じゃないと、すぐに破綻してしまうようだなと…。

OpenPoseはそこそこ良さそう :

OpenPose という、ポーズを指定するためのフォーマット画像があるのだけど、コレを使ってみたところ、そこそこイイ感じの結果が得られた。ただ、顔以外の部分も ―― 服装その他も大きく変わってしまうけど…。手作業で顔の部分だけ切り抜いて貼り付ける感じになりそう。

一応手順をメモ。元の作画崩壊カットを下絵にして、openpose-editor で、目の位置、耳の位置、鼻の位置、首の根本、肩の位置を決めて、img2img の ControlNet に送信。

_fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111's stable-diffusion-webui

モデルデータは、animelike25D_animelike25DV11Pruned.safetensors を使用。

これで、元の作画崩壊カットと比べたら「おおー」と思える画像を生成することができた。このレベルなら作画崩壊なんてまず言われないだろう…。

実験結果画像を載せたいところだけど、著作権的にアウトだろうから見せられないのが残念…。元になった作画崩壊カット画像も一緒に出して比較しないと意味がないだろうけど、その画像を載せたら「違法。捕まるよマジで」と言われちゃうだろうし。こういうのって研究(?)のための引用の範疇として許してもらえないものだろうか…。

自分で新規に作画崩壊カットを描けばいいのかな。それもなかなか難易度高そう。新規に描くと変換しやすい画を最初から無意識に描いてしまう気がする…。それじゃダメなのだ…。人工モノではなく、天然モノの崩壊具合がそこに無いと実験にならない…。

問題点 :

問題点もいくつか見えてきた。

一つは、利用する学習モデルデータによって絵柄が決まってしまう点。今回は、animelike25D という、TVアニメ風の絵柄を学習したモデルデータを利用したので、パッと見はTVアニメ風/セルルックな画像が生成されたけど、作画崩壊を起こしていた某作品の絵柄とは違うわけで…。今回生成した画像が本編内でポンと出てきたら「誰やコレ」と言われてしまうだろうなと。いやまあ、そもそも元の作画崩壊カットも「誰やコレ」なのだけど。

ただ、このあたりは LoRAと呼ばれる追加学習モデルを作ることで解決できそうな気もする。学習モデルデータを作るためには膨大な数の画像が必要になるからおいそれと作れないけれど、LoRA なら数十枚の画像で作成できるらしいし…。

もう一つは、動画には利用できないであろう点。止め絵+口パクしかしないカットなら全然使えるかもしれないけれど、横から見た図で全力疾走する女の子とか、その場でクルクルと回る女の子とか、あるいはほんのちょっと顔の向きか変わるだけのカットすら使えないだろうなと…。

更にもう一つ。色を塗ってある画像じゃないと利用できない気がする。線画だけではどこに何があるのかAIが認識できないはず。だから動画の段階で「これはマズイ。修正しよう」というわけにはいかなくて、一旦最後まで作画崩壊カットを崩壊したまま仕上げないといけないはず。それもそれで、なんだかな…。

技術があっても使われない :

少し実験してみたことで、画像生成AIを使えば作画崩壊カットをそこそこ修正できる可能性がありそうだなと思えたのだけど。こういう技術があっても実際には使えない/使われないだろうとも思えてきた。

作画崩壊カットがTVで流れるということは、現場は時間的余裕が全くなくてギリギリの状態で作ってるはずだから、修正のための時間すら1秒たりとも捻出できないだろうと…。修正するためのツールの学習や、そういう事態が起きた時のための特殊な作業フローの構築をする余裕なんて無さそう。「どうせそのうち事故を起こすからその時のために今のうちから準備しておこう」なんて言ってる余裕は無さそうだなと…。

こういった技術を利用できるように環境を整えることができるスタジオや制作現場では、上手いアニメーターさんもちゃんとゲットできているだろうし、作業時間その他もそこそこ余裕がありそうだし、であれば今までと同じやり方で修正していけば済んでしまうので、こういう技術は最初から必要とされないはず。

技術が欲しい場面では導入してる余裕がないし、導入できる余裕があるならこんな技術はそもそも要らない。だから、結局誰も使えないし、使わない。そういうオチになりそう。

2024/07/05(金) [n年前の日記]

#1 [digital] 液晶ディスプレイ用のACアダプタが壊れたかもしれない

普段、TV映像を映しているモバイル液晶ディスプレイ Diginnos DG-NP09D のバッテリー表示が妙なことになってることに気づいた。充電中の表示から満充電の状態になって、しかしそのうちすぐ充電中の表示に戻ってしまう。電源コードを抜くと、あっという間にバッテリーが無くなってしまう。また、ACアダプタか、液晶ディスプレイ本体から、「ジィーッ」という感じの音が聞こえている。ACアダプタをコンセントから抜くと音が消える。

おそらく、液晶ディスプレイ側のバッテリーが劣化し過ぎてまともに充電できなくなっているのだろうなと…。ずっと電源コードを差しっぱなしで使ってたから、発熱でリチウムイオンバッテリーが劣化してしまったのではないか。あるいは、ACアダプタが壊れたか。

ACアダプタは、USB Type A端子に5V/2.5Aを出力する仕様。試しに、Raspberry Pi3 の電源として利用できるか試してみたけれど、うんともすんとも言わない。これはACアダプタが壊れているのかもしれない…。

とりあえず、Raspberry Pi3用に購入していた別のACアダプタも 5V/2.5A の出力だったので、DG-NP09D に繋いでみたところ、一応 DG-NP09D が表示される状態になった。

代替品で悩む :

しかし困った。代替品はどうしよう…。

ググってみたところ、USB Type-A端子に 5V/2.5A を出力するACアダプタは、なかなか見かけない。一応、Raspberry Pi3に利用できる電源として、5V/2.5A のACアダプタが販売されてるようではあるけれど、選択肢は少ない。

スマホ充電用の 5V/2A、あるいは 5V/2.4A を出力するACアダプタなら市場にそこそこあるようだけど…。

調べてみたら、Rapsberry Pi3 の電源として 5V/2.4A のACアダプタを使っても一応動くようだなと。USB端子に電流消費が多い機器を繋がなければ、という前提条件付きだけど。

試しに、Raspberry Pi Zero W用に使っている 5V/2A のACアダプタを Raspberry Pi3 に使ってみたところ一応動いてくれた。であれば、5V/2.4A のACアダプタでも大丈夫かな…。

HDMIの接続先を変更 :

今まで、HDDレコーダ TOSHIBA RD-BZ710 のHDMI出力を Diginnos DG-NP09D に入れていたけど、この状態で使用するのは不安だなと…。

RD-BZ710 を MITSUBISHI MDT243WG-SB とHDMI接続することにした。ただ、今まで MITSUBISHI MDT243WG-SB のHDMI入力には A6-3500機のHDMI出力を入れていたので…。A6-3500機のHDMI出力を、DG-NP09D に入れることにした。

HDDレコーダ側の解像度設定がよく分からない…。D3 (1920x1080i) か、D5 (1920x1080p) にすればいいのだろうか。ただ、D端子接続 + D3 で表示する場合と比べると、HDMI端子接続 + D5 は、なんだか画面がボケてるというか、動きにキレがないというか…。ディスプレイ側とHDDレコーダ側、どちらの設定に問題があるのやら。

2024/07/06() [n年前の日記]

#1 [pc][digital] ペンタブレットを使えるようにした

Windows10 x64 22H2 にドライバを入れて、ペンタブレット Wacom Intuos3 を使えるようにした。Intuos3 をUSB接続してから、ドライバセットアップファイル WacomTablet_6.3.13-w3.exe を実行。

一応使えるようになったけれど問題発生。筆立てに、ペンをずっと立てた状態で入れていたものだから、下になっていたテールスイッチ(消しゴムスイッチ)がおかしくなってしまっていた。何もしなくても、テールスイッチが押されてる状態として検出されてしまう…。一応、筆圧グラフをカスタマイズして、それらしい筆圧が返ってくるように調整してみたけれど…。失敗した。使わない時は専用スタンドに差しておくべきだった。

メインの圧力スイッチも、反応がおかしい。検出した圧力がブルブルと震えてる。これも筆圧グラフをカスタマイズして調整してみたけれど…。

ペンの調子も悪くなってしまったし…そろそろ買い替え時だろうか。

#2 [nitijyou] 充電式COBライトを購入

ダイソーで、充電式COBライト(LEDライト)を購入してみた。330円商品。最大250ルーメンと謳ってる。


180ルーメンモードでも、かなり明るい…。今まで100円ショップで購入してきた、どのLEDライトよりも明るい気がする。

ダイソー以外でも、例えば CanDo では、500ルーメン、充電ケーブル付きの商品が770円で売られてるらしい。そっちも気になる…。

以下の記事が参考になりそう。

_【100均】充電式COBライトの威力に衝撃!使用感や感想をレビュー|防災グッズはダイソーがあつい! - ちゃちゃの備忘録的なブログ
_ホシゾラCAMP:ダイソー COBライト 250ルーメンの検証 15時間連続点灯
_こればっかりはキャンドゥの圧勝…!他の100均でバズリまくったアレの上位互換的な商品 | michill byGMO(ミチル)

ついでにサンダルとスリッパも購入 :

サンダルとスリッパも購入。どちらも330円商品。

サンダルは、EVA樹脂製。25-27cmに対応と書いてあった。一応履けた。 スリッパは、足裏と接触する部分が竹になってるもの。ただ、22-24cmに対応と書いてあって、自分の足は25.5cmだから小さ過ぎて…。ちゃんとサイズを確認して買うべきだった。失敗した。

#3 [anime][neta] 作画崩壊は福笑いでそこそこ解決できそうな気もする

妄想メモ。

先日、画像生成AIを使って、作画崩壊カットを修正できる可能性がありそうかどうかを実験していたけれど。作画崩壊カットの画像をじっと眺めているうちに、もしかするとわざわざ画像生成AIを使わなくても、ただの福笑いで解決しちゃうのでは? と思えてきた。

素人考えでは、顔がおかしい系の作画崩壊には、大別して2種類がありそうだなと…。 まあ、両方達成(?)しちゃってる場合がほとんどだけど…。

何にせよ、このどちらの不具合も、福笑いに徹すれば ―― 顔の中に関しては顔パーツの差し替えと位置の再調整を駆使してでっち上げるぞと方針を決めてしまえば随分改善するのではないだろうか。

試してみた :

一応、試してみた。

ネットで見かけた作画崩壊カットの画像と、番組宣伝用のちゃんと描かれた別画像を入手して、GIMPを使って実験。

  1. ちゃんと描かれた別画像の、目、鼻、口をコピー。
  2. 作画崩壊画像の上にレイヤーとして追加。
  3. GIMPの統合変形機能を使って、それぞれのパーツを、拡大縮小、回転、自由変形して、顔の向きに合わせて調整。

実際にやってみたら、予想以上に全然見れる状態になった。パッと見では元画像が作画崩壊していたとは思えないぐらいに、かなりそれっぽい結果画像が得られた。

まあ、髪の毛と重なった部分の修正作業が面倒臭いとか、参考画像と対象画像の色が違うとか、ラスター画像を変形させているからパーツ部分の画質が悪くなっているとか、色々細かい問題はあるので、この作業の仕方では品質的に問題有りで本番(?)では使えないだろうけど。それでも、「福笑いで作るぞ」と決めるだけで結構改善できそうな気配は感じるなと…。

「描いてくれ」では事故が起きそう :

ほとんどの場合、作画崩壊カットは、海外のアニメスタジオに動画や仕上げまでお願いした時に発生するのだろうけど。「こういうカットを『描いてくれ』」とお願いしちゃうのが事故の元ではないのかなと実状を知らないまま勝手に妄想したりもする。そもそも描かせちゃダメなんじゃないか。描かずに作れるやり方でお願いしないといかんのでは。

例えばだけど、キャラデザに沿った顔パーツ画像をたくさん渡して、「髪や顔の輪郭は仕方ないから描くとしても、顔の中身は今回渡した顔パーツを変形して配置してくれ」とお願いすれば違ってくるのではと…。

ただ、日本の手描きアニメは、二値化画像 = ラスター画像データを動画として、そこに色を塗っていく作業フローが固定しちゃってると聞くので、パーツを変形すること自体がちょっと難しいかもしれないなと…。ラスター画像データを拡大縮小回転剪断自由変形させると、線が荒れたり、線幅が変わってしまうので…。そうなると「最初から描き直してくれ」「せめてトレスし直してくれ」と言い始めて、あちらとしては「時間無いのにこんな線の多いの描いてられないよ」となって作画崩壊に…。

ラスター画像でどうにかしようとするからいかんのだろうな。ベクターデータを扱える Flash(Adobe Animate) や Moho のようなツールでアニメを作れば問題解決しそう。それにベクターデータなら単純な自動中割りもできるようになるから、他の面でもメリットがありそう。

もしかして、パーツを渡して福笑いしてもらう必要はないのかも。ベクターデータの顔パーツを元にして、スライダーを動かすと色んな方向の顔を描画できる何かを作って、顔の中身だけはソレを使って用意して、髪や体については新規に描いてもらう、という感じでもいいのでは…。顔だけに特化してベクターデータを対象にした Live2D みたいな。まあ、そういうツールは既にありそうだよな…。いや、Flash や Moho でもできるはずだけど。

妄想メモです。オチは無いです。

2024/07/08追記 :

考えてみたら、CLIP STUDIO PAINT はベクターデータを扱えるのだから、顔パーツライブラリをベクターデータで用意しておけば済んでしまう話ではないかと気が付いた。二値化画像しか扱えないというのは RETAS の制限だよな…。

いや、RETAS STUDIO についてググってみたら、どうやらそちらもベクターデータを扱えると謳っているように見えた。Stylos はベクターレイヤーを持ってるし、TraceMan もベクタートレース機能を持ってるし、PaintMan は「ラスター・ベクター両対応の彩色機能」と書いてある。であれば、RETAS を使っていても、顔パーツライブラリをベクターデータで用意できるのでは…。ということは、顔パーツをいくら拡大縮小回転剪断自由変形しても線が荒れたりしないのでは…?

まあ、CLIP STUDIO PAINT にしろ、RETAS STUDIO にしろ、途中で誰かがうっかりラスターデータにして扱い始めたら、そこから先は目論見が破綻しそう…。

2024/07/07() [n年前の日記]

#1 [nitijyou] 暑い

気温36度。暑い。

#2 [cg_tools] Inkscapeでトレス作業を試してた

某アニメ作品の宣伝用画像を入手して、Inkscape でトレス作業ができるか試してた。顔パーツだけでもベクターデータにして、拡大縮小回転剪断ができそうかどうか確認してみたいなと。

しかし、作業途中で悩んでしまった。例えば、アニメキャラのまつ毛の部分は尖った感じの見た目になっているわけだけど、そういった部分は、線で描くべきか、塗りで描くべきか、さてどっちなんだろうと…。

そこでふと気が付いた。Inkscapeは、svgフォーマットのベクター画像を編集できるドローソフトだけど、もしかして、svg って、線の入り抜きが表現できないのではないか? という疑問が湧いた。

ちょっとこのあたり、調べてみないと…。

2024/07/08追記 :

Inkscape でも線の入り抜きは表現できるらしい。パスエフェクトのパワーストロークを使うのだとか。

2024/07/08(月) [n年前の日記]

#1 [cg_tools] ドローソフトで線の入り抜きが使えそうかどうか少し調べてた

昨日、Inkscape を使っていて、このツールでは線の入り抜きが使えないのではないかと疑問を持ったので、そのあたりを調べていた。

ドローソフトとして一番有名であろう Adobe Illustrator は、線の入り抜きが使えるらしい。自分は持ってないし触ったことがないので本当にそうなのか知らないけれど…。

_主線に強弱を付けたい【Illustrator】 | DIMENSHOP 技術部

アニメーション作成ソフト Moho も、線の入り抜きが表現できる。線の制御点の一つ一つに個別の線幅を指定できるので…。

Adobe Flash (Adobe Animate) も線の入り抜きが表現できるらしい。昔は、線ではなくて塗りで代替するしかなかった記憶があるのだけど、少なくとも現行版なら線のスタイルや線幅の種類を指定できるようだなと…。

_17.【グラフィックツール】線に関するツール - 初心者のためのAdobe Animateブログ

CLIP STUDIO PAINT は、ドローソフトと言うよりペイントソフトだと思うけれど、これもベクターデータを扱うことができるので…。ベクターレイヤーを新規作成して、その上で描画していけば、そのベクターデータに線の入り抜きを指定できる。

ということで、有償のドローソフトなら、線の入り抜きは指定できることが多いようなのだけど。無料で利用できる Inkscape でそういうことはできるのかどうか…。

ググってみたら、できるらしい。パスエフェクトのパワーストロークを使えばいいらしい。

_Inkscapeで手書き風の線を描く方法 | カワハラ雑記
_Inkscapeで手描きのイラストを仕上げよう(8) - 初期費用ゼロからはじめてクリエイター

Inkscape 1.3.2 x64 で試してみたら、たしかにペンの入り抜きが表現できた。

#2 [cg_tools] Mohoを起動したらアクティベーションエラーになった

Windows10 x64 22H2上で、Moho 13.5 を久々に起動したら、アクティベーションを求めるダイアログが表示されてしまった。変だな…。OSを新規インストールした際、Moho も再インストールしたと思うのだけど、その際アクティベーションしていたような…。どうしてそのあたりの情報が消えてるの…?

シリアルナンバーを入力してみたら、登録可能台数を越えているからアクティベーションできない、と表示された。何故。まさか Windows Update をするたびに新しいPCとして扱われちゃっていたりするのか…?

License manager なるボタンが表示されていたのでクリックしてみたら、入力したシリアルナンバーに対してアクティベーションを解除できるWebページが表示された。試しに入力して解除。

この状態で再度 Moho を起動してシリアルナンバーを入力してみたら、アクティベーションが通った。

Moho 12のアクティベーションができない :

Moho 13.5 以外に、Moho 13 も、同様の手順でアクティベーションできたのだけど。Moho 12 (12.5?) だけがアクティベーションできない…。

  • Moho 12 で、License manager ボタンをクリックしても、Moho 13.* とは違うページが表示されてしまう。
  • アクティベーション解除ページへのリンクも一応あるのだけど、そこで Moho 12 のシリアルナンバーを入力してもエラーになる。おそらく Moho 13.* のシリアルナンバーにしか対応していないページなのだろう。

困ったな…。たしか Moho 12 が持ってたいくつかの機能は、Moho 13 で「動作が不安定になるから」という理由で削除されていたはず。だから、Moho 12 で作ったプロジェクトファイルの中には、Moho 13 では機能が無いから開けない / Moho 12 でしか開けないものもありそうな気がする…。

ひょっとして、Moho 13.5 を有効にすると、その時点で Moho 12 のシリアルナンバーが無効になるとか…? Moho 12、13、13.5 の順番でインストールして起動するか動作確認していったら、気づかずに終わってしまいそう。

まあ、自分の利用範囲では Moho の基本機能しか使わないだろうし、Moho 13.5 が動くなら Moho 12 は動かなくてもいいか…。

2024/07/09追記 :

Moho の各バージョンの状態について完全に勘違いして覚えてた。実際は以下の状態だった。
  • Moho Pro 12 (12.5) : 比較的安定してる版
  • Moho Pro 13 (13.0.2) : 3D関係やビットマップ関係の新機能がついたけどバグだらけで不安定で妙なところで重くなってしまった版
  • Moho Pro 13.5 : Moho 13 で追加された新機能(=バグの元)をごっそり削除して少し安定性が増した版。実質的には Moho 12 相当らしい。ただ、例えば H.264エクスポート機能が無くなってたりするので、Moho Pro 12 ± α、みたいな状態かも…。

更に、OS再インストール時に Moho も再インストールしてアクティベーションしていた、と思い込んでいたけど、これまた勘違いだった。アプリのインストールメモを眺めたら Moho は再インストールしていなかった…。以前のOSで動いてた版が Dドライブに残っていて、ショートカットファイルも一緒に残っていたから、再インストールしたものと思い込んでしまっていた。

2024/07/09(火) [n年前の日記]

#1 [moho] Mohoで直線を引きたい

Moho Pro 13 / 13.5 の動作確認をしている最中、直線ってどうやって引くのか忘れてることに気づいた。

なんとか思い出せてきたけど、また忘れそうなのでメモ。





Ctrl を押しながらドラッグした場合、次の制御点 ―― マウスボタンを離したところの制御点にハンドルをつけない、という操作になる。

#2 [moho] Moho Pro 12がアクティベーションできない問題に対処

Windows10 x64 22H2上で、Moho Pro 12 がアクティベーションできない。

Moho 13.0.2 や Moho 13.5 はアクティベーションが通って動いてるから、Moho 12 が動かなくてもアレなんだけど…。ライセンスを持っているのに使えないのはもやもやするし、何かしらの場面で動作確認できない状況もちょっと気になる。

Moho Pro 12 をアンインストールして再インストールしてみたけれど、状況は変わらず。これまで同様、「アクティベーションしろ」的なダイアログが表示されてしまう。

C:\ProgramData\Smith Micro\Moho\12\ の中のファイル群を、OS再インストール前のSSDからコピーしてきてみたけれど…。
3fbec9990ea764d1c7.cache
3fbec9990ea764d1c7.lic
3fbec9990ea764d1c7.sinfo
Moho.dta
Moho12.lic.prefs
MohoReg.dta

Moho Pro 12 を実行すると以下のメッセージが表示されてしまう。
The grace period for activating this product has expired! 

This application will now revert to unregistered status until it is activated.
Insert your serial number when prompted to activate the application.

「製品のアクティベーション猶予期間は終了しました」と言ってるっぽい?

そして、前述のファイル群の中の、\*.dta のファイルは削除されて消滅する。更に、OKを押すと、以下のダイアログが表示される。
Moho Demo

Moho is running in demo mode.
Days left in demo: 0

[Buy Now] [Insert Serial Number] [Use Debut Demo] [Use Pro Demo] [Quit]

試用期間が0になってることは分かる…。そのせいか、Use \* Demo のボタンはグレーアウトしていて、demo mode すら起動できない。

「Insert Serial Number」のボタンをクリックして、シリアルナンバーを入力しても、以下のメッセージが表示される。
Activation Failed

The maximum number of allowed activated computers for the serial number xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx has been exceeded.

To activate this computer you must select Deactivate License from the Help menu of Moho on another computer previously activated with this serial number.

If you are unable to deactivate a previously activated computer, you can deactivate all computers via the License Manager button below.

If you feel this message is in error or need assistance please contact Smith Micro Technical Support

[License Manager...] [Cancel]

「Moho のメニューからアクティベーションの解除をしろ」と言われているように見えるけど、demo mode すら立ち上がらないのだからどうしようもない。

「License Manager...」のボタンをクリックしても、Moho Support Center のWebページしか開かない。

_Moho 12.5 Links

Moho 12、Moho 13 までは、Smith Micro が販売していたけれど、Moho 13.5 からは Lost Marble が販売するようになったので、アクティベーション関係がおかしなことになってしまった気配がする…。

オフラインアクティベーションを試そうとしたけどダメだった :

ネットワーク接続ができない状態でアクティベーションしようとするとマニュアルでアクティベーションする状態になる、という話を見かけたので試してみようとした。Windows側でNICを無効にした状態で「Activate」ボタンをクリックすると、ネット接続できずにオフラインアクティベーション用のダイアログが開くので、「Create Activation Request...」というボタンをクリックして、Moho_ActivationRequest.txt というファイルをどこかに保存。

しかし…。ダイアログには、「以下のURLにアクセスしてアクティベーションできる」と書いてあるのだけど…。
http://producturlsupport.com/activation

Webブラウザで開こうとしても 404 Not found。昔の記述がそのまま表示されているのだろう…。ということは、オフラインアクティベーションはできない、ということかもしれない。

チケットとやらを作成して質問してみた :

以下のページによると…。

_Moho 12.5 Links
Deactivate License - To deactivate your license, please contact our support team by opening a new ticket.

「アクティベーション解除をしたかったら新しいチケットを開いてサポートに連絡せよ」と書いてあるように見える。

_Lost Marble Support Ticket System

アカウント作成後、チケットとやらを作成して、「アクティベーションできないんですけど、サーバ側でアクティベーション解除って…できますかね?」みたいなことを尋ねてみた。翻訳サイトで変換した英文をそのまま貼り付けてみたけど、どうなることやら。

返事が来た。

「ライセンス情報をリセットしてみたよ」
「https://my.smithmicro.com/ から最終版の Moho 12 を入手してインストールせよ」
「以前の版は Smith Micro が作った版だからアクティベーションサーバと正しく通信できないよ。必ず最終版を使ってね」

とのこと。

_https://my.smithmicro.com/

  • Moho-12.5-Windows.exe (MD5: 711a10f95263202dcf5575a5252e601d) をダウンロード。
  • 今までインストールしていた版をアンインストール。
  • また、「Moho 12/13 のアクティベーションに失敗した際は、"C:\ProgramData\Smith Micro\" を削除してから再度試せ」という話も見かけていたので、念のために該当フォルダを別の場所に移動することで削除しておいた。
  • 更に、Moho-12.5-Windows.exe を実行してインストールする際、言語を尋ねてくるけれど、「日本語」を選んで作業しているのがマズいのでは、という臭いがしたので、念のため、「English」を選んでインストール作業を進めた。
  • 加えて、インストール後にいきなり Moho Pro 12 を起動しないで、これまた念のためにOSを再起動。

この状態で Moho Pro 12 を実行してみたところ、今までとは見た目が違うシリアルナンバーの入力ダイアログが表示された。今までは、名前やメールアドレスの入力も求められたけれど、今回は、シリアルナンバーと、アップグレード時の古いシリアルナンバーの入力だけを求められた。

シリアルナンバーを入力したところ、アクティベーションが通った…。やった! 助かった…。Lost Marble のサポートの方、ありがとう…。マジ感謝です。

Moho Pro 13が起動しない状態になった :

Moho Pro 12 が動く状態にはなったけど、今度は、Moho 13 (13.0.2) が起動しない状態になった…。アプリケーションエラーで起動できないから再インストールせよ、とメッセージが表示される。

Moho Pro 13 をアンインストールして、再インストール。再インストールは、SOURCENEXT(ソースネクスト) で購入/ダウンロードした MHP13WIN.exe (Moho 13.0.2 Build 610)を使った。

"C:\ProgramData\Smith Micro\" を削除してしまったので、再度シリアルナンバーを入力し直し。アクティベーションが通った。

次回はアクティベーション解除を忘れずに :

Moho は3台までインストールできるけど実行できるのは1つ、という条件があった気がする。

今回、Moho 13 のインストールで2回分、Moho 13.5 のインストールで1回分を使った状態だろうから、次回環境が変わる際は、各 Moho を起動して、メニューからアクティベーション解除を選んでおかないとマズイだろうな…。でも、自分のことだから作業を忘れそう…。

2024/07/10(水) [n年前の日記]

#1 [blender] blenderのグリースペンシルを勉強中

blenderのグリースペンシルには自動中割り機能があるという話をどこかで見かけたので、グリースペンシルについて勉強していた。Windows10 x64 22H2 上で、blender 3.6.11 x64 LTS を使用。

以下のページや動画が分かりやすかった。ありがたや。

_Blender2.92から自動中割実験。blenderデータ付き|ちもちも|pixivFANBOX
_【ミニチュートリアル】Blender Grease Pencilの自動補間ツール(中割りツール)で3Dイラストを動かす - YouTube

シーケンス補間を試す :

「シーケンスの補間」というのが、自動中割り相当らしい。使えそうか実験。

gp_interpolate_sequence_ss01.png


線の本数、描き順、方向を同じにしつつ、2枚のキーフレームを描いて。そのキーフレームの間のどこかのフレームをカレントフレームにしてから、「ドローモード」で、上のほうにある「ドロー」をクリックして、「シーケンスを補間」を選択。

gp_interpolate_sequence_ss02.png


自動で中割りされた。「ステップ」で、何フレーム毎に中割りを作るかを指定。「タイプ」「イージング」で、動きのタイミングを変更できる。

gp_interpolate_sequence_ss03.png


そんな感じで、以下のようなキーフレーム2枚を元にして、中割りが作れた。







以下のような動画も作ってみたりして。キーフレームをしっかりちゃんと描ければ、それらしい見た目になってくれそうな気配がする…。

ペンタブレットに慣れない :

久々にペンタブレット WACOM Intuos3 を引っ張り出して作業してみたけれど、ペンタブレット、未だに慣れることができないなあ、と…。

blenderのグリースペンシルで、「シーケンスの補間」をしようとしたら、滅茶苦茶な結果になって悩んだけれど、ペンタブレットで作業していたせいだった。どうやら、線の描き始めや描き終わりで、ペン先が ON → OFF → ON をブルブルと行き来していたようで…。1本の線を描いていたつもりが、点、線、点、のような状態になってしまって、キーフレームの線の本数が違ってしまって、補間がおかしくなってしまった模様。

こういうのってソフトウェア面の工夫でどうにかならんのかな…。ペン先がONになった瞬間に音を鳴らすとか…。ON/OFF状態を時間軸に沿って表示しておくとか…。

線の描き終わりで、線が変な方向にちょっと曲がってしまうのも気になる。

2024/07/11(木) [n年前の日記]

#1 [digital] ペンタブレットが壊れていた

ペンタブレット WACOM Intuos3 PTZ-630 を使って、ペンタブに慣れるべく練習していたけれど、動作がおかしいことに気づいた。線が途切れてしまう時がある…。同じような感触でペンを動かしているのに、すんなり線が引かれる時と、一定時間引かれなくなる時があるというか…。

こういう不具合についてググってみたら、ペンが壊れてしまった時の症状らしくて…。このタブレットペン、筆立てにずっと立てて入れていたものだから、テールスイッチが ―― 消しゴム用スイッチがずっと押されっぱなしの状態になってしまっていて、たしかに壊れているといえば壊れている状態。その影響がペン先にも出てしまったのだろうか。

代替ペンがあるのかどうかをググってみたけれど、さすがに今では売ってないっぽい。日記を検索してみたら、2007/01/08 に購入したようで…。さすがに古過ぎる。

_mieki256's diary - ヨドバシからIntuos3が届いた

別製品のペンタブレットを購入するしかないよな…。もっとも、今まで壊れてたことに気づかなかったぐらいの利用頻度で本当に必要なのか、という気もする…。でも、ペンタブレットが無いとお絵かき系ツールのほとんどが使えなくなるし…。

2024/07/12(金) [n年前の日記]

#1 [digital] ペンタブレットのペンを分解しようとしたけど失敗

ペンタブレット WACOM Intuos3 PTZ-630 のペンが壊れてしまったっぽいのだけど、ペンを分解して修理できないものかと思えてきて、少しだけ試してみた。

以下のページが参考になった。ありがたや。

_ワコムのペンを修理してみました: 水彩淡色研究室
_分解手順 | type-p
_よいやさのゆっちサン : ワコムのペン自己修理 ぶったぎり編
_ラバーグリップ交換 - CQコミックスタジオ
_イラストレーターaishiの幸せな風景 ペンタブのペン軽い気持ちで分解しちゃ駄目っ!!

ペンのサイドスイッチは、爪を引っ掛けて引っ張るだけで外れてくれた。ペン先近くの部分も回せば外れるし、そこまで外せたらゴム製のグリップも前の方にスライドさせて取り外すこともできた。

ただ、そこから先が…。かなり力を入れて引っ張れば、真ん中あたりから抜けるっぽいのだけど…。自分の握力/腕力ではちょっと無理だなと…。これは諦めるしかないか…。

#2 [digital] ペンタブレットを注文した

ペンタブレット WACOM Intuos3 PTZ-630 のペンが壊れてしまったっぽいので、ヨドバシカメラで代替品を注文した。注文したのは、XP-PEN Deco 01 V2。

どの製品にするかで、かなり悩んだ。傾き検知は必須として…。
常々、Intuos3 はちょっと大き過ぎると思っていたので、この際だから少し小さめのものを購入したい、となると Deco M か Deco mini7 かなと思ったのだけど…。 どちらも、扱ってる店が少ない上に、購入時の支払いに難有りな雰囲気で…。すんなり買えそうなのがヨドバシカメラぐらいなので、Deco 01 V2 しか選べない状態…。まあ、今までより小さいサイズにして上手く使えなかったりする可能性を考えると、Deco 01 V2 でもいいのかなと…。

ワイヤレス製品はバッテリーが問題 :

ワイヤレス接続の製品も良さそうかなと思って、Deco MW (2.4GHz無線接続) や Deco mini7W (Bluetooth) も眺めてたけど、自分の利用頻度を鑑みたら、ついうっかりで長期間放置してしまってバッテリーが死んでしまうのは間違い無し。有線接続のほうが安心だよな、と…。

こういうのって、バッテリーを交換可能にしてほしいのだけど…。例えば、単三/単四充電池、eneloop等で動かせる設計にしておくとか。USB端子にモバイルバッテリーから供給する形にするとか。何かしら手はあると思うのだけど。

内蔵バッテリーにしてしまえば、薄く作れたり、本体だけ持ち運べるメリットはあるのだろうけど、バッテリーの寿命 = 製品個体の寿命になってしまう。地球に優しくない。もったいない。

もし、バッテリーの規格が決まっていたら、もうちょっと違う状況になったりするのだろうか。

2024/07/13() [n年前の日記]

#1 [digital] ペンタブレット XP-PEN Deco 01 V2が届いた

今まで使ってたペンタブレット WACOM Intuos3 PTZ-630 のペンが壊れてしまったので、代替品として、XP-PEN Deco 01 V2 をヨドバシカメラに注文していたのだけど、今日の午後、ゆうパックで届いた。昨日注文して今日届くとは…助かる…。ちなみに値段は税込6,280円。

開封 :

箱を開けたら、箱にキッチリピッタリ入る感じでペンタブレットが入ってた。

表面には保護用のシールが貼ってあったので、一応剥がしておいた。ただ、剥がす際に静電気がかなり発生するようで、剥がし終えた直後にペンタブレット本体のフチに触ったら指先で「バチッ」と…。本体が壊れてなければいいけど…。

少しざらざらした感じの保護シートが1枚入っているので、これも接着。保護シートは、上部のところだけ両面テープが貼ってある感じ。おそらく何かしら紙に描かれたものをトレースしたい時はペンタブレット本体と保護シートの間に挟み込む、みたいな使い方も想定しているのかもしれない。

ドライバをインストール :

Windows10 x64 22H2機で利用する。ドライバは以下から入手した。

_Deco 01 V2|ダウンロード | XPPen公式サイト

  1. 今まで使ってたペンタブレット WACOM Intuos3 のタブレットドライバをアンインストール。
  2. OS再起動。
  3. Deco 01 V2 をUSB2.0端子に接続。この時点では、Windows10の標準ドライバ(10 inch pen tablet)が自動でインストールされる。
  4. ペンを動かしてマウスカーソルが動くか確認。ペンタブレットを接続した際は、マウスカーソルが只の点で表示されるので注意。最初、マウスカーソルが消えてしまったのかと焦った…。
  5. ペンタブレットドライバを入手。今回は、XPPenWin_3.4.14.240603.zip を入手した。
  6. 解凍すると XPPenWin_3.4.14.240603.exe が入ってるので実行。デフォルトでは C:\Program Files\Pentablet\ にインストールされる。
  7. OS再起動。
  8. タスクトレイにタブレットドライバの設定アイコンがあるのでクリックして開く。
  9. 使用エリアを「縦横比」に。筆圧やエクスプレスキー(ファンクションキー?)を設定。

使用感 :

今まで使ってた WACOM Intuos3 PTZ-630 と比べるとスラスラ描ける…。いやまあ、Intuos3 が本当に壊れていることを痛感してしまった、と言うべきか…。線が勝手に途切れたりしないだけで、こんなに安心して使えるとは…。

Intuos3 PTZ-630 は、筆圧が1024段階で、Deco 01 V2 は8192段階なので、筆圧検出は8倍ほど向上したはずだけど、そのあたり体感で劇的な差は感じなかった。

筆圧は、今までより硬めになった気がする。ドライバ設定で、筆圧を柔らかめに変更。

そういえば、ペンの抜き時に「シャカシャカ」と音がするという話を見かけたけど、たしかにそんな感じ。ただ、自分がペンタブを使う時は、タブレット面にペンを当てる度に「カッカッ」と音を立てながら使ってるのでほとんど気にならなかった。

ペン立てについて :

付属のペン立てをひっくり返して反時計周りにすると底面が外れる。中には交換用のペン先を差し込める穴が8個ほど開いている。付属していた交換用ペン先(10個入り)を差しておいた。2個ほど穴が足りないけれど、それは単に入れておいた。

今後はちゃんと付属のペン立てを使おう…。Intuos3 のペンは雑に扱ったことで ―― そのへんの筆立てに安易に立てて入れていたことで壊れてしまったので…。同じ失敗はしないように気を付けよう…。

今まで使ってたタブレットとのスペック比較。 :

_ASCII.jp:Intuos3 PTZ-630
_Deco 01 v2 | XPPen ペンタブレット | 株式会社アスク

製品本体サイズ(mm)読取範囲(mm)重量筆圧(レベル)傾き検出(度)読取速度解像度
WACOM Intuos3 PTZ-630345 x 261.5 x 13203.2 x 152.41kg1024±60200ポイント/秒最高 0.005 mm
XP-PEN Deco 01 V2351 x 217 x 8254 x 158.75 (10 x 6.25インチ)約0.57kg8192±60200RPS以上5080 LPI(Line/Inch)

解像度の単位が違うので計算。5080LPI は、1inch (=25.4mm) の中に 5080本の線があるということだから…。1inch = 25.4mm らしいので、5080 / 25.4 = 200。1mm の中に 200本の線がある。つまり、1 mm / 200 Line = 0.005 mm。解像度はどちらも変わらないらしい。

  • 大きさは、Intuos3 PTZ-630 と比べて、横がほんのちょっとだけ大きくて、縦がかなり小さい。今までとさほど違和感なく使えそう。
  • 読み取り範囲は、Intuos3 PTZ-630 より広くなってるはず。
  • レポートレート 200 RPS(最大)となっているけれど、Intuos3 PTZ-630 も応答速度は秒間200ポイントだったらしいから、そのあたりも変わらないかも…。
  • 重さは Deco 01 V2 のほうが軽い。半分ぐらいの重量になった。

2024/07/14() [n年前の日記]

#1 [digital] ペンタブレットのファンクションキーは便利だなと感じた

ペンタブレット XP-PEN Deco 01 V2 を使って色々なCGソフトで動作確認中。

ペンタブを触っていて気付いたけれど、ペンタブレットのファンクションキー(XP-PEN製品の場合、エクスプレスキーと呼んでいる模様)って便利だなと再認識。

今まで使っていた WACOM Intuos3 PTZ-630 は、右と左に4つのファンクションキーがついていたので、Shift, Ctrl, Alt, SPACE を割り当てて使っていたけれど。 *1 XP-PEN Deco 01 V2 は8つのファンクションキーがついているので、Ctrl + Z (Undo)、Ctrl + + (Zoom in)、Ctrl + - (Zoom out)、ドライバ設定画面も追加で割り当ててみた。ボタン一つで Undo できるとこんなに楽になるのだなと今頃気づいた次第。

もっとも、このあたりの最適化をしていくと、左手用入力デバイスが欲しくなってくる。一応、Tab-Mate Controller (旧型、USB有線接続)も持っているので、ちゃんと設定すればもう少し快適に作業できる状態になるだろうけど、そこまでやるのも面倒臭くて…。
*1: 考えてみたら WACOM Intuos3 は、4つのファンクションキーが左右にあるのだから、合計8個のキーがあると捉えても良かったのでは…。左右に同じキーを配置しなければならないと思い込んでいたのは失敗だったかも。

2024/07/15(月) [n年前の日記]

#1 [python] MSYS2上でrangerが動かなくなっていた

Windows10 x64 22H2 + MSYS2 + MinGW64 の環境で、CUIで利用できるファイラー ranger を起動しようとしたら、import ranger の行で「そんなモジュールは無い」とエラーが出てしまった。変だな。以前インストールしていたはずなのだけど。

pip install ranger-fm と打ってみたら警告が出てきてインストールできなかった。
$ pip install ranger-fm
error: externally-managed-environment

This environment is externally managed
-> To install Python packages system-wide, try 'pacman -S python-xyz', where xyz is the package you are trying to install.

If you wish to install a non-MSYS2-packaged Python package, create a virtual environment using 'python -m venv path/to/venv'.
Then use path/to/venv/bin/python and path/to/venv/bin/pip.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider.
You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

ググってみたら、最近の pip はシステム側のPythonにモジュールをインストールできない仕様になっていたらしい。

_俺流!PEP668とうまくやっていく方法 | スクエニ ITエンジニア ブログ
_pipで--break-system-packagesの問題について - Qiita

「--break-system-packages」をつけることで、システムを破壊してでもインストールせよ、という指定になるらしい。ranger が動かないと色々不便なので、この際インストールしてしまうことにした。どうせ今までもインストールしていたのだし…。

pip install ranger-fm --break-system-packages

しかし、こんな仕様になってしまったら、Python で作られたこの手のツールは ―― システム側にインストールすることを前提にして作ってあったツール群は困ってしまうのではないか…? 何もかもが、仮想環境を作ってその中で開発するプロジェクトというわけでもないだろうに…。

#2 [linux] nnnをMSYS2上でインストールしてみた

nnnというCUIファイラーをMSYS2上でインストールしてみた。ranger に似ているファイラーらしい。

ranger のインストールが、Python の pip の仕様変更でほんのちょっと面倒なことになりつつあるようなので、代替ファイラーを検討してみることにした。

$ pacman -Ss nnn
msys/nnn 4.9-1
    The fastest terminal file manager ever written.

$ pacman -S nnn
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) nnn-4.9-1

合計インストール容量:  0.11 MiB

:: インストールを行いますか? [Y/n] y

...

(1/1) インストール nnn     [#######################################] 100%
nnn の提案パッケージ
    atool: for more archive formats [インストール済み]
    libarchive: for more archive formats [インストール済み]
    zip: for zip archive format [インストール済み]
    unzip: for zip archive format [インストール済み]
    rclone: mount remotes

nnn で起動する。

参考ページ :


2024/07/16(火) [n年前の日記]

#1 [cg_tools] スクリーントーンを除去したい

日本の漫画は白黒印刷を前提にしているため、スクリーントーンを貼ることで、白黒しか印刷していないのにグレーの諧調もあるように見せかけているわけだけど。そのスクリーントーンを除去する方法はあるのかなと気になってきた。

どうしてスクリーントーンを除去したいかというと…。画像生成AI Stable Diffusion web UI に下絵として漫画画像の類を入れる際に、スクリーントーンの模様が残っていると都合が悪いのではないかと邪推しているから。ControlNet の Cannyプリプロセッサを使えば、漫画っぽい画像を渡して、それに沿った形で画像生成できるのではないかと予想して試していたのだけど、プリプロセッサの出力画像を眺めると、どうもスクリーントーンが貼ってある部分でゴチャゴチャしたノイズのような情報が大量に発生している気がして…。そして、その部分の画像生成結果もなんだか今一つに思えるというか…。

ただ、スクリーントーンの除去を画像処理でできるのかどうかが分からない。まずはそこから調べてみないと…。

検索キーワードについて :

ググった感じでは、「descreen」「remove halftone」「網点除去」「モアレ除去」といった検索キーワードで関連情報を見つけることができそうではあるなと…。より広義の呼び方として「ノイズ除去」もあるけれど、さすがにそこまで行くと対象範囲が広過ぎて、スクリーントーンの除去とは関係ない話が出てきてしまう。

CLIP STUDIO PAINT EXで除去できるらしい :

「スクリーントーン 除去」でググったら、CLIP STUDIO PAINT EX (値段が高い版)に、「トーンを消去」という、そのものズバリの処理をしてくれるプラグイン(?)が付属しているらしいと知った。AIを利用して処理をするらしい。

_CLIP STUDIO PAINT に機械学習(AI)の技術を活用したトーン消去機能を搭載 電子書籍制作におけるマンガのカラーリングを効率化 | CELSYS

自分が持っている CLIP STUDIO PAINT は、値段が高いEX版ではなく値段の安いPRO版なので、どの程度の効果が得られるのか確認のしようもないけれど。プロの漫画家さんなどはEX版を使ってたりするのだろうから、スクリーントーンの除去もサクサクできるのかもしれないなと…。

Windows版GIMPでも利用できるらしい :

Windows版のGIMPも、「Descreen」というスクリプト+プラグインを追加すれば、網点除去というか、モアレ除去ができるらしいと知った。

_Descreen
_Descreening or removing moire? - GIMP Chat
_How to Remove Moire Patterns by Descreening in GIMP
_Descreen | GIMP Plugin Registry (WebArchive)

処理内容としては、descreen.scm という Script-Fuスクリプトから、fast fourier transform (FFT) plugin (fourier.exe) を呼び出して処理をするらしい。

ただ、Windows10 x64 22H2 + GIMP 2.10.34 Portable 上で試用してみたけれど、使い方がさっぱり分からなくて、期待した結果は得られなかった。これってどうやって使うんだろう…?

また、前述のページで入手できる FFT plugin のバイナリは、Windows 64bit用のバイナリだけらしいので、Linux環境では使えないのかもしれない。

Pythonスクリプトで処理 :

GIMP の Descreen プラグインを Python で実装してみたものもあるらしい。

_6o6o/fft-descreen: An fft-based descreen filter
_印刷物からスキャンした画像の網点除去 - burroの日記

ソース内の import 行からして、cv2 (OpenCV) と numpy を利用して処理をしているのだろう…。とりあえず、Python さえ導入できれば、このスクリプトを利用して、GIMP の Descreen プラグインと同じ処理ができる可能性がありそう。もっとも、実際に手元で試用してないので、本当にそうなのかちょっと自信無いけど。

G'MICで処理 :

GIMP や Krita から呼び出して利用できる G'MICというフィルタ集があるのだけど、この G'MIC の中にも「descreen」というフィルタがある。

_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Main

GIMP 2.10.34 Portable + G'MIC-Qt 3.2.4 で確認したところ、以下の2つがあった。検索欄に「descreen」と打ち込むとリストアップされる。
  • Repair → Descreen
  • Testing → lain Forgusson → Grey Descreen

更に、Fourier Transform というフィルタもあって、コレを利用することでも、モアレ除去/網点除去ができる模様。以下の動画で使い方が紹介されてる。

_G'MIC Tutorial #3 : Descreen Image using Fourier Transform - YouTube

動画を参考にして試してみたけれど、たしかにスクリーントーンっぽい部分をある程度は除去することができた。

ただ、動画内でも説明されているけれど、Fourier Transform だけでは微妙にゴミが残るので、Smooth [median]も利用すると更に結果が改善される。

Photoshopで処理 :

Photoshop で処理する場合は、ガウスぼかしをかけてから、アンシャープマスクフィルタをかけてクッキリさせるやり方があちこちで紹介されていた。

試してみたところ、たしかにスクリーントーンは消えるけど、主線がなかなか酷いことになるようだなと…。

ただ、Photoshop の場合、サードパーティの有料プラグインを導入するとイイ感じの結果が得られる、という話も見かけた。

_網点除去Photoshopプラグイン「Sattva Descreen」が凄まじくプロ仕様!で印刷関係者歓喜だよ! - やもめも
_網点(ハーフトーン)を除去するPhotoshopプラグイン | The Strange Storage
_Sattva Descreen plug-in for Adobe Photoshop

以下のようなものもあるらしい。

_Pattern Suppressor for Photoshop

#2 [anime][neta] 「バリバリ伝説」を視聴

昨日視聴したのにメモするのを忘れてた。BS12で放送されていたソレを録画していたので視聴。バイクレースを題材にした有名な漫画を原作としてアニメ映画化していたらしい。映画と言っても、OVAを2話分作っていて、その2話分を1つにまとめて映画として公開していたらしい。制作はスタジオぴえろ。

バイクのエンジン等の描き込みが細かいことに加えて、背景動画カットがたくさんあってシビレタ。昔はCGなんて使えなかったから、奥行き方向に高速でカメラが移動していく映像を作ろうとする場合、全画面分を手で描いて動かすしかないわけで…。このアニメ、作るのが大変だったろうな…。

2024/07/17(水) [n年前の日記]

#1 [cg_tools] スクリーントーンを除去したい。その2

_昨日 に続き、スクリーントーン除去の方法についてググっていたら、以下の記事に遭遇。

_ハーフトーンを削除する方法を考える | 迷惑堂本舗

めちゃくちゃ参考になった…。除去する処理の種類についても言及されてるし、ツールの種類についても紹介されてる。ありがたや。

その中で紹介されている、Screentone-Remover というツールが気になった。

_natethegreate/Screentone-Remover: Script with GUI that removes screentones, using DSP

サンプル画像の結果からすると、かなりイイ感じなのでは…。

2024/07/18(木) [n年前の日記]

#1 [linux][ubuntu] Flatpakアプリが文字化けして悩んだ

Ubuntu Linux 22.04 LTS をインストールしてあるサブPC上で、Flatpak を使ってインストールした GIMP の動作確認をしようとしたら、文字が全部文字化け、というか豆腐で表示されてしまって悩んだ。

以下で直せるらしい。

_Flatpak アプリの文字化け(豆腐)を直したい
_flatpak版GnuCashの豆腐フォントを修正する-p--q

flatpak run --command=fc-cache org.gimp.GIMP -f -v

Linux上でフォントをインストールした際に、fc-cache -fv を指定してフォントキャッシュを再作成したりするけれど、それを Flatpak上でも行うということだろうか…。

何にせよ、これで Flatpak版 GIMP の文字化けも直った。ちなみに以下で起動。
flatpak run org.gimp.GIMP

#2 [gimp][linux][ubuntu] Linux版GIMPでもFFTプラグインが使えそう

Windows版GIMPであれば、FFTプラグイン(Fourierプラグイン)のバイナリを入手できるけれど、Linux版GIMPではどうするのだろうと気になって少し調べた。

少なくとも、Flatpak版GIMPを利用する限りでは、org.gimp.GIMP.Plugin.Fourier をインストールすればFFTプラグインが利用できるように見えたので一応メモ。
flatpak install org.gimp.GIMP.Plugin.Fourier

G'MIC もインストールできるので、G'MIC経由で使ってもいいのかもしれない。
flatpak install org.gimp.GIMP.Plugin.GMic

Flatpak版GIMPのインストールについては以下が参考になった。ありがたや。

_Ubuntu に GIMP Resynthesizer Plugin を flatpak でインストール - 省型旧形国電の残影を求めて

#3 [cg_tools] 画像編集ソフト Pixelitorを試用

GIMP関連の掲示板を眺めていたら、Pixelitor なる画像編集ソフトがあると知った。

_Pixelitor 4.3.1
_Pixelitor download | SourceForge.net
_lbalazscs/Pixelitor: A desktop image editor
_Ubuntu に最適な画像エディターのリスト
_Pixelitor - Linux Magazine


気になったので試用してみることにした。

Windows上で試用 :

Windows10 x64 22H2上で使ってみた。

_Pixelitor - Browse /4.3.1 at SourceForge.net

Pixelitor_4.3.1_Setup.exe がインストーラ。入手して実行。今回は D:\Prog\Pixelitor\ にインストールしてみた。

少し触った印象としては、必要最低限の機能を実装してある軽量なGIMP、みたいな感じだなと…。Windows上では起動もそこそこ速い。自分の環境では GIMP の起動に数分かかってしまうのだけど、この Pixelitor なら数秒で起動する。 *1

UIデザインはストイックというか硬派というか…。機能はちゃんと持っているけれど、作業効率云々、遊び心云々は特に考えてなさそうな雰囲気。逆に言えば、誰でも嫌悪感を持たずに使えそう。

ただ、このツールならではの部分が何も見出せず…。例えば GIMP、Paint.NET等を既に使っているなら、あえて新規にコレを使わなくてもいいよな、みたいな…。

Ubuntu Linux 20.04 LTS上で試用 :

VMware + Ubuntu Linux 20.04 LTS 上で試用してみた。flathub でも用意されていたので、flatpak を使ってインストールしてみた。

_Install Pixelitor on Linux | Flathub
_Ubuntu Flathub Setup | Flathub
_Flatpak : Alexander Larsson

UBuntu Linux 20.04 LTS に flatpak をインストール。最初は公式リポジトリ版(1.6.5)をインストールしたけれど、バージョンが古いせいか妙なエラーが出たので、PPA版(1.12.4)をインストールした。
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
flatpak --version
sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo reboot

pixelitor をインストール。
flatpak install flathub io.sourceforge.Pixelitor

起動。
flatpak run io.sourceforge.Pixelitor

フツーに起動してくれた。Windows上で触った時と同じ感覚で利用できる。

ただ、flatpak をインストールしてない環境で、flatpak のインストールから始めたので、全体で 3GBほど容量を使ってしまった。このツールのためだけに、そんなにストレージ容量を使われてしまうのも、ちょっと困る…。

.jar だけを入手して実行することはできるだろうか。
cd ~/bin
wget https://github.com/lbalazscs/Pixelitor/releases/download/v4.3.1/Pixelitor-4.3.1.jar

以下のエラーが出た。
$ java -jar Pixelitor-4.3.1.jar
エラー: メイン・クラスpixelitor.Pixelitorのロード中にLinkageErrorが発生しました
    java.lang.UnsupportedClassVersionError: pixelitor/Pixelitor has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

Ubuntu Linux 20.04 LTS に入ってる Java は古いので、Pixelitor-4.3.1.jar を動かせないらしい。

openjdk-17-jdk をインストールすれば動くようになるかもしれない。
sudo apt install openjdk-17-jdk
$ java --version
openjdk 17.0.11 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-120.04.2)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-120.04.2, mixed mode, sharing)

java -jar Pixelitor-4.3.1.jar

この状態なら起動した。

少しだけ起動を楽に。

vi ~/bin/Pixelitor
#!/bin/sh
java -jar /home/hoge/bin/Pixelitor-4.3.1.jar
chmod 755 Pixelitor
これで、Pixelitor と打てば実行できるようになった。

*1: 自分の環境のGIMPは、ブラシ、プラグイン、スクリプト、フォント等を山ほど入れて、もはやコレクター状態になっているので、起動が遅い…。デフォルト状態ならもうちょっと速く起動するはず…。

2024/07/19(金) [n年前の日記]

#1 [neta] 漫画を読む早さで漫画を描けたらいいのに

妄想メモ。

ふとなんとなく、大昔に、漫画家のふくやまけいこ先生が描いたエッセイ漫画の中で、「漫画を読む早さで漫画を描けたらいいのに…」と先生自身がつぶやいていたことを何故か急に思い出してしまった。

当時は「そりゃ無理ですよ先生」と笑いながら読んだ記憶があるのだけど。考えてみたら、今の時代であれば、画像生成AIを使えばちょっとはその状況に近づけることができるんじゃないのかなと思えてきたわけで。

もちろん、今の画像生成AI技術では、「漫画を読む早さで漫画を描く(作る)」のはまだ全然不可能だったりするけれど。どういう技術や作業フローを用意すればその状況が実現するのか/近づけることができるのか、試しに考えてみるためのお題にはなりそうだなと…。

PCを使って漫画を描くことすら全く一般的では無かった時代に、 *1 漫画家さん自身が「こうだったらいいのになあ」とボヤいてたわけだから、これは間違いなく漫画家さん側にはそういう需要があるはずで。もっとも、「誰が描いたのかわからん絵柄で描かれちゃうと困るよ」「あくまで自分の絵柄で描いてくれないとね」みたいな要望も含んだ発言だろうと思うけど…。

「漫画を読む早さで漫画を描く(作る)技術を発明せよ」。未来へのお題というか宿題として掲げておくのもアリなのかもしれないなあ。てなことを思いましたとメモ。妄想メモ。

意外と実現しそうかも :

てなことをメモした後、Web上のニュースを眺めてたら以下の記事に遭遇。

_漫画の1コマから続く20コマ以上を作り出す物語生成AI「SEED-Story」、イラストの制作過程動画を生成するAI「PaintsUndo」など生成AI技術5つを解説(生成AIウィークリー) | テクノエッジ TechnoEdge

もしかすると、こういった技術が発展した形になるのだろうか…。実は意外と実現する可能性が高い…?

*1: おそらく、 _寺沢武一先生やすがやみつる先生が実験的にMacを使って漫画を描いていたぐらいの時代 、だったような気がするけどどうだったかな…。

2024/07/20() [n年前の日記]

#1 [neta] STAR WARSのfork版は作れないものだろうか

妄想メモ。

たまたまNHKをつけていたら、「ファンダム」なるワードを紹介する番組が流れてた。その中で、「STAR WARS EP7,8,9 はファンダムが反発する内容だったため面倒臭い状況になった」「ファンダムは、味方になってくれてるうちはいいけれど、敵になるとかなりやっかい」という事例が紹介されていた。

その、STAR WARS EP7,8,9 の話を聞いていて、なんとなく思った。STAR WARS のfork版を、そのファンダムとやらで作れないものかねえ、と…。

fork(分岐)というのは、プログラミングの世界でたまに発生する展開のことで…。

ソースコードが公開されていて、なおかつ、「いくつかの条件を満たしていれば改変OK」というライセンスのアプリケーションがあったとして。その公式プロジェクトの開発がずっと停滞しちゃってたり、あるいはコミュニティが反発する仕様変更や仕様追加が行われてしまった際、ある時点のオリジナル版のソースコードをどこかにまるっとコピーしてから、その人にとって理想的な仕様に改変(魔改造?)していく行為を「forkする」と言ってたりする。

例えば以下のアプリは、オリジナル版よりfork版のほうが有名だったりする。
プログラミングの世界ではこういうことがたまに起きるのだけど。STAR WARS のような娯楽コンテンツでもそういうことができないものかなあ、と…。「公式はこういう展開を打ち出してきたけど俺は気に入らない。俺の理想のSTAR WARSを俺が作ってやる」みたいな。

まあ、それって所謂二次創作じゃん、呼び方変えただけじゃん、という気もするけれど。

もっとも、STAR WARS においてそういうのは難しいよな…。ディズニーが権利を持ってるし、基本的にディズニーは二次創作にかなり厳しいはずだし。下手すると裁判沙汰になりそう。

ただ、STAR WARSから強い影響を受けたスペースオペラワールドを作って、ディズニーとは真逆の緩さを提示して、皆でワイワイと二次創作してみたり、時々一部を商品化してみる、みたいなことならできたりしないものかなあ、と…。

その映画を見て「こんなの○○じゃねえ」と不満を持った時はチャンスじゃないかと思うわけで。その人の頭の中にはもっと面白い○○が固まりつつあるのかもしれない。それ、どうにか出力して作品にしてみたほうがいいんじゃね、と。まあ、それが出来るような人は、当の昔に作家になってそうだけど…。

妄想メモです。オチはないです。

余談。EP7,8,9についての感想 :

ちなみに自分、EP7,8,9は結構好きです。STAR WARSの世界にナウシカが参戦、みたいな印象なので…。そもそもEP4,5,6でも、女性キャラのレイア姫がブラスターぶっ放して活躍してたし、その様子を目にして「WOW! COOL!」と思ってしまったので…。あの勇姿を継承発展させたらEP7,8,9のヒロインだって全然アリだよなあ、みたいな。

「ルークが情けない」「扱いが酷い」という感想も見かけるけど、EP4,5,6のルークを思い返すと、逆にルークらしいかもと思えて…。あのキャラ、ジェダイの修行を逃げ出してヨーダ先生が「アイツ、ダメなんじゃね?」とボヤいてたようなヤツだし…。皆、彼を神格化し過ぎ…。まあ、 _「地下にモビルスーツが隠してあるとぐらい言って下さい!」 みたいなことを言いたくなる気持ちもちょっと分かるけど。文句言ってる人達にとっては、ルークはヒーローだったんだろうな…。

余談の余談。自分、何故か例の台詞を、「プールの底にモビルスーツが〜」と思い込んでて…。不安になってググったらプールじゃなくて地下だった…。プールの底に隠してあるのは別のロボットだろ! なんでそんな勘違いを…酸素欠乏症? たしかプールの前で喋ってたから…。と思ったけど画像を探してみたらプールなんてどこにも無かった。怖い。人間の記憶って怖い。ここまで勝手な捏造をしてしまうとは。

2024/07/21() [n年前の日記]

#1 [nitijyou] 選挙に行ってきた

市長選挙と市議会議員補欠選挙の投票日だったので、近所の公会堂に行って投票してきた。幸い、親父さんが車で行くと言い出したので、ついでに乗せてもらって到着。

朝09:00の時点で気温32度。帰宅後は買い物に行こうと思ってたけど、この気温で自転車を走らせるのは危ないよなと諦めた。日が落ちてからにしよう…。

#2 [zatta] 携帯用の温度計を物色中

ここ最近、親父さんとお袋さんが炎天下の中わざわざ畑に行って農作業をしようとする…。この気温だから行かないほうがいいと忠告しても行ってしまう時がちょくちょくあるので、せめて携帯用の温度計でも持たせて送り出したほうがいいのかなと、その手の製品を探し始めた。

しかし、選択肢が無い…。こんなに少ないとは…。

置くタイプ、もしくは壁掛けタイプの温度計ならいくらでも選択肢があるのだけど、携帯用となると数えるほどしかない。温度計を作ってるメーカさん達は、温度計は置くか壁掛けするものという固定観念に囚われているのではないか、とすら思えてくる…。いやまあ、体につけてたら体温まで拾ってしまって温度計にならんやろ、とか、振動を与えると正確な数値が出せないんよ、とか、そういう事情もあるのかなと想像したりもするけれど。

いっそスマホにつけられる温度計は無いのかな、スマホならフツーは持ち歩いてるはずだし、とググってみたところ、そういう製品も一応あるっぽい。ただ、USB接続するパーツ(?)だから、スマホ側にUSB接続機器を利用できる機能(OTG?)が必要になるはず…。自分が持ってる HUAWEI P9 lite はそんな機能を持ってなかったりするので、安いスマホもそんな機能持ってないんだろうなと…。親父さんお袋さんのスマホにそんな機能付いてるのかな…。いや、そもそも、親父さんもお袋さんも、スマホはバッグに入れたままで、常に体にくっつけてるわけではないから、スマホを携帯用の温度計に、とはならないな…。

デジタル温度計を探してたけど、考えてみたらアナログもアリか…。そう思ってググってみたら、キーホルダーのような温度計もいくつか見かけた。小さくて持ち運びは便利そうと思ったけれど、年配者は数字を読み取れないかもしれないと気づいた。文字がそこそこ大きくないと使い物にならないか…。となるとやはりデジタル表示かなあ…。

2024/07/22(月) [n年前の日記]

#1 [nitijyou] 暑くて眠れない

気温が高くて眠れない…。1時間半毎に目が覚めて、そこから寝られなくなる状態…。

2024/07/23(火) [n年前の日記]

#1 [nitijyou] 自宅サーバ止めてました

雷が鳴ったので、17:00-19:45の間、自宅サーバを止めてました。申し訳ないです。

_雨量・雷観測情報 の、福島沿岸南部、17:00頃を見ると、落雷マークで真っ赤…。コレはヤバいとエアコンのコンセントすら抜きました…。

2024/07/24(水) [n年前の日記]

#1 [krita] krita-ai-diffusionを試用

無料で利用できるお絵かきソフト Krita に画像生成AI Stable Diffusion を組み込める、krita-ai-diffusion というプラグインがあると知った。気になったので試用してみることにした。

環境は、Windows10 x64 22H2 + Krita 5.2.3 x64。CPU は AMD Ryzen 5 5600X。GPU は NVIDIA GeForce GTX 1060 6GB。RAM 16GB。

参考ページ :

インストール :

今までインストールしていた Krita は 5.2.2 だったので、最新版の 5.2.3 をインストールした。

_ダウンロード | Krita

インストーラ krita-x64-5.2.3-setup.exe を入手して実行。今回は、C:\Program Files\Krita (x64)\ にインストールした。


krita-ai-diffusion を入手する。

_Releases - Acly/krita-ai-diffusion

krita_ai_diffusion-1.20.1.zip を入手。

Krita を起動。ツール → スクリプト → Pythonプラグインをファイルからインポート、を選択。krita_ai_diffusion-1.20.1.zip を選択。zipファイルを選択することに注意。インストールされたら Krita を再起動。

Krita を再起動したら、新規画像(512 x 512)を作成。新規画像を作成しないと、設定 → ドッキングパネル、がグレーアウトしたままなので…。新規画像を作成したら、設定 → ドッキングパネル → AI Image Generation、にチェックを入れる。おそらくはウインドウの右下に、AI Image Generation というパネルが出現するので、Configure をクリック。

使いたい画像生成AIの種類にチェックを入れて、Installボタンをクリック。1時間ぐらいかけて必要なファイルがダウンロードされる。
  • インストール場所は、今回は C:\aiwork\krita\ai_diffusion\server\ComfyUI\ にした。デフォルトでは、C:\Users\(USERNAME)\AppData\Roaming\krita\pykrita\ai_diffusion\.server\ だった気がする。
  • SD1.5 と SDXL があるけれど、自分の使ってるビデオカードは NVIDIA GeForce GTX1060 6GB で VRAM が少ないので、SD1.5 だけを選ぶことにした。SDXL はもっとVRAMが多くないと使えなかったような…? どうだったかな…。
  • ControlNet関係は全部入れた。

全部で20GBぐらいのファイルがインストールされた。SD1.5だけでこの容量なので、SDXLも選んだらもっと増えるのだろうな…。

使い方 :

SD1.5 を使う場合は512x512、SDXLの場合は1024x1024ぐらいの新規画像を作成して、krita-ai-diffusion を利用していく感じになる。

最初は、レイヤーを1枚だけにしておいたほうが良さそうな気もする。2枚あると、レイヤー2枚分を画像生成してしまって、その分時間がかかってしまうような…? 自分が勘違いしてるかもしれないけれど。

AI Image Generation のパネル上で、選べるモードは4つある。
  • Generate : 通常の画像生成。画像の一部を修復する時もこのモードを使う。
  • Upscale : AIを使って画像を拡大できる。
  • Live : キャンバスに何か描いた途端に、その絵を元にして画像生成する。
  • Animation : 不明。たぶん何かしらのアニメーションを作れるのだろうと思うけど…。

選べるモデルデータは、標準では3種類だろうか。
  • Cinematic Photo (実写風)
  • Digital Artwork (デジタルアート画像風)
  • Comic & Anime (漫画&アニメ風)

Generate モードにして、プロンプトに生成したい内容を打ち込んで Generate ボタンをクリックすれば画像が生成される。生成結果のサムネイルを選択すると「Apply」ボタンがサムネイル上に出現するので、「Apply」ボタンをクリックすると決定したことになり、キャンバス上に生成結果が別レイヤーで追加・適用される。

選択範囲を作った状態で、Strength(強さ) を、100%にするか、100%未満にするかで、処理内容を変えられる。
  • 100%未満の場合は、Generate ボタンが Refine ボタンになって、選択範囲内を置き換えるような画像生成をしてくれる。
  • 100%の場合は、選べる項目が以下のように増える。
  • Fill : 選択範囲内を画像生成結果で塗り潰す。
  • Expand : 選択範囲内を周囲の画像情報から推測して付け足してくれる。キャンバスの外に絵を付け足す感じ。
  • Add Content : 選択範囲内にプロンプトで指定した内容のオブジェクトを追加してくれる。「ここに○○を増やしたい」時はコレ。
  • Remove Content : 選択範囲内のオブジェクトを周囲の情報を元にして消去してくれる。「ここの○○を消去したい」時はコレ。
  • Replace Background : 選択範囲外の背景を差し替えてくれる。
この機能を使うだけでも、フォトレタッチ作業が随分と楽になるのではないかという気もする。まあ、現状の画像生成AI関係はライセンス面がどうなっていくのかさっぱり分からんので、外に公開する何かしらに使うのは危ない気もする…。後から裁判起こされそう。

複数レイヤーに「+」がついたようなアイコンをクリックすると、現在選択中のレイヤーに ControlNet を設定することができる。例えば Scribble を指定すれば、落書きを元にして画像生成、といったことができる。

Liveモードにして、再生ボタン(右向きの三角ボタン)をクリックすると、キャンバスに何か変更を加える度に、即座に画像生成AIが走るので、ちょこちょこ描いて生成結果を見てまたちょこちょこと描いて、といった感じで作業することができる。ただ、Strength が小さいと落書きがそのまま出てくるので、50%から100%の間にしたほうが見ていて面白い気もする。

LiveモードはLCMと呼ばれる技術を使っているせいか、高速に画像生成できる代わりに、元絵やプロンプトを無視しがちな傾向がありそうで、「違う。そうじゃない」と首を捻る結果が出やすい気もする…。まあ、それもそれで面白いからヨシ。

試してみた :

とりあえず、落書きして、Liveモード + ControlNet の Scribble を指定して、「robot,blue」で何度か生成してみた。

robot_take01_anime.gif

「ロボットといえばトランスフォーマーでしょう!」という Stable Diffusion の主張を感じる…。

「あー、そういう解釈をしちゃうかー」みたいなところはあるけれど、自分が思いつきそうにもない細部のデザインがポンポン出てくるので、案出しには使えそうな気配はする。ライセンス面でどういうことになるのか分からないから、この生成結果をそのまま使うわけにはいかないだろうけど。

ふと思ったけど、1stガンダムを作ってた頃の富野監督のMSデザインラフ案を与えてみたら、画像生成AIは一体どういうデザインを提示してくるんだろうな…。「スタジオぬえにお願いすると線が多くなって大変だからわざわざ大河原さんにお願いしたのにコレじゃ台無しだよ! 没!」って感じのゴチャゴチャしたデザインを平気でバンバン出してきそうな予感。

余談。Kritaで全レイヤーをエクスポート :

Kritaで全レイヤーをエクスポートする方法はあるのかなとググってみた。

_save as - Export Krita Layers to Single Images - Super User

スクリプトで用意されていたらしい。ツール → スクリプト → レイヤーをエクスポート。処理したいファイルを選択して、出力フォルダを選択して、jpeg か png を選べば、各レイヤー毎に1枚の画像としてエクスポートしてくれる。

余談。ブラシサイズを一発で指定したい :

ブラシサイズを一発で指定したい。

_Krita 上で、よく使うブラシサイズをワンクリックで指定できるようにするプラグイン「Krita用クイックブラシサイズドッカー」 - GIGA!無料通信
_Krita用Quick Brush Sizeドッカー | Midari Create

Quick Brush Size Docker というプラグインをインストールすると可能になるらしい。CLIP STUDIO PAINT や FireAlpaca のような感覚でブラシサイズを変更できるようになる。ありがたや。

_Krita用クイックブラシサイズドッカーの詳細情報 : Vector ソフトを探す!

  1. quick_brush_size.zip を入手して解凍。これは一旦解凍する必要がある。
  2. 解凍すると、その中に QuickBrushSize.zip があるので…。
  3. Krita を起動。
  4. ツール → スクリプト → Pythonプラグインをファイルからインポート、を選択。
  5. QuickBrushSize.zip を選択してインストール。
  6. Kritaを再起動。
  7. 設定 → ドッキングパネル → Quick Brush Size、で、有効無効を切り替えることができる。

#2 [anime] 「負けヒロインが多すぎる!」1〜2話を視聴

数日前にHDDレコーダに録画してたソレを視聴してたけどメモするのを忘れてたのでメモ。ライトノベルを原作とする学園ラブコメTVアニメ。制作はA-1 Pictures。北村翔太郎監督の初監督作品、らしい。たぶん。

見ていて唸ってしまった。素晴らしい。これはもう素晴らしい出来としか言いようがない。

「負けヒロイン」という、ラノベ/漫画/アニメ/ゲームに出てくるキャラ属性の分類概念にフォーカスを当てた基本設定や、次々に繰り出される主人公の軽快なツッコミ等、原作レベルで既に出来がいいのだろうなと思えるのだけど、コンテ、演出、作画、色彩設計、撮影、どれも隙が無いというか。夏の学校感とか、旧校舎の非常階段感とか、非常に雰囲気が出ていて、実に良い感じ…。

ところどころで新海誠監督作品と見紛うレベルのカットが出てきて…。もしも新海誠監督が純度の高い只のラブコメを作ってみたらどんな映像になるのかな? たぶんこうなるだろう。みたいな印象も…。ホントかどうかは知らないけれど、新海誠監督も1話を見てべた褒めしていたという話も見かけた。

1話については、動画や撮影等も含めて A-1 Pictures の内製率が高いらしい。菊池雄一郎プロデューサーが、スタジオの総力を結集すればこのレベルの映像は作れるという証明にはなっただろう、みたいな感じの発言していただけのことはあるなと…。

なんとなく、京アニの「けいおん!」を思い出したりもした。この内容で何故ここまで作り込む? みたいな。「獅子は兎を狩るにも全力を尽くす」とはこういう光景なのでは…。

この後の話数でどうなっていくのかそこは全然分からないけれど、少なくとも1〜2話については完璧な出来じゃないのかなと…。

感心した箇所 :

1話については色んなカットで感心してしまったのだけど、個人的には、カットが変わった直後に教室の扉の前でヒロインがピョンとジャンプしていたカットにシビレてしまった。コンテで指示してあったのか、作画の人が思いついてアドリブで盛り込んだのか分からんけれど…。よくまあこんな見せ方、いや、使い方を思いつくもんだなと。

要するに、実写のバラエティ番組でたまに見かける、ジャンプして着地したら全然別の場所に居るというあの見せ方の応用だろうなと。あるいは昭和ライダーのライダージャンプでもいい。いわゆるモンタージュ技法ってやつ。

自分達はそういう見せ方があるということを、知識としては持っている。何度も目にしてきているから、提示されれば「ああ、アレね」とすぐにピンと来る。だから、人によっては「それのどこが面白いの?」「よくある見せ方じゃん」と言い出すかもしれない。しかし…。

まさか、学校の教室の中で、学生さん達がたわいもない会話をしているその場面で、ライダージャンプ(の後半)が出てくるなんてフツー誰も思わないって。このタイミングでソレ使う? いや、たしかに使えるなコレ。全然使えるわ。いやー、このスタッフ、よく気が付いたな…。天才かよ…。みたいな。

しかも、その仕草を見せることで、視聴者側には「ちょ。今お前どっから湧いてきた?」「お前…神出鬼没やな」という感想が高い確率で発生する。演出が視聴者の心理をたしかに誘導できてると言える。ジャンプして着地するというアクションの前半をぶった切って見せてるだけなのに。

そういう細かいアレコレが1話の各所に盛り込まれていて、結果、塵も積もれば的に、こちら側では「このヒロイン変なヤツだなー」「実際に隣に居たら大迷惑だよなあ」という印象に育っていって…。そしてラストのあたり、旧校舎の屋上で、いきなり『あの表情』を見せてくるわけだから…。演出家の手のひらの上でコロコロと転がされてる(?)ようなこの感覚。実に気持ち良い…。次々に繰り出される職人芸の数々。良い。実に良い。

「ガラスの仮面」原作者の美内すずえ先生の発言を ―― 「ネタより見せ方のほうが大事」という言を思い出したりもして。ネタ=基本設定だけを見たら、たぶんこのアニメはさほど評価されないだろうなと思うのだけど、見せ方については尋常じゃないレベルで仕上げてる印象で…。「よくあるネタじゃん」なんて言ってるうちはまだ浅い。その「よくあるネタ」を面白く感じさせるように「見せ方」を工夫しまくってるあたりが逆に凄いんですよ。この食材でこんな料理作っちゃうのかよ、さすがプロの料理人は違うわ…。みたいな。

何にせよ、いいもの見せていただきました。素晴らしい。

2024/07/25(木) [n年前の日記]

#1 [krita] krita-ai-diffusionのAnimationモードがよく分からない

Krita 5.2.3 x64 + krita-ai-diffusion 1.20.1 を試用中。krita-ai-diffusion の Animationモードの使い方が分からなくて…。ググってみても解説情報が出てこない…。Full ANimation と Single Frame のどちらかを選択できるようだけど、Single Frame はともかく、Full Animation って何がどう処理されるのか…。

そもそも、Krita のアニメーション作成関連機能についてよく知らないのだよな…。そこから勉強しないとダメか…。

変形マスクを使ってアニメを作れるらしい :

Krita 5.x から、アニメーションカーブという機能が追加されていたらしい。ドッキングパネルとして、アニメーションカーブパネルを表示できる。

レイヤーに対して、変形マスクとやらを追加すると、その変形マスクの位置/回転/倍率を、アニメーションカーブ上のキーフレームで指定できるようになる。絵が左から右に動いたり、単なる拡大縮小をするアニメなら作れそう。

ただ、アニメーションカーブ上で、ベジェ曲線を指定できるはずが、調整方法がよく分からない…。

移動回転拡大縮小でアニメーションを作りたいなら、まだ blender あたりを使ったほうがいいのかもしれない…? あるいは OpenToonz のほうが、まだ操作方法が分かりそうかも…。

#2 [zatta] 自転車のバルブについて少し調べてた

朝方、電動自転車の前タイヤの空気が抜けてしまっていると、親父さんから報告があった。もしかすると、ここ連日の気温のせいで前タイヤのバルブの虫ゴムが溶けてしまったのではなかろうか…。以前もそういうことがあったんだよな…。虫ゴムがドロドロに溶けちゃっていて…。

一応バルブを交換してみたほうがいいのかもしれない。でも、たしかバルブって2種類ぐらいあったような…? 記憶が怪しかったので少し調べてみた。

自転車のタイヤのバルブは、英式、仏式、米式があるらしいけど、ママチャリの場合は十中八九英式らしい。

その英式のバルブは、昔ながらの虫ゴムを使うタイプと、ゴムを使わずに樹脂を使うスーパーバルブがあるそうで。

虫ゴムを使うタイプは以下のメリットやデメリットがあるらしい。
スーパーバルブタイプは以下のメリットやデメリットがあるらしい。
当たりを引けるならスーパーバルブが良さそうだけど、ハズレを引いたらアレだな…。

ちなみに、車椅子も自転車同様のタイヤを使うらしいけれど、修理業者さんの中には、「スーパーバルブは使わない」「虫ゴムタイプを必ず使う」と決めてる方も居るようで…。スーパーバルブは見た目で壊れてるかどうかが分からないのと、お客さん側がスーパーバルブの存在を知らないことが多くて、バルブに虫ゴムがついてないぞとクレームをつけられた事例が何度かあったから、だそうで…。

虫ゴムを交換 :

こんな感じで調べていたのだけど、親父さんが虫ゴムだけを買ってきた。てっきりバルブごと買ってくるのかと思ってたけど…。電動自転車に今まで使われていたのがスーパーバルブだったらマズイな…。

夕方、電動自転車の前タイヤの空気が無くなってることを確認。やはりバルブかチューブがダメらしい。

バルブを確認してみたら虫ゴムタイプだった。であれば親父さんが買ってきた虫ゴムを使える…。助かった。ゴムがダメになってるようには見えなかったけど、とりあえず交換。これで様子を見てみることにする。

2024/07/26(金) [n年前の日記]

#1 [krita] Kritaの変形マスクでアニメを作る手順をメモ

Krita 5.2.3 は、変形マスク(transform mask)なるものを使うことで、オブジェクトが移動したり回転したりするアニメーションを作れるらしいと知ったので、そのあたりの操作方法を確認してみた。どのバージョンで機能追加されたのか分からんけれど…。 _Krita 5.0 だろうか?

環境は、Windows10 x64 22H2 + Krita 5.2.3。CPU AMD Ryzen 5 5600X。GPU NVIDIA GeForce GTX 1060 6GB。RAM 16GB。

操作手順をメモ :

今回は以下の2つの画像を使ってアニメが作れそうか試してみる。krita-ai-diffusion を使って画像生成してみた。ライセンス面はどうなのか分からんけれど、実験用ということで許してもらえないものだろうか…。ダメかな…。

girl.png

bg.png

_girl.png
_bg.png

まずは、ドッキングパネル設定で、アニメーションカーブパネルを表示しておく。
  • 設定 → ドッキングパネル → アニメーションカーブ、にチェックを入れる。
  • アニメーションを作るので、アニメーションタイムラインにもチェックを入れたほうがいいと思う。
anime_take03_ss01.png


アニメーションの長さを指定する。
  • アニメーションタイムライン、もしくは、アニメーションカーブのパネルの右のほうにあるアイコンをクリックすれば設定ダイアログ?が表示される。
  • 1秒24コマとして、今回は24コマ x 3秒 = 72コマの長さにした。
  • ちなみに、「24*3」と打ち込んでやれば、何コマになるのかKritaが自動で計算してくれる。
anime_take03_ss02.png


既にレイヤー上に画像素材をインポートしてあるものとして…。動かしたいレイヤーを選んだ状態で、「変形マスク」を追加する。
  • レイヤーパネルの左下の「+」アイコンをクリック → 変形マスク。
  • もしくは、レイヤーを右クリック → 追加 → 変形マスクを追加、でもいい。

anime_take03_ss03.png

anime_take03_ss04.png


追加した変形マスクを選択状態にする。

anime_take03_ss05.png


0フレーム目に、変形マスクのキーフレームを作成する。
  • アニメーションカーブパネルをアクティブにする。
  • 0フレーム目を選んで、「+」がついたアイコンをクリック。
anime_take03_ss06.png


0フレーム目のところに、様々な色の丸がついている。キーフレームになっていることを示している。

anime_take03_ss07.png


最後のフレーム = 72フレーム目を指定。先ほどと同様に、「+」がついたアイコンをクリック。これで、0フレーム目と72フレーム目がキーフレームになって、その間が補間されている状態になった。

anime_take03_ss08.png


変形ツールを選択。

anime_take03_ss09.png


変形マスクレイヤー、及び、0フレーム目を選択して…。

anime_take03_ss10.png


変形ツールを使って、位置、回転、拡大縮小(倍率)、剪断、といった変形を行う。

anime_take03_ss11.png
anime_take03_ss12.png


最後のフレーム = 72フレーム目を選んで、同様に、変形ツールを使って、任意の位置、回転、拡大縮小、剪断による変形を行う。

anime_take03_ss13.png


この状態で再生ボタン(右向きの三角ボタン)をクリックすれば…。

anime_take03_ss14.png


0フレーム目と72フレーム目の間を補間するように変形が行われてアニメが作れる。

anime_take03_ss14_b.gif


この調子で、背景レイヤーにも似たような変形をしておいた。

動画ファイルとして出力 :

動画ファイルとして出力する。ファイル → アニメーションを出力、を選択。

anime_take03_ss15.png


今回は、フィルタを「Lanczos3」に、出力を「MPEG-4動画」にしてみた。

anime_take03_ss16.png


出力結果は以下。




補間がリニア(直線的)なので不自然さがあるけれど、一応それらしく動いた。

雑感 :

こうして一応、アニメを作成することができた。まあ、アニメと言っても、このやり方では、移動/回転/拡大縮小/剪断、しかできないわけだけど…。

おそらくだけど、Krita のこの機能は…。「ガシガシと手を動かしてループ動画を描いたら、せめて、そのループ動画の表示位置ぐらいは変更できるようにしたいなー」ぐらいの感覚で実装されているのではないかしらん。だからあまり凝ったことはできない。凝ったアニメを作りたかったからお前の手を動かして描け! 俺はお絵かきソフトなんじゃい。お絵かきしろ! というノリなのではないかなあ、と。

ただ、Krita自体には、もっと高度な変形機能が実装されているわけで…。

_変形ツール - Krita Manual 5.2.0 ドキュメント
_Krita2.9:変形ツールの話、パート1(自由変形、パース変形、ワープ変形) - Kritaでぐるぐるお絵かきブログ

もし、パースグリッド変形、格子点変形(ワープ変形)、ケージ変形、ゆがみ変形、メッシュ変形、等まで使えたら、結構凝ったことができそうな気もする。しかし、現状ではそこまでサポートされてないようで、キーフレームに記録されるのは自由変形に関するパラメータのみ ―― 位置(=移動)、回転、倍率(=拡大縮小)、剪断、だけだった。

補間をベジェ曲線にする :

前述の作例(?)では、補間がリニアなままだけど、ベジェ曲線にして少し動きの感じを変えることもできる。

キーフレーム上の制御点の種類については、制御点を選択した状態で以下のアイコンをクリックすることで切り替えられる。

anime_bezier_ss01.png


ベジェ曲線に変更して編集していく際は、アニメーションカーブパネル上で、グラフ(?)を最大表示にしないと作業がしづらい。編集したいパラメータ(倍率や位置等)を1つだけ表示させて(Shift + LMBで目のアイコンをクリック)、グラフを最大表示にするアイコンをクリックすれば、グラフが大きく表示される。

anime_bezier_ss02.png


リニア → ベジェ曲線への変更は、以下のような感じだろうか…。
  • 制御点を選択した状態(白い●)で、ベジェ曲線化アイコンをクリックすると、ハンドル(白い〇)が表示される。
  • ハンドル(白い〇)をドラッグすれば、ベジェ曲線の形を変更できる。
anime_bezier_ss03_b.gif


こんな感じで、以下のようなリニアな補間を、ベジェ曲線の補間に変更できた。

anime_bezier_ss03.png
anime_bezier_ss04.png



そんな感じで、一応サンプル動画も作ってみたけれど…。






うむ…。これは…違いが分からない…。たしかに動きが少しだけ柔らかくなったけれど微妙過ぎて…。サンプルとしては失敗事例だな…。

余談。Kritaで全レイヤーをエクスポート :

数日前にも書いたけど、Krita で全レイヤーを画像ファイルとしてエクスポートするなら、ツール → スクリプト → レイヤーをエクスポート、が使える。画面をキャプチャしたので一応載せておく。

export_all_layers_ss01.png



export_all_layers_ss02.png



export_all_layers_ss03.png


注意点。変形マスクが含まれている .kra (Krita用画像データ)をコレでエクスポートしようとしたら Krita が落ちてしまった。画像以外のレイヤーは削除してから使ったほうがいいのかもしれない。あるいは、エクスポート時のオプションで回避できるのだろうか…?

#2 [blender] Blender 4.2.0 LTSをインストールした

Blender 4.2.0 LTS が公開されたというニュースを見かけたので zip版をダウンロードしてインストールしてみた。

Blender 3.6.11 LTS の設定を引き継ぐよう選んでみたところ、アドオンが無いと言われてしまった…。Blender 4.2 LTS から、アドオンを同梱せず、ネット経由で公式リポジトリからダウンロードしてインストールするようになったらしい。

ざっと眺めた感じ、以下のアドオンをDLしてインストールする必要があったので一応メモ。

ちなみに、編集 → プリファレンス → システム → ネットワーク → オンラインアクセスを許可、を有効にしないとインストールできないので注意。


「うわっ…私の(環境の)アドオン多過ぎ…?」という気もちょっとする…。

2024/07/27() [n年前の日記]

#1 [krita] Krita 4.x用のブラシをKrita 5.xで使えないか確認中

せっかく Krita を触ってるので、Krita 4.x用のブラシが Krita 5.2.3 で使えるかどうか確認中。IForce73さんが作成した、以下のブラシを使いたいのだけど…。

_Environment Brushes and Forest Vegetation 3 by IForce73 on DeviantArt
_Krita - Environment Brushes (speedpaint demo) - YouTube

自分の環境では正常な動作にはなってない。キャンバス上で描いてもブラシ形状が出てこなくて1ドットしか描画されない。

以下のやり取りで、使えてる人も居るらしいと分かったけれど…。

_Krita 5 and Environments 2.0 brushes from iForce73 - Resources / Brushes and Bundles - Krita Artists
_Question about import brushes from krita 4 into krita 5 - Support and Advice / General Questions - Krita Artists

とりあえず、DeviantArt のアカウントを作って、environment_brushes_and_forest_vegetation_3_by_iforce73_dc8so7k.zip を入手し直した。
リソースライブラリ(*.bundle) は、Krita の、設定 → リソースライブラリの管理 → インポート、でインストールする。

ブラシ画像ファイル(*.png、.gih、*.gbr) は、設定 → リソースを管理 → リソースをインポート、でインストールしたほうがいいらしい。

以前のKritaのバージョンでは、ブラシ画像をインストールする手順として、リソースが入ってるフォルダを開いて、自分でサブフォルダごと、brushes/ 以下にコピーしてやる感じだったらしいけど。Krita 5.x でソレをすると正常に扱われないリソースが出てきてしまうそうで。また、以前はサブフォルダを作って管理できたけど、今現在は全てのブラシ画像が brushes/ 直下に置かれる形で管理されるらしい。

ちなみに、Krita のリソース保存先は、Windows の場合以下の場所にある。
C:\Users\(USERNAME)\AppData\Roaming\krita\
or
%APPDATA%\krita\
_リソース管理 - Krita Manual 5.2.0 ドキュメント


どうも正常動作してくれないので、前述のフォルダ内にある resourcecache.sqlite を削除してから Krita を起動してみた。これでリソース関係の設定が全部初期化された状態になるらしい。ただし、今まで設定したタグ情報や、ブラシのお気に入り登録情報もリセットされてしまうので注意。

この状態で、ブラシ画像ファイル(*.png, *.gih、*.gbr)を、設定 → リソースを管理 → リソースをインポート、でインストールしてみたところ、ある程度のブラシがそれらしく動作するようになった。

ただ、まだ一部のブラシが正常に動作しない…。おそらくだけど、例えばブラシ画像ファイルの中に「Tann播1.gih」という名前のファイルがあったりするので、ファイル名の関係で一部のブラシ画像ファイルが読み込めていないのではないかと…。

ブラシプリセットにタグ付け :

「リソースを管理」ダイアログ上で、複数のブラシプリセットに対して、一気にタグ付けすることができる。

  1. 設定 → リソースを管理、を選択。ダイアログが開く。
  2. 「ローカルリソース」と表示されているところをクリック。
  3. 例えば、「ENV_Brushes_Trees_and_Bushes.bundle」を選択。リソースライブラリの中に入ってるブラシプリセットがアイコンで一覧表示される。
  4. 最初のブラシプリセットを選んでから、Shift + クリックで最後のブラシプリセットを選べば、複数/全部のブラシプリセットを選択できる。
  5. 右のほうにある「タグ」の「+」をクリック。
  6. 「新しいタグ」に「ENV_Trees」と入力して「+」をクリック。
これで、選択したブラシプリセットに、一気にタグ付けできる。

2024/07/28() [n年前の日記]

#1 [krita] Kritaのブラシプリセットファイルについて調べてた

Krita 5.2.3 上で、以下で公開されているKrita用ブラシセットの、一部のブラシプリセットが正常に動作していない。

_Environment Brushes and Forest Vegetation 3 by IForce73 on DeviantArt

原因はどこにあるのだろう…。Krita のブラシプリセット関連ファイルについて、中身がどうなってるのか少し調べてみた。

リソースライブラリについて :

Krita のリソースライブラリファイル、*.bundle について調べたところ、実態は zipファイルで、*.zip を *.bundle にリネームしている、という話を見かけた。

試しに、ENV_Brushes_Trees_and_Bushes.bundle を、ENV_Brushes_Trees_and_Bushes.zip にリネームして解凍してみたところ、以下のファイル群が得られた。たしかに中身は zipファイルらしい。

> tree /f /a ENV_Brushes_Trees_and_Bushes
./ENV_BRUSHES_TREES_AND_BUSHES
|   meta.xml
|   mimetype
|   preview.png
|
+---META-INF
|       manifest.xml
|
\---paintoppresets
        ENV_Brushes - Barkbrush_.kpp
        ENV_Brushes - BushyBuilder1_.kpp
        ENV_Brushes - BushyBuilder2_.kpp
        ENV_Brushes - Dense Forest_.kpp
        ENV_Brushes - Distant Evergreen _.kpp
        ENV_Brushes - Distant Tree Silouhette 1_.kpp
        ENV_Brushes - Distant Tree Silouhette 2_.kpp
        ENV_Brushes - Randombranch2_.kpp
        ENV_Brushes - Randombranch_.kpp
        ENV_Brushes - TreeGen1_.kpp
        ENV_Brushes - TreeGen3_.kpp
        ENV_Brushes - Treestamp1_.kpp
        ENV_Brushes - Treestamp2_.kpp
        ENV_Brushes - Treestamp3_.kpp
        ENV_Brushes - Treestamp4_.kpp
        ENV_Brushes - TwigCreator_.kpp
        ENV_Brushes Bark Texture_.kpp
        ENV_Brushes- TreeGen2_.kpp

ちなみに、.kpp は、Krita のブラシプリセットファイル。

ブラシプリセットファイルについて :

Kritaのブラシプリセットファイル、*.kpp について調べたところ、以下が分かった。
  • .kpp の実態は 200 x 200ドットの png ファイル。
  • 拡張子が .png から .kpp に変更されている。
  • その pngファイルの中に、ブラシプリセットの情報が xml で記述されている。
  • png の画像部分は、そのブラシプリセットのアイコンとして利用される。

Krita Brush Info を試用しようとしたけどダメだった :

Krita用ブラシプリセットファイル(.kpp)内の情報を出力してくれる、Krita Brush Info というツールがあるらしいと知り、Windows10 x64 22H2 上で使ってみようとしたのだけど…。

_KennethEvans/VS-KritaBrushInfo: C# application to get brush parameters in a readable form and compare brushes for Krita paintoppreset .kpp files.
_Krita Brush Info
_ExifTool by Phil Harvey

動作には ExifTool が必要とのこと。

KritaBrushInfo_1-1-0.zip と、exiftool-12.92_64.zip を入手・解凍して、任意のフォルダに置いて実行してみたのだけど…。.bundle の中身を覗いたり、.bundle内に含まれている .kpp を一覧から選択するところまでは動いたものの、情報を表示しようとしても「exiftool.exe が見つからない」と言われて動作してくれない。環境変数PATHが通っている場所に exiftool.exe は置いているし、あるいは KritaBrushInfo.exe と同じフォルダに exiftool.exe を置いたりもしたのだけど…。

KritaBrushInfo.exe のタイムスタンプは 2018/11/22 とそこそこ古いので、exiftool.exe が新し過ぎるのではないかと exiftool 11.77 を入手して試してみたり、元々HDDに入ってた exiftool 9.24 を利用してみようとしたけれど、状況は変わらず。

_ExifTool by Phil Harvey (WebArchive, ExifTool 11.77)

※ 2024/07/29追記。exiftool.exe の場所を指定する方法が分かった。テキストウインドウ内で右クリックするとメニューの中に Preferences という項目がある。これを選べば、exiftool.exe の場所を指定する設定ダイアログが表示される。exiftool 11.77 を指定したら動作した。

ExifToolについて :

余談。exiftool 12.92 は exiftool.exe の他に、exiftool_files/ フォルダの中身も必要になってしまうけれど、12.87 以前のバージョンなら exiftool.exe 単体で動作する。

また、公式バイナリのファイル名は exiftool(-k).exe になっているけれど、exiftool.exe にリネームしても動作する。ファイル名に「(-k)」を付けることで、オプションとして -k を常時つけて実行する仕様になっているらしい。

_ExifTool.exe の簡単な使い方 − 表示編 | 穀風

バージョンの確認は以下。
> exiftool -ver
12.87

ExifToolで.kppの中身を調べる。 :

.kpp を .png にリネームして、ExifTool 9.24 に渡して内容を出力してみた。

_env_brushes_-_distant_evergreen__.png

※ 2024/07/29追記。対象のブラシプリセットは以下。

env_brushes_-_distant_evergreen__ss01.png

exiftool.exe "ENV_Brushes - Distant Evergreen _.png" > "ENV_Brushes - Distant Evergreen _.kpp.txt"

結果は以下。

_env_brushes_-_distant_evergreen__.kpp.txt

「Preset」というところに、xmlらしい情報が列挙されてる。これがブラシプリセットに必要な情報なのだろう…。

DevToys Version 2.0-preview.2 の XMLフォーマッターを使って、xml部分を整形してみた。これで少しは読みやすくなった。

_env_brushes_-_distant_evergreen__.kpp.xml.txt

「Brush」で検索してみると、利用しようとしているブラシ画像ファイル名が分かる。brush_definition と requiredBrushFile が関係しているらしい。

$ grep Brush "ENV_Brushes - Distant Evergreen _.kpp.xml"
<Preset paintopid="paintbrush" name="ENV_Brushes - Distant Evergreen _">
  <param type="string" name="brush_definition"><![CDATA[<Brush scale="0.16151" type="gbr_brush" useAutoSpacing="0" autoSpacingCoeff="1" ColorAsMask="1" BrushVersion="2" filename="Tann??1.gih" spacing="0.06" angle="0"/> ]]></param>
  <param type="string" name="requiredBrushFile"><![CDATA[Tann??1.gih]]></param>

「Tann??1.gih」というブラシ画像ファイルを使おうとしているけれど、「??」の部分は日本語環境では文字化けしてしまう文字を使っているっぽい。故にこのブラシプリセットを使おうとしても、日本語環境のKrita上ではブラシ画像ファイルが見つけられなくて正常動作しない、ということだったらしい。

対策してみる。
  1. 「Tann??1.gih」を「Tann1.gih」にリネームしながらコピー。
  2. Krita で、設定 → リソースを管理、を選択。ダイアログ上から「Tann1.gih」をインポート。
  3. 「ENV_Brushes - Distant Evergreen」というブラシプリセットの設定を変更する。ブラシ画像として「Tann1.gih」を利用するように変更。
  4. このブラシプリセットを別名で保存。
これで、件のブラシプリセットはそれっぽい動作になってくれた。

余談。Krita のブラシ画像ファイルとしては、.png、.svg、.gbr、.gih、.abr が利用できる。
  • .png : png画像 (ラスターデータ)
  • .svg : svg画像 (ベクターデータ)
  • .gbr : GIMPのブラシ画像ファイル。画像が1枚だけ入ってる。
  • .gih : GIMPのブラシ画像ファイル。複数の画像が入っていて、ランダムにどれかの画像を使ったり、使う画像を順々に切り替えたりできる。
  • .abr : Photoshopのブラシ素材ファイル。ただ、一部の機能しか利用できないらしい。

_7. ブラシの追加
_Kritaのブラシ先端についてのメモ - Kritaでぐるぐるお絵かきブログ

#2 [prog] XML整形ツールについてメモ

XMLを整形してくれるコマンドラインツールが無いものかとググってみたら、xmllint というツールがあるらしい。

_色々なコマンドラインでの XML の整形方法 - 重要なお知らせ
_4. xmllint使用方法

Windows上で動作する版は無いかとググったら、MSYS2 でパッケージが用意されていた。libxml2 をインストールすれば xmllint.exe もインストールされる。

_Base Package: libxml2 - MSYS2 Packages
_Base Package: mingw-w64-libxml2 - MSYS2 Packages

pacman -Ss libxml2
pacman -S mingw-w64-i686-libxml2
or
pacman -S mingw-w64-x86_64-libxml2
or
pacman -S libxml2
$ which xmllint
/mingw64/bin/xmllint

$ xmllint --version
D:\msys64\mingw64\bin\xmllint.exe: using libxml version 21209
   compiled with: ...

以下で整形結果を出力してくれる。
xmllint --format hoge.xml

hoge.xml を整形して fuga.xml として保存したい時は以下だろうか。
xmllint --format hoge.xml -o fuga.xml

2024/07/29(月) [n年前の日記]

#1 [krita] Kritaのブラシプリセットファイルについてもう少し調べてた

Krita のブラシプリセットファイルについてもう少し調べてた。

ブラシプリセット内容を出力するPythonスクリプトについて :

ググっていたら、ブラシプリセット名を変更するPythonスクリプト群に遭遇。その中に、ブラシプリセット(.kpp)の内容を出力するPythonスクリプトがあった。

_LainFenrir/krita-preset-renamer: A set of scripts to rename krita presets.
_krita-preset-renamer/scripts/view_metadata.py at main - LainFenrir/krita-preset-renamer

_Batch rename brushes prefix - Develop / Feature Requests - Krita Artists
_[HELP] Bulk change the name of kpp brushes - Support and Advice / General Questions - Krita Artists

view_metadata.py がプリセットの内容を表示するスクリプト。試用してみた。環境は Windows10 x64 22H2 + Python 3.10.10 x64。

動作させるには、send2trash と Pillow が必要。
python -m pip install send2trash --upgrade
python -m pip install Pillow --upgrade

以下で使用。
python view_metadata.py hoge.kpp
python view_metadata.py hoge.kpp > hoge.xml

たしかに Preset の内容が出力された。Python が入っている環境なら、ExifTool を導入してどうこうするより、こちらを使ったほうが楽かもしれない。

ちなみに、これらのスクリプトを使ってブラシプリセット名を変更すると、ブラシプリセットファイルのチェックサムだかハッシュだかが変化してしまってKrita上では警告が出てくるらしい。どんなアルゴリズムで、どこからどこまでを使ってその値を求めているのかが分かれば対応することもできるのだろうけど…。

「プリセット名の変更なんてKrita上でやればいいじゃん」と言われそうだけど、何十件もリネームしたい場合は一つ一つリネーム作業なんてやってられないのでそのあたりを自動化したい、ということで件のスクリプトが書かれたらしい。

ENV_Brushes_Forest_Vegetation_3.bundle について調べてた :

以下のブラシプリセットの中の、ENV_Brushes_Forest_Vegetation_3.bundle に含まれているブラシの一部がなんだか怪しい感じがしたので、.kpp の内容を調べてみた。

_Environment Brushes and Forest Vegetation 3 by IForce73 on DeviantArt

env_easy_bark_ss01.png

「Easy bark」というブラシプリセットを選んでも、ブラシ形状が円の状態だったので、これが正常動作状態なのか不安になったわけで…。

プリセット、「ENV_Brushes - Easy Bark_.kpp」のxml内容は以下。.kpp を .png にリネームしてから、ExifTool 11.77 に渡して出力して、xml部分だけを MSYS2 + xmllintで整形してみた。

_env_brushes_-_easy_bark_.kpp.xml.txt

「brush_definition」で、ブラシ形状としては「Circle」が指定されていて、「requiredBrushFile」にはブラシ画像が何も指定されてなかったので、どうやらブラシ形状は円の形で正しいらしい。たぶん。

これで、件のブラシセットのほとんどを、Krita 5.2.3 上でも使えそうな気がしてきた。

ちなみに、このブラシ群を使うと、ブラシを選んでマウスをぐりぐり動かすだけで以下のような画像が描けてしまう。いや、「描く」と言うより「作る」と言っておいたほうがいいのかな…。何にせよ、あっという間にそれっぽい画像が作れるブラシなのでイイ感じ。ありがたや。

env_brush_take01.png

#2 [neta] アナログで描いてた頃も似たようなことをしていた気がする

思考メモ。

CGソフトの画像ブラシを使ってお絵描きしていると、人によっては「ズルイ」と言い出したりするのかなと想像したりもするのだけど。考えてみたら、アナログ画材を使って描いてた頃も発想自体は似たものがあったような気がしてきた。
自分、学生時代に漫研に所属してたけど、画材店で小さい金網だのスタンプだのを買ってきて試してた記憶があります。

また、昔、ポスターカラーを使ってアニメの背景画を描いている映像を見たことがあるけれど。筆の先を3〜4つぐらいに分けて、木の葉っぱをチャチャチャと描いていく様子を目にした記憶もあって。

要するに、以下のような発想は、アナログな画材を使って描いてた時代もフツーにあったよなあ、と…。 これってCGお絵描きソフトで画像ブラシを使って作業するのと、発想としては何ら違いが無いような気もする。「デジタルはズルイ」と言われたら「アナログでも似たことやってたよ?」と言えそうな。

でもまあ、CGソフトによるお絵描きは、やはり便利なところもあるなと…。 そう考えると、やっぱりCGはズルイのだろうか。もっともその分、レベルの高い成果物を要求されるようになってきた感も…。快適に作業できるようになった分、更に上を目指すことを強要されているというか…。いや、逆か。高みに登りやすくするために、作業の本質ではない面倒臭いところをコンピュータが片付けてくれるようになったと言えるのかも。

思考メモです。オチは無いです。

2024/07/30(火) [n年前の日記]

#1 [prog] XML整形について

1行でずらずらと書かれたXMLを、人間の目でも見易いように整形したい。利用できるツールはどんなものがあるのかメモしておく。数日前にも一部のツールについてメモしていたような気もするけれど…。

環境は Windows10 x64 22H2。

DevToys :

GUIで利用できる DevToys というツールに、XML整形機能がある。DevToys 2.0.2.0 x64 Portable を試用。

_DevToys - A Swiss Army knife for developers

「ツールを検索」と表示されてる検索欄に「xml」と打ち込めば、「XML フォーマッター」がリストアップされる。XMLを貼り付けたり、ファイルを開いたりして整形できる。

xmllint :

Linux の libxml2パッケージ等に含まれている。Windows10 x64 22H2 + MSYS2 上で libxml2 をインストールしたら利用できるようになった。
pacman -S libxml2
pacman -S mingw-w64-x86_64-libxml2
pacman -S mingw-w64-i686-libxml2

$ which xmllint
/mingw64/bin/xmllint

$ xmllint --version
D:\msys64\mingw64\bin\xmllint.exe: using libxml version 21209
   compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 HTTP DTDValid HTML C14N Catalog XPath XPointer X
Include Iconv ISO8859X Unicode Regexps Automata Schemas Schematron Modules Debug Zlib Lzma

xmllint --format INPUT.xml -o OUTPUT.xml

サクラエディタでXMLを整形 :

無料で使えるテキストエディタ、サクラエディタ上で、XML整形ができるマクロがある。Windows10 x64 22H2 + サクラエディタ 32bit Ver. 2.4.2.6048 で試用してみた。

_サクラエディタ
_サクラエディタでXMLを整形 - My備忘録
_Macro/投稿/211 - SakuraEditorWiki

XmlFormat.js を入手。サクラエディタインストールフォルダ\macros\ に入れた。

前述のページのコメントによると、文字参照のエスケープについては、「&」を最初に変換したほうがいいらしい。以下のように修正。
//文字参照をエスケープする
String.prototype.escape = function() {
    return this.replace("&", "&amp;")
               .replace("<", "&lt;")
               .replace(">", "&gt;")
               .replace("\"", "&quot;")
               .replace("'", "&apos;");
}

選択範囲を指定後、Shift + Ctrl + Alt + B で呼び出せるように設定しておいた。尚、XMLにはならない文字列が含まれてしまっていると整形処理は走らないので注意。

Notepad++でXMLを整形 :

Notepad++ もプラグインを追加することでXMLの整形ができるらしい。Windows10 x64 22H2 + Notepad++ 8.6.8 32bit で試用してみた。

プラグイン → プラグイン管理。「XML Tools」にチェックを入れる。XML Tools の現行パージョンは、3.1.1.13 だった。

インストールに成功すると、プラグイン → XML Tools が選べるようになる。Pretty Print (Ctrl + Alt + Shift + B) で整形ができる。

XMLStarlet :

以下のページによると、XMLStarlet というツールもあるらしい。

_色々なコマンドラインでの XML の整形方法 - 重要なお知らせ
_XMLStarlet - Wikipedia
_XMLStarlet Command Line XML Toolkit: Download
_XMLStarlet command line XML toolkit - Browse Files at SourceForge.net

Windows10 x64 22H2上で、xmlstarlet-1.6.1-win32.zip を入手して解凍。公式バイナリは xml.exe になっていたけれど、xmlstarlet.exe にリネームして、パスを通してある `D:\home\bin\` 以下に入れておいた。

以下でフォーマットできるらしい。
xmlstarlet fo hoge.xml

#2 [linux][apache] テキストファイルがCGIとして扱われてしまって悩んだ

Webサーバ Apache2で公開しているディレクトリ内に、hoge.pl.txt や hoge.cgi.txt を置くと、何故か CGI として扱われてしまうようで、実行しようとしてエラーになることに気づいた。環境は Debian Linux 10 buster i686 + Apache2 2.4.59-1~deb10u1。

ファイル名の最後が .txt なのだからテキストファイル(text/plain)として扱われるはずでは…? もしかして、ファイル名に .pl や .cgi が含まれているだけで、CGI実行ファイルとして扱ってしまう…?

とりあえず、.htaccess に以下のような記述をして、テキストファイルとして扱われるようにしてみた。
Options +Indexes -ExecCGI +FollowSymLinks

AddType text/plain .pl.txt
AddType text/plain .cgi.txt

<FilesMatch "\.(pl|cgi|txt)$">
    ForceType text/plain
    SetHandler none
</FilesMatch>

<Files ~ "\.(pl|cgi)\.txt$">
    ForceType text/plain
    SetHandler none
    RemoveHandler .pl .cgi
    RemoveHandler cgi-script
</Files>

余談。ググってみても、CGIとして動いてくれない状態を動くようにするための指定/記述ばかりで、その逆が全然見つからない…。Microsoft Copilot に何度も尋ねまくって色々試してみたけれど、どうやら RemoveHandler .pl .cgi が効いてくれたっぽい。

#3 [nitijyou] 日記をアップロード

2024/06/06を最後にアップロードしてなかったのでアップロード。

2024/07/31(水) [n年前の日記]

#1 [novel] 「宇宙戦争掲示板 1人なんかおかしいのがいるけど」を読んだ

たまたまどこかのニュースサイトを眺めていた際に、タイトルとあらすじを目にして、「…それってどういうこと?」と興味が湧いてしまって。少し読み始めたらなかなか面白くて気づいたら最後まで読んでしまった…。

_【書籍化】【完結&番外編更新中】宇宙戦争掲示板 1人なんかおかしいのがいるけど(福朗) - カクヨム

感想としては…。特務!特務!特務! と言っておかねば、みたいな。SF戦記小説なのか、ギャグ小説なのか…。何だろうなコレ。

自分、小説の類は全く読まない人種なのだけど、そんな自分でもスラスラと読めたので、おそらく飲み口(?)は圧倒的に滑らかなのだと思う。こういうスタイルの小説もあるのかと感心してしまった。

もっとも、ジャンルとしては 「やる夫シリーズ」に近いのかもしれないし、あるいは昔ヒットした 「電車男」に近い語り口なのかもしれないし。本編冒頭で作者自身が 「掲示板モノ」というワードを記した回もあったから、自分が全く知らなかっただけでおそらくジャンルとしてはすっかり定着してるのだろうなと想像する。ただ、例に挙げた既存作とは違って、この作品はちょっと映像化不可能かもしれないなと…。小説だからこそ可能な見せ方に思えるし、これを映像化しろと言われたらスタッフ一同頭を抱えるのではないか…。

主人公キャラに新規性があるかと言えば、おそらくそれほど無いような気もする。と言うのも、巷でよく見かける 「俺またなんかやっちゃいました」な無双系主人公に分類されそうだし…。紹介文でも、 「FPSゲームの主人公」とぶっちゃけてるし。だから、よくある小説のスタイルでこの主人公を描いたら、特にこれと言って面白くもなんともない作品になりそうだなと…。しかし、この作品は、 主人公の言動を直接描写せず、そのほとんどを 周囲に居たキャラによる伝聞/噂話で構成した点が実に面白いなと感じた。このあたり、昔NHKで放送された庵野監督への密着取材番組に関して、庵野監督が取材ディレクターに「俺を撮るより周囲のスタッフを撮りなよ…」とアドバイスしていたエピソードを思い出したりもする。この作品を読めば、庵野監督が言いたかったことがすんなり理解できるかもと思ってしまったりもして。

英雄は名も無き人々の伝聞によって作られる ―― のが大半だろうけど、もしもその伝聞を、斜め上の方向でどんどん超えちゃう存在があったとしたらどうなるか、みたいな話でもあるのかな、などと考えてしまったりもして。そしてそれもまた伝聞として広がって、英雄のイメージがますます…。うむ。これはちょっと考えがまとまらない。

何にせよ、とても面白い作品だなと思いました。素晴らしい。特務!特務!特務!

余談。そういえば、この作品、「小説家になろう」でも公開されてるらしいので、ある意味「なろう系」作品に分類されるのだろうか…? 「なろう系w」と小馬鹿にする人達をたまに見かけるけれど、こういう作品もあるあたり玉石混交な場所だろうし迂闊なことは言えないよなあ、と…。「バカにされているところから新しい才能は生まれる」「馬鹿にされてるものが新しい時代を作る」という言葉もどこかで聞いたし。悪書と言われて校庭で燃やされた漫画とか、実写畑からジャリ番と言われて馬鹿にされてたアニメとか、それらのジャンルが今どうなってるかを考えると…。

以上、31 日分です。

過去ログ表示

Prev - 2024/07 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project