mieki256's diary



2023/06/13(火) [n年前の日記]

#1 [cg_tools][prog] cog.yamlって何だろう

低品質な画像を高画質化できるらしい、SwinIR という画像処理技術が気になった。AIを使って画像を拡大したり、ノイズを除去してくれるらしい。

_GitHub - JingyunLiang/SwinIR: SwinIR: Image Restoration Using Swin Transformer (official repository)

ローカル環境で動かせるなら動かしてみたい。ざっと見たところ、cog.yaml というファイルが目に入った。

_SwinIR/cog.yaml at main - JingyunLiang/SwinIR - GitHub

.yaml/.yml ファイルか…。中には動作に必要な Pythonモジュールが列挙されてる。これはもしかして、conda用のファイルだろうか。ちなみに condaというのはPythonの仮想環境を作れるツール。

conda に cog.yaml を渡してみた。
conda env create -n swinir --file cog.yaml
しかし、何一つパッケージがインストールされなかった。すると、このファイルは何用のファイルなんだろう?

ググってみたら、この cog.yaml、どうやら Docker 用のファイルだったらしい。Dockerとな…。やたらと見かけるツール名だけど、何だっけソレ。

Dockerについて調べた :

「dockerとは」でググってみたら、仮想環境を作れるツールらしい。開発時に必要なライブラリやパッケージをひとまとめにしておけるので、開発が捗るのだとか。

しかし、Linuxのカーネルと密接に絡んだ仕組みになっているので、Windows上ではすんなり使えない模様。有償ソフトの Docker Desktop なるものを導入するか、あるいは、Windows上で仮想PCのWSL2を導入して、その上で Ubuntu Linux等を動かして、そのLinux上で Docker を使う、ということになるそうで。

仮想PCの選択で悩む :

Docker を使うためにはWSL2の導入が必要らしいと分かってきたけど…。WSL2か…。うーん。

以前試しに WSL2 を使った時は、他の仮想PC、VMware や VirtualBox の動作が目に見えて遅くなってしまって、WSL2 をアンインストールしてしまった記憶が…。だから、WSL2 はインストールしたくないのだよなあ…。

であれば、VMware や VirtualBox 上で動かしている Linux上で Docker を使うわけにはいかんのだろうか。

そう思って少し調べたけれど、これまた上手くはいかないようで。Docker そのものは仮想PC + Linux で動かせるのだろうけど。そもそも WSL2 上で Docker が使えているのだから、他の仮想PCでも同様だろう。しかし、今回やりたいのは、「GPU(GPGPU)を使って処理をする SwinIR を動かしたい」というお題なわけで…。

仮想PC + Linux から、ホストOS(Windows)が管理してるGPU/ビデオカードを制御できればいいのだけど、現状では難しいらしい。有償、かつ、サーバ用途として販売されてる VMware ならやれなくもないらしいけど、VMware Player や VirtualBox では無理だそうで。GPU(GPGPU)が使えないとなると、SwinIR も動かない…。

つまり、SwinIR が動く環境を Docker を使って構築したい場合は、OSは Linux、かつ、その Linux機にGPGPUが利用できるレベルのビデオカード/GPUを積む、という条件を満たさないといけない。Windows上で、Docker を使って、GPGPUを使うツールの環境を構築するというのは、ちょっと厳しいようだなと…。

もしかすると、WSL2 +Docker を使った場合も、GPGPUは利用できないという問題が発生するのでは…?

#2 [cg_tools] SwinIRをWindows10上で動かしてみた

AIを使って低品質な画像を高画質化するらしい SwinIR を、Windows10 x64 22H2上で動かしてみた。本来は cog.yaml を利用して、Docker で環境を構築するのだろうけど、Docker を使わずに環境構築をして動かしている事例を多々見かけたので、なんとかなりそうだなと…。

_GitHub - JingyunLiang/SwinIR: SwinIR: Image Restoration Using Swin Transformer (official repository)

環境は以下。
今回は、D:\aiwork\swinir\ にインストールしてみる。

環境構築 :

作業の流れとしては以下。
  1. git clone でファイル一式を入手。
  2. Python + venv で仮想環境を作成。
  3. 必要なPythonモジュールをpipでインストール。
  4. 学習モデルデータを入手。
  5. 動作確認。


git clone でファイル一式を入手。
cd /d D:\aiwork\swinir
git clone https://github.com/JingyunLiang/SwinIR.git
cd SwinIR


Python 3.8 の仮想環境を作成。仮想環境に切り替え。
py -3.8 -m venv venv
venv\Scripts\activate
python -V


pip が使えるか確認。ついでに pip をアップグレード。
pip list
python -m pip install --upgrade pip


pip で必要なモジュールをインストールしていく。cog.yaml を参考にして、requirements.txt を作成。

requirements.txt
requests
torchvision == 0.9.0
torch == 1.8.0
numpy == 1.19.4
opencv-python == 4.4.0.46
tqdm == 4.62.2
Pillow == 8.3.2
timm == 0.4.12
ipython == 7.19.0


requirements.txt を指定して一括インストール。
pip install -r requirements.txt


学習モデルデータをダウンロードして入手。

_Release Pretrained models, supplementary and visual results - JingyunLiang/SwinIR - GitHub
_Releases - JingyunLiang/SwinIR

今回は以下のファイルを入手してみた。それぞれ、100MB前後のファイル。
  • 003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth
  • 003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_PSNR.pth
  • 005_colorDN_DFWB_s128w8_SwinIR-M_noise15.pth
  • 005_colorDN_DFWB_s128w8_SwinIR-M_noise25.pth
  • 005_colorDN_DFWB_s128w8_SwinIR-M_noise50.pth
  • 006_CAR_DFWB_s126w7_SwinIR-M_jpeg10.pth
  • 006_CAR_DFWB_s126w7_SwinIR-M_jpeg20.pth
  • 006_CAR_DFWB_s126w7_SwinIR-M_jpeg30.pth
  • 006_CAR_DFWB_s126w7_SwinIR-M_jpeg40.pth
  • 006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg10.pth
  • 006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg20.pth
  • 006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg30.pth
  • 006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg40.pth

種類をざっくり説明しておくと…。
  • 003_* は、拡大処理用。
  • 005_* は、ノイズ除去用。
  • 006_* は、Jpegノイズ削減用。

これらの学習モデルデータ(.pth)を、model_zoo\swinir\ というディレクトリを作成して、その中に入れる。

これで必要な環境は作れたはず。動作確認していく。

動作確認 :

testsets\ の中にサンプル画像群がたくさん入ってるので、それらを使って動作確認ができる。

実行するには、main_test_swinir.py を利用する。

試してみたところ、AMD Ryzen 5 5600X + NVIDIA GeForce GTX 1060 6GB の環境で、1枚につき2分以上かけて処理された。また、サンプル画像フォルダ内には複数の画像が入っているので、全部処理するのに数十分かかった。

main_test_swinir.py --help でヘルプ表示。
> python main_test_swinir.py --help
usage: main_test_swinir.py [-h] [--task TASK] [--scale SCALE] [--noise NOISE] [--jpeg JPEG]
                           [--training_patch_size TRAINING_PATCH_SIZE] [--large_model]
                           [--model_path MODEL_PATH] [--folder_lq FOLDER_LQ]
                           [--folder_gt FOLDER_GT] [--tile TILE] [--tile_overlap TILE_OVERLAP]

optional arguments:
  -h, --help            show this help message and exit
  --task TASK           classical_sr, lightweight_sr, real_sr, gray_dn, color_dn, jpeg_car, color_jpeg_car
  --scale SCALE         scale factor: 1, 2, 3, 4, 8
  --noise NOISE         noise level: 15, 25, 50
  --jpeg JPEG           scale factor: 10, 20, 30, 40
  --training_patch_size TRAINING_PATCH_SIZE    patch size used in training SwinIR.
                                               Just used to differentiate two different settings in Table 2 of the paper.
                                               Images are NOT tested patch by patch.
  --large_model         use large model, only provided for real image sr
  --model_path MODEL_PATH
  --folder_lq FOLDER_LQ input low-quality test image folder
  --folder_gt FOLDER_GT input ground-truth test image folder
  --tile TILE           Tile size, None for no tile during testing (testing as a whole)
  --tile_overlap TILE_OVERLAP     Overlapping of different tiles

--folder_lq と --folder_gt の違いが判らない…。lq = low-quality (低画質) はともかく、gt = ground-truth ってどういう意味…?

_Ground truth (グランドトゥルース) - MATLAB & Simulink
Ground truth とは、AI モデルの出力の学習やテストに使用される実際のデータを表す用語です。 自動運転や音声認識など、多くの AI アプリケーションで Ground truth データが必要となります。

うむ。分からん。なんでもかんでも低画質扱いにしておけばいいのかなと思ったけれどそうでもないようで。--folder_lq ではエラーが出るけど、--folder_gt ならエラーが出ずに処理できた場合もあった。


とりあえず、以下のように使うらしい。
# 拡大処理
python main_test_swinir.py --task real_sr --scale 4 --large_model --model_path 学習モデルデータ(.pth)のパス --folder_lq 入力画像フォルダ

# ノイズ除去(カラー画像)
python main_test_swinir.py --task color_dn --noise 50 --model_path 学習モデルデータ(.pth)のパス --folder_gt 入力画像フォルダ

# Jpegノイズ除去(カラー画像)
python main_test_swinir.py --task color_jpeg_car --jpeg 40 --model_path 学習モデルデータ(.pth)のパス --folder_gt 入力画像フォルダ
  • --task タスク種類 : classical_sr, lightweight_sr, real_sr, gray_dn, color_dn, jpeg_car, color_jpeg_car が指定できる。real_sr が拡大処理。color_dn がカラーノイズ除去。color_jpeg_car がJpegカラーノイズ除去。
  • --scale 拡大率 : 1, 2, 3, 4, 8倍が指定できる。
  • --large_model : 拡大処理の時のみ使用。大型モデルを使うことを伝えてる。
  • --noise NOISE : ノイズ除去レベル。15, 25, 50 のどれかを指定。
  • --jpeg JPEG : Jpegノイズ除去レベル。10, 20, 30, 40 のどれかを指定。
  • --model_path MODEL_PATH : 学習モデルデータのパスを指定。処理内容によって、利用する学習モデルデータは違ってくる。
  • --folder_lq FOLDER_LQ : 入力画像フォルダを指定。低画質画像用。
  • --folder_gt FOLDER_GT : 入力画像フォルダを指定。


_公式のREADME.md にも記述があるけど使用例を列挙しておく。再度書いておくけど、1行分を実行する度に数十分待たされるので注意。
@rem
@rem 拡大処理
@rem
python main_test_swinir.py --task real_sr --scale 4 --large_model --model_path model_zoo/swinir/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth --folder_lq testsets/RealSRSet+5images
python main_test_swinir.py --task real_sr --scale 4 --large_model --model_path model_zoo/swinir/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_PSNR.pth --folder_lq testsets/RealSRSet+5images
@rem
@rem ノイズ除去
@rem
python main_test_swinir.py --task color_dn --noise 15 --model_path model_zoo/swinir/005_colorDN_DFWB_s128w8_SwinIR-M_noise15.pth --folder_gt testsets/McMaster
python main_test_swinir.py --task color_dn --noise 25 --model_path model_zoo/swinir/005_colorDN_DFWB_s128w8_SwinIR-M_noise25.pth --folder_gt testsets/McMaster
python main_test_swinir.py --task color_dn --noise 50 --model_path model_zoo/swinir/005_colorDN_DFWB_s128w8_SwinIR-M_noise50.pth --folder_gt testsets/McMaster
@rem
@rem Jpegノイズ軽減、grayscale
@rem
python main_test_swinir.py --task jpeg_car --jpeg 10 --model_path model_zoo/swinir/006_CAR_DFWB_s126w7_SwinIR-M_jpeg10.pth --folder_gt testsets/classic5
python main_test_swinir.py --task jpeg_car --jpeg 20 --model_path model_zoo/swinir/006_CAR_DFWB_s126w7_SwinIR-M_jpeg20.pth --folder_gt testsets/classic5
python main_test_swinir.py --task jpeg_car --jpeg 30 --model_path model_zoo/swinir/006_CAR_DFWB_s126w7_SwinIR-M_jpeg30.pth --folder_gt testsets/classic5
python main_test_swinir.py --task jpeg_car --jpeg 40 --model_path model_zoo/swinir/006_CAR_DFWB_s126w7_SwinIR-M_jpeg40.pth --folder_gt testsets/classic5
@rem
@rem Jpegノイズ軽減、color
@rem

python main_test_swinir.py --task color_jpeg_car --jpeg 10 --model_path model_zoo/swinir/006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg10.pth --folder_gt testsets/LIVE1
python main_test_swinir.py --task color_jpeg_car --jpeg 20 --model_path model_zoo/swinir/006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg20.pth --folder_gt testsets/LIVE1
python main_test_swinir.py --task color_jpeg_car --jpeg 30 --model_path model_zoo/swinir/006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg30.pth --folder_gt testsets/LIVE1
python main_test_swinir.py --task color_jpeg_car --jpeg 40 --model_path model_zoo/swinir/006_colorCAR_DFWB_s126w7_SwinIR-M_jpeg40.pth --folder_gt testsets/LIVE1

ちなみに、一番最後、Jpegノイズ軽減カラー版だけ、テスト用画像、testsets/LIVE1/ というフォルダが無かった。

一応、拡大、ノイズ除去、Jpegノイズ削減については動作することを確認できた。

参考ページ :


2022/06/13(月) [n年前の日記]

#1 [cg_tools] スプライトシートからアニメGIFを作りたい

スプライトシートからアニメGIFを作りたい。環境は Windows10 x64 21H2。

スプライトシートというのは、以下のようにアニメパターンがタイル状に並んでる画像のこと。

spritesheet_22_5deg.png


今までは、ドットエディタ EDGE2 でスプライトシート画像を読み込んでアニメGIFを作ってたけど、この作業がちょっと面倒臭くて。
  1. キャプチャフレーム機能を使って、手作業で各フレームの位置を指定。
  2. アニメーションプレイヤウインドウで、アニメの様子を確認しつつ、キャプチャフレームウインドウ上でディレイ値を調整。
  3. キャプチャフレームウインドウの、ファイル → エクスポート → アニメーションGIF形式、を選んで書き出す。

できればスプライトシートから一発でアニメGIFにしたい。何かいい手はないものか。

ググってたら、ImageMagick を使ってスプライトシートからアニメGIFにする方法が紹介されてた。

_imagemagick - Convert sprite sheet to gif animation - Stack Overflow

例えば、128x128ドット単位で自動で切り出してアニメGIFにするなら、以下のような感じで指定すればいいらしい。

magick spritesheet.png -crop 128x128 +adjoin +repage -adjoin -loop 0 -delay 20 output.gif

試しに、Windows10 x64 21H2 + ImageMagick 7.1.0-5 Q16 x64 で作業してみた。たしかにこれでアニメGIFが出力された。

output_old.gif


ただ、一応出力できたけど、これは問題がある。このアニメGIFをIrfanViewで表示すると再生速度がめちゃくちゃ速い。また、Firefox や XnView で表示するとゆっくり動いてるけど、それでも再生速度がおかしい。「-delay 20」を指定してるから 20/100秒 のディレイ(wait値)を指定してるはずなのだけど…。それと、背景が残ってしまっている。

出力されたGIFをGIMPで読み込んでみたら、全フレームのディレイ値が 0ms になっていた。また、GIF/MNG-LCアニメ作成ソフト Giam 2.09 で読み込んでみても、やはりディレイ値が 0ms になってた。

_Giam ダウンロードのページ
_Giam - k本的に無料ソフト・フリーソフト

どうやら、ImageMagick の「-delay」指定は正常に働いてない気がする。

それでも、Firefox や XnView でそれっぽい再生速度になっているのは…。おそらくだけど、妙なディレイ値が指定されているアニメGIFについては、デフォルトのディレイ値(10/100秒)で表示してしまう仕様なのではなかろうか。そしておそらく、IrfanView は指定されたディレイ値(0ms)をそのまま使って表示する仕様だから、めちゃくちゃ速い再生速度になるのではないかと。

ImageMagick のバージョンが古くてバグがあるのだろうかと、ImageMagick-7.1.0-37-Q16-HDRI-x64-static.exe を使って、7.1.0-5 から 7.1.0-37 にアップデートしてみたけれど、結果は変わらなかった。

指定の順番がマズかった。 :

色々試していたところ、以下の指定ならディレイ値が反映してくれるようだと分かった。

magick -delay 20 -dispose Background spritesheet.png -crop 128x128 +adjoin +repage -adjoin -loop 0 output.gif
  • -delay N : ディレイ値を指定。単位は 1/100秒。
  • -dispose (None|Previous|Background) : 背景の消去方法を指定。Background は、フレームを背景色でクリアする。
  • -crop NxM : 1フレーム分を切り出すサイズ。N x M のサイズで切り出していく。
  • +adjoin +repage -adjoin : 不明。とりあえずこの指定をすると、複数のフレームを持っている画像が出力できるらしい。
  • -loop 0 : ループアニメを指定。

要するに、一番最初に「-delay 20」を書いてから、その次に背景の消去方法、「-dispose Background」を記述すれば、期待通りのディレイ値と背景消去方法で生成できる模様。

そんなわけで、以下の画像が得られた。

output.gif


以下のページで使用事例が色々解説されてる。こういったドキュメントをちゃんと読み込めば、もっと色々な変換作業ができるのだろうな…。

_Animation Basics -- ImageMagick Examples

#2 [cg_tools] APNGとWebPの作成を試した

アニメGIFを作る作業が面倒臭くなってきた。そもそも2022年にもなって256色しか使えないとかおかしいだろ。みたいな。

そこでふと、そういえば APNG という画像フォーマットがあったなと思い出した。フルカラーでアニメーション画像を作れるフォーマットだったはず。一時期オワコン扱いされてた記憶があるけど、今時はどういう扱いになってるんだろう。

APNGを試した。 :

APNGについて、今時のブラウザの対応状況はどうなっているのだろう。

_Animated Portable Network Graphics - Wikipedia
_APNG - Wikipedia
_Comparison of web browsers - Wikipedia

昔は対応ブラウザが少なかった、というか Firefox しか対応してなかった気がするのだけど、今現在は Google Chrome も対応してくれたらしい。Google Chrome が対応しているということは、Microsoft Edge も、Opera も、Vivaldi も対応してるはず。つまりメジャーなブラウザなら、そのほとんどが APNG に対応済みと捉えてしまっていいのかもしれない。

試しに作ってみた。APNG Assembler で作れるらしいので、APNG Assembler 2.91 GUI版をDLして作業。32bit版と64bit版、GUI版とCUI版があるらしい。

_APNG Assembler download | SourceForge.net
_APNG Assembler
_APNG AssemblerでアニメーションするPNG(APNG)を書き出す - Qiita

作成した APNG を Firefox 101.0.1 x64 にドラッグアンドドロップしたら、たしかにアニメが表示された。これでいいんじゃないかな…。

ここに載せてみたらどうなるだろう。さて、動いているように見えるだろうか…?

spritesheet_22_5deg_apng.png
_spritesheet_22_5deg_apng.png


Webサーバ側の設定は必要なのだろうか。どうなんだろう。png 扱いのはずだから、特に設定は要らないのかな。

WebPを試した。 :

GIMP で APNG を作れないかとググっていたら、「GIMP 2.10 は アニメーションWebPに標準対応してるからそっちを使ったほうがいい」という話を見かけた。

_APNG (animated PNG) plug-in for Gimp 2.10 Windows64x - GIMP Chat

WebP って何だっけ。

_アニメーション画像の歴史 APNG-WebP戦争 | Otogeworks

上記のページで、APNG と WebP に関しての経緯がまとまっていて大変勉強になった。WebPは、アニメーションも、ロスレス画質(画質劣化が一切無い)も、不可逆圧縮(Jpegのようなもの)も、何から何までサポートしたゴイスな画像フォーマット、と思っておけばいいのだろうか。

今時のメジャーなブラウザなら、APNG、WebP、どちらも対応しているらしい。ますますもってアニメGIFを使う理由が無くなってきた。

GIMPを使って作成できるか試してみた。GIMP 2.10.30 Portable x64 samj版を使用。
  1. 1レイヤーを1フレーム扱いにして読み込む。アニメGIFを作る際の手順そのままで良い。
  2. エクスポート時に、出力ファイル名の拡張子を「.webp」にする。
  3. 保存時のダイアログに「Lossless」や「As Animation」という設定項目があるのでチェックを入れて保存。
これで、たしかにアニメーションするWebPが生成できた。

gimp_webp_ss01.png

spritesheet_22_5deg_gimp210.webp
_spritesheet_22_5deg_gimp210.webp


画質設定でロスレス指定もできるようだし、これでもいいんじゃないかな…。

ちなみに、Webサーバ IIS上でWebPを利用するには、「MIMEの種類」に対して設定が必要だった。追加を選んで、「.webp」に「image/webp」を指定しないといけない。

Webサーバ Apache2上でWebPを利用する場合は、「AddType image/webp webp」を .htaccess あたりに追加しておけばいいのかもしれない。たぶん。

GIMPでAPNGを保存。 :

前述のフォーラムで紹介されているプラグインを使って、GIMP 2.10 64bit版で APNG の保存ができるか試してみた。

環境は、Windows10 x64 21H2 + GIMP 2.10.30 Portable 64bit samj版。Portable版なので、一般的なGIMPとはフォルダ構成が違ってるかもしれない。

_APNG (animated PNG) plug-in for Gimp 2.10 Windows64x - GIMP Chat

  1. apng-Gimp-2.10-64bit.zip をDLして解凍。
  2. libpng15-15.dll を、GIMPインストールフォルダ\bin\ にコピー。libpng16-16.dll というファイルが既に入ってるのだけど、いいのだろうか…?
  3. file-apng.exe を、ユーザフォルダ\.gimp\plug-ins\ 等の場所にコピー。
  4. plug-in-file-apng.ui を、GIMPインストールフォルダ\share\gimp\2.0\ui\ にコピー。
  5. GIMPを起動。

アニメGIFを作る時と同様に、1レイヤーを1フレーム扱いにして画像を作成。

これを APNG として保存する。

  1. ファイル → 名前を付けてエクスポート。
  2. 「ファイル形式の選択」をクリックして、「PNG+APNG Image」を選んで「エクスポート」。
  3. 「拡張子が一致しません。この名前で保存してもよろしいですか?」と尋ねてくるけど、気にせず「保存」。
  4. 何故かDOS窓が開きつつ、ファイル保存設定ダイアログが表示される。
  5. 「Animated PNG Options」の「As animation」にチェックを入れる。
  6. 他はPNG保存時のノリで設定して、「エクスポート」。

保存された png を Firefox 101.0.1 64bit や Google Chrome 102.0.5005.63 64bit にドラッグアンドドロップしてみたけれど、アニメ画像として再生された。

spritesheet_22_5deg_apng_from_gimp210.png
_spritesheet_22_5deg_apng_from_gimp210.png


ただ、この file-apng.exe を導入すると、GIMP の起動時に一瞬DOS窓が開いて閉じるあたりが気になる…。APNG保存時に、DOS窓が開くのも気になる…。でもまあ、動いてるからいいか…。

GIMP 2.8.22 Portableで試してみた。 :

手元の環境では GIMP 2.8.22 Portable x86 もインストールしてあるけれど、そちらにも file-apng.exe は導入済みだった。APNG で保存したい時は GIMP 2.8.22 Portable を使えば済むのかもしれない。

_APNG support for GIMP download | SourceForge.net

などと思ったりもしたのだけど、GIMP 2.8.22 Portable を起動して APNG のエクスポートを試してみたら、保存時の設定ダイアログが表示されないことに気づいた。DOS窓上に file-apng.ui 関係のエラーが大量に発生している。どうやら以前から正常動作してなかったらしい。

エラーメッセージを眺めたら、「GIMP 2.8.22 Portableインストールフォルダ\App\gimp\lib\gimp\2.0\plug-ins\ 以下に file-apng.ui が無いぞ」と言ってるように見えた。もしかすると .ui ファイルを読み込んでくる場所については決め打ちで作ってあるのかもしれない。試しにその場所に file-apng.ui を置いてみたらエラーが出ない状態になって、APNGでのエクスポートができるようになった。

ちなみに、file-apng.exe は、ユーザフォルダ/.gimp-2.8/plug-ins/ に置いてあっても動いてくれた。.ui の置き場所だけは注意、ということになるのだろうなと。

余談。GIMP上でのディレイ値変更について。 :

GIMPでアニメGIF等を作る場合、レイヤー名にディレイ値(wait時間)を書いておくことで、各フレームの表示時間を個別に変更できるのだけど、以下のスクリプトを利用すれば全レイヤーに対して一括で値を変更できるので便利。

_フレーム表示時間変更

フィルタ → アニメーション → フレーム表示時間変更、で呼び出せる。

このあたり、以前もメモしてあった…。

_GIMPでGIFアニメを作成する際のwait値を変更するスクリプトその2

各スクリプトを追加すると、フィルター → アニメーション以下のメニューに追加される。
  • フレーム表示時間変更
  • Rename Layers...
  • Set frames delay...
  • Change frame delays...
最初の2つは、Combine、Replace の指定も選べる。後の2つはディレイ値のみを追加する。最初の2つのうちのどちらかをインストールしておけば済みそうな気がする。

ImageMagickでAPNGを出力。 :

ImageMagick でも APNGを出力できないものかと調べてみた。環境は、Windows10 x64 21H2 + ImageMagick 7.1.0-37 Q16-HDRI x64。static版。

スプライトシート画像からアニメGIFを生成する指定に対して、アニメGIFではなくAPNGで保存するように変更すればOKだったりしないか。ググったところ、「apng:output.png」と書けば APNG を指定することになるらしい。

_ImageMagick - Image Formats

試してみた。どうだろう。動いてるように見えるだろうか。
magick -delay 3 -dispose Background spritesheet.png -crop 128x128 +adjoin +repage -adjoin -loop 0 apng:output.png
spritesheet_22_5deg_apng_from_im7.png
_spritesheet_22_5deg_apng_from_im7.png

ImageMagickでWebPを出力。 :

ImageMagick で アニメーションWebPを出力できるだろうか。以下のページによると、7.0.8-68 で対応、と書いてあるので、使えそうな気がする。

_ImageMagick と WebP - Qiita

試してみた。
magick -delay 7 -dispose Background spritesheet.png -crop 128x128 +adjoin +repage -adjoin -loop 0 output.webp
spritesheet_22_5deg_im7.webp
_spritesheet_22_5deg_im7.webp

これで、ImageMagick を使えばアニメーションWebPを出力することも可能、と分かった。ただ、この指定では、ロスレス画質は指定してないので、不可逆圧縮で出力されてるのではないか。

前述の解説ページに、ロスレスを指定する時は「-define webp:lossless=true」をつける、と書いてあった。これも試してみる。
magick -delay 7 -dispose Background spritesheet.png -crop 128x128 +adjoin +repage -adjoin -loop 0 -define webp:lossless=true output_lossless.webp
spritesheet_22_5deg_im7_lossless.webp
_spritesheet_22_5deg_im7_lossless.webp

ファイルサイズが、10.9 KByte から 61,9 KByte に増えたので、おそらくロスレス画質になっているのではないかな…。たぶん。

でも、見た感じ、違いは全然分かりませんな…。

GIMP 2.10.30 で両方開いて、拡大表示をして確認してみたけれど、たしかに不可逆圧縮とロスレスの違いはあった。でも、等倍表示では分からない程度の微妙な差だなと…。

2021/06/13() [n年前の日記]

#1 [anime] 「ザブングルグラフィティ」を視聴

BS12で「ザブングルグラフィティ」が放送されてたので視聴。1年間放送してたTVアニメ「戦闘メカザブングル」を数十分に無理矢理まとめた映画というか。当時劇場で見た記憶はあるのだけど、内容は完全に忘れている状態。

雨が激しくて信号がドロップしまくり。BS放送はこういうデメリットがあるのがツライ。でもまあ、一応、ある程度は見れたから、まだマシなほうか…。酷い時は十数分ほど映像も音声も届かなかったりするし。

最初のあたり、怪我をしてる主人公の腕を軽く蹴ったらロケットのように飛び上がって、その後ヒロインがリアルな動きで近づくあたりに感心した。ギャグの動きとリアルな動きが同居してしまう不思議な映像。これがアニメ映像の面白さだなと…。

「これが動撮だ!」のシーンは、考えてみたら新規に作ったのだろうか…。わざと塗ってる途中のセルを用意したりするわけだから、凝ってる気がする…。今作ったら、「これが動撮だ!」「そしてコレがコンテ撮!」「更にコレが」みたいなシーンになるのだろうか。なんだかちょっとポプテピピックを思い出したりもして。

ヒロインが洗脳されて云々は、エルガイムやら、Zガンダムの強化人間に繋がっていく、という話をネットで見かけてなるほどと。富野アニメにおいて、ザブングルのソレは、バージョン1.0…?

ナウシカ原作版との類似点を指摘してる人も見かけて、そういえばそうだなと。ナウシカ原作版は凄いんだよと言われるけれど、ザブングルも設定に関しては同じくらい凄いのだよな…。もっとも、ノリが全然違うから、あちらほど真面目に評価されてないけれど。

良くも悪くも色々と雑なまとめ方をしている映画だったけど、当時のアニメが持っていた、よく分からないバイタリティのようなものは十分に伝わってきたような気がする。アニメって、本来はこのくらい、その場のノリで自由に作ってもいいのだろうな…。いや、今ではそんな作りは許されないのかもしれないけど。なんだか窮屈な世の中になってしまった。いや、「なってしまった」ではなく「してしまった」と言うべきだろうか。この息苦しさ・堅苦しさを望んだのは視聴者側だよな。たぶん。

#2 [nitijyou] 体調が戻らない

昨日と同様に、左耳が相変わらずおかしい。寝ても治らないのは、ちょっとマズイのでは…。

2020/06/13() [n年前の日記]

#1 [enve2d][cg_tools][anime] enveでパスアニメーションを作成する手順を動画でアップロードしてみた

アニメ制作ソフト enve 6_12_20 + Windows10 x64 1909の環境で、パスの変形アニメーションを作成する様子を動画キャプチャして YouTube にアップロードしてみたり。10分 + 7分の動画だけど、眺めればどんな感じで作業できるのかが分かるのではないかな…と。







以下について、手順を紹介している。

結果的に、こんな感じのアニメが作れる。




enve は、御覧の通り、ベクターデータで形状を描いても、ストローク(線部分)をビットマップブラシで描くことができるので、そのあたりを上手に使いこなせたら、そこそこアナログ感があるアニメも作れるのではないかなあ、と。

#2 [moho] Moho Pro 13を購入した

ソースネクストが、アニメ制作ソフト Moho Pro 13 の取り扱いを始めたようで、今なら税抜き5,980円で購入できる模様。

自分は以前、ソースネクストから Moho Pro 12 を購入していたので、「今なら税抜き4,480円で買えるよ」「6/15までの期間限定だよ」てなメールが届いて。せっかくだからと購入してみたり。

購入後にググっていて知ったけど、何故か1,980円で買える販売ページも存在しているらしい…。どういうことなの…。ソレって何か条件でもあるの…。もし、その値段で買えるなら…失敗した…。でもまあ、本家の公式サイトで買うと 43,000円ぐらいするので、ソレと比べたらコレでもまだ全然お得に買えたほうではあるよな、などと自分を慰めてみたり…。

とりあえず、Windows10 x64 1909上にインストールしてみたけれど、フツーに起動して動いてくれた。

Moho 13 の新機能としては、ビットマップ描画関係が強化された点と、3Dモデルデータの扱いが強化されたあたりが大きな変更点かなと…。Moho 13 は、色んなビットマップ描画用のブラシが追加されたようで、一々外部のビットマップ編集ツールに戻らなくても、Moho上だけでビットマップデータにガリガリと描けるようになった模様。

さておき、すっかり操作方法を忘れてる…。こんなに使いづらいUIだったっけか…。

#3 [windows] マウスやキーボードの操作を表示するツールが欲しい

自分は普段、アプリを操作する様子を動画キャプチャする際に、AutoHotKey を利用して作った tynyosdkey というツールを使って、マウスボタンの状態やキーストロークをデスクトップに表示しながらキャプチャしているのだけど。

_mieki256/tinyosdkey

今回、enve を操作する様子をキャプチャしようとしたら、何故か enve上で右クリックが機能せず。AutoHotKey との相性なのだろうか。それとも自分のスクリプトの書き方がおかしいのだろうか。

アプリ上で右クリックが使えないのは痛いので、とりあえず今回は、Orakuin というツールを使わせてもらって、マウスとキーボードの操作状態を表示しながらキャプチャしてみたり。ありがたや。

_ORAKUIN キー入力・マウス操作視覚化(可視化)ツール

ただ、このツール、時々日本語文字列がデスクトップに表示されるあたりが…。

英語圏の人達が、チュートリアル動画内の日本語文字列を見ても、なんて書いてあるか分からないから困るよなと。自分達日本人も、チュートリアル動画内にロシア語やフランス語がポンと出てきたらちょっと困るわけで。できれば、簡単な英単語のみを表示する設定が欲しいかもしれないなと…。「押し下げ中」は「Press」にするとか、そういう感じで。

てなわけで、その手のツールが他にないかググってみたものの、これがなかなか見つからず。キーストローク表示はバッチリだけど、マウスボタンの状態表示がないとか、マウスの左右ボタンは表示されるけど中ボタンが表示されないとか、Shift + マウス左ボタン押し等が分かりづらいとか、微妙にあともうちょっと、てな感じのツールばかりで…。

そもそも、こういったツールは、それほど種類が無いようで。マウスやキーボードの操作を横取りしつつ表示するから実装が難しい面があるのだろうなと。

試用してみたツールをメモ。 :

一応、試用してみたツールをメモ。

_ORAKUIN キー入力・マウス操作視覚化(可視化)ツール
_KeyPose - AxDSan/KeyPose: An Alternative to 'Mousepose' for Windows,
_kbv 4.1.2.0
_QiPress Lite 1.073
_ShowOff
_KeyCastOW
_NohBoard-ReWrite 1.3.0
_Carnac 2.3.3

メモしていて気づいたけど、最後の Carnac は、fork された v3.1-beta版があったのだな…。

_Releases - bfritscher/carnac

Carnac 2.3.3 はキーストロークしか表示できないように見えたけど、v3.1-beta版はマウスボタンの押し下げ状態も表示してくれる模様。マウスボタンを押した際、マウスカーソル位置に円を表示してくれるあたりもイイ感じかもしれない。

2019/06/13(木) [n年前の日記]

#1 [pc] CanDoで魚眼レンズを購入

犬の散歩のついでに、100円ショップのCanDoに寄ったところ、スマートフォン用の魚眼レンズがあったので購入。

帰宅後、Raspberry Pi3 + Camera module につけてみたけど…。撮影画像は、ダイソーで購入した魚眼レンズよりもボケボケになってしまった。カメラとの隙間は、ダイソーのソレより無いように見えるのだけどな…。

レンズ部分を回すとクリップ部分から外せることに気づいたので、レンズだけ外して、手で持って、Camera module の前で位置を色々確認してみたけれど、どんな配置にしても画像はボケボケで。

少なくとも、自分の手元の Camera module + 自作ケース(ホルダー?)には、Seria で購入した魚眼レンズ or スーパーワイドレンズが、まだ合っているようだなと。

COB型LEDキーホルダーライトも購入。 :

CanDo で、COB型LEDキーホルダーライトなるものも購入。CR2032 x 2個を使う。ボタンを押すたびに、強、弱、点滅に点灯モードを切り替えられるらしい。株式会社クリエーションの商品。

使ってみたけど…。COB型とやらのおかげか、面で光るので、広範囲を照らせるようではあるなと。ただ、光量はそれほど無いような…。以前ダイソーで購入した、5LEDライト、LR44 x 4個で光るソレと比べると、半分ぐらいの明るさのように思えた。まあ、その代わりに広範囲を照らす感じではあるけれど。

サイズもちょっと大きくて、例えば胸ポケットに入れると結構邪魔になりそう。

#2 [nitijyou] 歯医者に行ってきた

電動自転車でS歯科まで。16:15-16:22まで治療。

金属の棒っぽいもので歯をカンカンと叩いて痛みがあるか質問されたが、叩かれた瞬間「あわっ」的な痛みが。中の薬を交換してまだ様子見をすることに。

2018/06/13(水) [n年前の日記]

#1 [zatta] NHK BS1スペシャル「原発事故7年目 甲状腺検査はいま」を視聴

録画したままだった、件の番組をようやく視聴。内容は…以下のページ群を見てもらえば分かりそう。2017/11/26に放送された番組、だったらしい。

_NHKドキュメンタリー - BS1スペシャル「原発事故7年目 甲状腺検査はいま」
_BS1は福島の甲状腺検査をどう報じたか 〜前編〜 - 杜の里から
_BS1は福島の甲状腺検査をどう報じたか 〜BSニュース〜 - 杜の里から
_BS1は福島の甲状腺検査をどう報じたか 〜後編〜(その1) - 杜の里から
_BS1は福島の甲状腺検査をどう報じたか 〜後編〜(その2) - 杜の里から
_BS1は福島の甲状腺検査をどう報じたか 〜感想〜 - 杜の里から
_月の光で澄み渡る 「原発事故7年目 甲状腺検査はいま」

甲状腺検査の縮小は、てっきり隠蔽云々じゃねえのかと邪推してたけど、番組の内容を見る限りそういう話ではなさそう、ということは分かった。いや、まんまとこっちが騙されている可能性もあるけれど。

韓国で行われた甲状腺検査の結果では死亡数が変わらなかったから検査の意味は無い、という話がなんだか気になった。たぶんソレ、大人に対しての検査じゃないのかと…違うのかな…。大人の場合の甲状腺がんと子供の場合の甲状腺がんは進行速度が違うことが分かりつつあるのだから、大人のデータを元にして検査を打ち切るのはよろしくないのでは…。とはいえ、生死に関わらないだろうと思える事例もあって、もしかすると不要な手術をしてる可能性がある、というのも到底無視できない話で…。

とりあえず、二巡目の検査で得られたがん細胞サンプルのDNA分析をして、チェルノブイリの事例と似ているかどうかを調べてみてほしいとは思うし。仮に検査を縮小するにしても希望者は検査を受けられるようにしておかないとあかんやろとも思うし…。原発事故の影響かどうかが分からない現時点で検査を縮小したら後世で検証したくてもデータが無いという話になるからそれもマズイだろうし、かといって実はしなくてもいい手術をしてたらそれもよくないし…。かといって放置してたらがんが進行しちゃう事例もあるだろうし。コレ、どうしたらええんや。難しい問題だろうけど、グズグズしても居られない。

手術したほうがいいのか、しなくてもいいのか、そこからして分からないというのがアレなんだろうな…。科学・医学の進歩はまだまだ全然足りてないということなんだろう…。

何にせよ、番組の最後でも言ってたけど、原発が無ければ、あるいは事故が無ければ、こんな面倒なことにならなかったのは間違いないわけで。

2017/06/13(火) [n年前の日記]

#1 [moho] Mohoのイメージワーピングをテスト

Moho Pro 12 のイメージワーピングの使い方を試したり。チュートリアルpdfの、4.2 のあたり。ボーンでイメージワーピングを制御する事例として説明されている、のかな。

Moho上で、ボーンを使って画像を動かす際は、えてしてこのイメージワーピングとやらをデフォルトで使ってるような気がしないでもないけど…。

画像の読み込み。 :

ファイル → 新規、でファイルを新規作成してから、別途作成したpsdファイルをインポートする。ファイル → インポート → 画像。レイヤーウインドウにpsdファイルが読み込まれた。

実験に使った画像は以下。

_banzai.zip (4.3MB、banzai.psdをzip圧縮)

ちょっとコレ、ファイルサイズが無駄に大き過ぎるな…。もっと小さい画像を作ればよかった…。

さておき。レイヤーの並びを変更したり、「レイヤーを変形」ツールを使って位置や大きさを調整して、以下のような配置にした。
imagewarping_ss_01.png

ちなみに、レイヤーウインドウやスタイルウインドウは、Mohoの全体ウインドウから切り離して表示できる。ウインドウ → ドッキング → 切り離したい○○を選択すればいい。
imagewarping_ss_02.png

元に戻す時は、同じく、ウインドウ → ドッキング → 元に戻したい○○を選択。

ボーンを用意する。 :

ワーピング用のボーンを作成する。レイヤーウインドウで、ボーンレイヤーを新規作成。
imagewarping_ss_03.png

ボーンを入れていく。足のあたりと手のあたりを固定したいので、“親を持たないボーン”を、上と下に、横向きでそれぞれ作成。ちなみに、何のボーンも選択されていない状態でボーンを作れば、“親を持たないボーン”になる。
imagewarping_ss_04.png

くねくねさせるためのボーンを入れていく。下の土台(?)ボーンを選択状態にしてから、足元 → 頭へと、3つのボーンを作成していった。
imagewarping_ss_05.png

画像レイヤーとボーンを関連付ける。 :

レイヤーウインドウで、画像レイヤーを、ボーンレイヤーにドラッグしてやる。ボーンレイヤーに画像レイヤーが登録される。
imagewarping_ss_06.png

画像レイヤーに対して、イメージワーピングを使えるように設定。画像レイヤーをダブルクリックしてレイヤー設定を表示して、イメージタブ → ボーンを使用してワープ、にチェックを入れる。…おそらくデフォルトでチェックが入ってるとは思うけど、念のため。
imagewarping_ss_07.png

土台ボーンの角度を固定する。 :

土台ボーンは動かしたくないので、角度を固定してやる。ボーンレイヤーを選択。
imagewarping_ss_08.png

「ボーンを選択」ツールにして、足元の土台ボーンを選択。「ボーンの抑制」を開いて(クリックして)、個別の角度にチェックを入れる。これで、このボーンは、角度が変化しない状態になった。
imagewarping_ss_10.png

同じように、上のボーンも設定してやる。
imagewarping_ss_11.png

動きをつける。 :

「ボーンを操作」ツールを選択。
imagewarping_ss_09.png

1フレーム目にして、真ん中3つのボーンを操作して、こんなポーズにした。
imagewarping_ss_12.png

12フレーム目にして、こんなポーズにした。
imagewarping_ss_13.png

ループアニメにしたいので、1フレーム目のキーフレームをコピーして、24フレーム目に貼り付けた。

出力結果。 :

そして、こうなりました。



頭がふにゃふにゃしてるのが気になる…。どうやって解決したらいいんだ…。頭だけ別レイヤーにして動かすべきかな…? 見る側は、えてして顔を一番注意して見るだろうし。それともボーンの入れ方を工夫すればなんとかなる…?

でもまあ、こういう感じで動かせるらしいと分かったので、これはこれで。

#2 [moho] Mohoのリップシンク関係の機能に感心

Moho Pro 12 のチュートリアルpdfを眺めてたら、リップシンク(音声と口パクを合わせること)関連機能が説明されてたので、一応試してみたりして。チュートリアルの、5.1、5.2のあたり。

基本的には、口パクの絵を何枚か用意して、音声ファイルを渡してスクリプトを実行すると、音量、もしくは別アプリで生成した音素(?)の羅列データを元に、絵を切り替えるキーフレームを打ってくれる機能のようで。

実際試すまで、「リップシンクとかどうでもいいよな」と思ってたのだけど。コマンドを選んだだけで自動でキーフレームがずらりと並んだあたりでなんだか感動。再生してみて、また感動。こんなに簡単にリップシンクできちゃうのか…。スゲエ…。なんというか、欧米の、「自動化できそうなところは自動化するのが当たり前じゃい!」的志向が見えた気がして、かなり感心してしまったり。

欧米では、こんな価格帯のアプリですら、口パクのタイミング指定を自動化できるのに…。日本のアニメは数年前まで演出さんが手作業でシートを書いてタイミングを合わせてたらしいのが、なんというか。セルとフィルムで作ってた頃の作業の流れが固定しちゃってアップデートされてないのだろうな。

でもまあ、伝え聞くところによると、欧米では音声と口パクが合ってないとものすごく違和感を覚えるという文化的な違いがあるそうで、故にリップシンクに力を入れるらしいのだけど。日本の場合はそのへんさほど気にされないから、人力でもなんとかなってしまう面もあるのだろうなと。

というかそもそも日本はアフレコが主流だったか。とは言え近年はスケジュール面がおかしくなって音声聴きながら作画してるとも聞くけど。だったら最初からプレスコのほうが…。そういや最近はプレスコの作品が増えてきてる気配があるような。どうせ作画が間に合わないならいっそプレスコに、みたいなノリなのだろうか。

話がずれた。ともあれ、Moho のリップシンク関連機能に感心しました。という話でした。

#3 [moho] Mohoで3Dっぽいカメラワークをしてみるテスト

Moho Pro 12 のチュートリアルpdfに従って、3Dっぽいカメラワークでアニメを作る手順を試したり。一応、使い方をメモ。

実験用画像として、木の画像と地面の画像を用意した。どちらも CC0 / Public Domain ってことで。

_tree4.png
_ground.png

画像を読み込む。 :

ファイル → 新規、でファイルを新規作成して、レイヤーウインドウ上でイメージレイヤーを追加。ファイル選択ダイアログが開くので、木の画像と地面の画像を読み込む。元々あったベクターレイヤーは削除。

こんな感じになった。
3dscene_ss_01.png

後から木をたくさん作りたいので、木の画像レイヤーはグループレイヤーに入れてまとめておきたい。グループレイヤーを追加する。
3dscene_ss_02.png

グループレイヤーに、木の画像レイヤーをドラッグアンドドロップ。
3dscene_ss_03.png

グループレイヤーに、木の画像レイヤーが登録された。
3dscene_ss_04.png

地面を作る。 :

地面に相当する画像レイヤーを3D的に回転させて地面を作る。

地面の画像レイヤーを選択して、「レイヤーをX/Y回転」ツールを選ぶ。件のツールを選ぶと、上のほうに、X軸回転とY軸回転の値を入力する欄が出現するので、X回転に-90(度)を指定。これで、地面相当の画像レイヤーになった。
3dscene_ss_05.png

地面の高さを少し下げて、カメラから地面として見えるようにする。「レイヤーを変形」ツールを選択。上のほうで各種入力欄が出てくるので、Y値を-0.25にする。更に、このままだと地面としては小さ過ぎるので、拡大縮小値に、X=5、Y=5、Z=5を設定して大きくしてやる。
3dscene_ss_06.png

本当に地面っぽくなったのか、目視で一応確認する。「軌道」ツールを選んでキャンバス上で左ボタンドラッグしてやると、3Dっぽい表示になって、地面っぽくなってることが確認できる。
3dscene_ss_07.png

表示を元に戻す。「表示をリセット」ボタンをクリックするか、メインメニューの、表示 → リセット、を選ぶ。これでいつもの2Dっぽい見た目に戻る。
3dscene_ss_19.png

木の見た目を調整。 :

木の画像レイヤーの見た目を調整してやる。

木の画像レイヤーを選んでから、「レイヤーを変形」ツールを選ぶ。大きさや位置等をお好みで調整。コツとしては、自分の目の高さが、キャンバスのちょうど真ん中あたりなのだと考えて…。木の幹のどのあたりが目の高さになるかを想像して、そこがキャンバスの真ん中あたりに位置するように、てなことを意識しつつ縦方向の位置を調整してやるとイイ感じになる。できれば、その際のY値を覚えておくと、後で他の木の位置を調整する際も、ちょっと楽になる時があったりするかもしれない。
3dscene_ss_08.png

木の画像レイヤーの、X値とZ値を変更して、木が立ってる位置を調整する。チュートリアルpdfでは、-3〜+3の範囲で調整するとイイ感じ、みたいなことが書いてあった。
3dscene_ss_09.png

木が必ずカメラを向くように設定。 :

木の画像レイヤーを、 _ビルボード として動くように設定してやる。

木の画像レイヤーをダブルクリックして、レイヤー設定を表示。一般タブ → フェイスカメラ → ピポットY軸、を選ぶ。これで、木の画像レイヤーが、いつでもカメラのほうを向くように設定できた。
3dscene_ss_10.png

木を増やす。 :

木の画像レイヤーを複製して増やす。

コレ、チュートリアルpdfを眺めた限りでは、一枚一枚手作業で増やすのだけど。ちょっと作業としてはアホらしいなと。スクリプト等でドバーッと増やすわけにはいかんのだろうか。

とりあえず、木の画像レイヤーを右クリックして、「レイヤーを複製」を選んで複製する。あるいは、レイヤーウインドウの上のほうに複製ボタンがあるので、ソレをクリックして複製してもいい。
3dscene_ss_11.png

複製したら、「レイヤーを変形」ツールを選んで、X値とZ値を変更して位置を変更してやる。見た目が2枚になった。
3dscene_ss_12.png

この作業を繰り返して、木の画像レイヤーを増やす。チュートリアルpdfでは計12枚にしていたので、ソレに倣ったり。
3dscene_ss_13.png

ところで、このままでは木の画像レイヤーの優先順位が、レイヤーの並びに従ってしまうため、例えば奥にあるはずの木が手前に表示されてしまったりして、見た目的に都合がよろしくない。

そこで、木が登録されてるグループレイヤーの設定を変更して、Zソートで自動的にレイヤー順が変化するように設定してやる。

グループレイヤーをダブルクリックして、レイヤー設定を表示する。「Zソート」タブ → レイヤーをZソートする、にチェックを入れる。
3dscene_ss_14.png

これで、各レイヤーの優先順位がZ値で変化するようになった。レイヤー名の並びを眺めると、自動で変化してることが分かる。
3dscene_ss_15.png

カメラを3D的に動かす。 :

カメラを3D的に動かしてアニメを作成する。

1フレーム目に変更してから、「カメラをトラック」ツールを選ぶ。キャンバスをクリックすると、キーフレームが作られる。
3dscene_ss_16.png

任意のフレームに変更して、「カメラをトラック」ツールでカメラ位置を変える。
  • 「カメラをトラック」ツールは、キャンバス上で左ボタンドラッグすることで、上下左右にカメラ位置を変更できる。
  • また、Alt + 左ボタンで上下ドラッグすると、Z方向(手前・奥)に移動することもできる。
  • あるいは、上のほうに、X,Y,Zの入力欄があるので、そこに数値を打ち込んでカメラ位置を変更しても良い。

「カメラのパン/チルト」ツールを選んで、カメラの向きを変化させる。キャンバス上でドラッグすれば向きが変わるが、Shift + ドラッグで、横方向のみ、あるいは縦方向のみに制限をつけながら向きを変えることもできる。
3dscene_ss_17.png<br>

ある程度キーフレームを指定したら、上から眺めてカメラの軌道を確認する。「軌道」ツールを選んでキャンバス上でドラッグすると、斜め上から眺めた見た目になる。その状態で、「カメラをトラック」ツールを選んで、上のほうのオプションの「パスを表示」にチェックを入れると、カメラがどのように動くのか、軌道が水色の線で表示されて確認できる。
3dscene_ss_18.png

出力結果。 :

てなわけで、こんな出力結果が得られたリ。



たしかに、3Dっぽいカメラワークが実現できた。

しかし…。こういうカメラワークの映像を作りたいなら、3DCGソフトを使ったほうが早くて確実なのではと思えてきたりもして…。

2016/06/13(月) [n年前の日記]

#1 [nitijyou] 某所にATX機を置いてきた

詳細はGRPでメモ。

Excel 2013の動作で気になる件が。 :

メールに添付された .xls を開こうとすると、Excel 2013が「メモリが不足しています」とエラーメッセージを表示する、との相談が。HDDに一旦ファイルを保存しても同じ状態に。

RAMが4GB載ってるPCなのに、おかしいな…。その程度載ってたら足りなくなることは稀だろうに。メールに添付してくるぐらいのファイルだから、ファイルサイズだってそんなに大きくないはずだし。とりあえず、調べてまた連絡する、という方向で。

2015/06/13() [n年前の日記]

#1 [prog] C#と.NETの勉強中

色々実装。

グリッドへのスナップ。 :

グリッドへのスナップは、画像を移動する際、強制的に画像の左上座標をグリッド幅で丸めてみたところそれっぽくなった。int x = (新座標 / grid_w) * grid_w、みたいな。

本当は、グリッドにある程度の距離で近づいた時だけ座標が丸まるとか、画像の右下座標も参照して丸まったほうがちゃんとした操作性になるのだろうけど…。どうせ2Dゲームのレイアウト用なのだから、左上座標でガッガッと即座に丸まったほうがいいかもしれないなと。BG使ってUI画面を作ってた頃はそういうノリだったし。

カーソルキーで1ドット単位で移動。 :

カーソルキーで1ドット単位で移動するのは、フォーム全体がキー入力を見るような設定にして実装。カーソルキーが入力された時に、画像がいくつか選択されていたら、該当画像の表示座標を変更、みたいな。

ただ、問題が。
  • 起動後に画像をドラッグアンドドロップで読ませて、その状態でカーソルキーを押す分には思った通りに動く。
  • しかし、ツールバー上でグリッド幅を ComboBox に入力してから、画像を移動するべくカーソルキーを使うと、画像が移動すると同時に、ComboBox のリスト項目までカーソルキーで上下に選ばれてしまう。
ComboBox で入力すると、フォーカスが ComboBox にあるというか、ComboBox上のテキストが全選択された状態になるので、カーソルキー押しで ComboBox も反応してしまうわけで。

これがもし、PictureBox にフォーカスを合わせることができるなら、PictureBox にフォーカスがある場合と ComboBox にフォーカスがある場合で処理を分けることができるけど。PictureBox にはフォーカスを合わせるという概念がないわけで。

また、ComboBox からフォーカスを外す方法も分からず。そもそも ComboBox からフォーカスが外れた場合、どこにフォーカスがある状態になってるのか、そこも分かってなくて。

一応、ComboBox に入力してからESCキーを押すとフォーカスが外れるようで、その状態なら画像のみ移動してくれるけど。今度は、カーソルキーを押したときに最初の一打だけは何故か反応しない状態に。上、上、上、と叩くと、最初の一打はスルーされるけど、二打目以降は反応する、みたいな。なんでや。

ググってみたけど、どうも ComboBox は扱いが難しいというか、動作がよくわからない時があるらしくて。どうすれば解決するんや…。

ズーム表示機能を実装。 :

ズーム表示は思ってたより簡単に実装できた。画像を PictureBox に描画する際、DrawImage(Image, x, y, w, h) を使うけど。w と h に画像サイズと異なる値を指定してやれば、自動で拡大縮小描画をしてくれるようで。例えば、2倍表示をするなら、x, y, w, h を2倍の値にしてやればいい。

うっかりしてたのが、マウスカーソル座標と画像表示範囲のヒットチェック。表示に使った値で判定しないといかんことを忘れていて、「アレ? 画像が選べないぞ?」と一瞬悩んだり。

Visual Studio のTODO機能。 :

コメントに、TODO と書いておくとその行だけまとめて表示できる。
// TODO ズーム機能を書かないと…
とか書いといて、Ctrl + \, T を押せば、タスク一覧という形でそれらの行がまとめて見れる、みたいな。

コメントとは別に、ユーザータスクというタブでもTODOを入力できる。

Visual Studio のブックマーク機能。 :

  • Ctrl + K, Ctrl + K で該当行にブックマークをつけられる。
  • Ctrl + K, Ctrl + N で、つけたブックマークへ順々にジャンプ。
  • ブックマークを外したいときは、ブックマークがついてる行で Ctrl + K, Ctrl + K。要するにトグルになってる。

2014/06/13(金) [n年前の日記]

#1 [pc] OpenOfficeのマクロを勉強中

OpenOffice というか LibreOffice のマクロを勉強中。ooo basic、という呼び方でいいのかな。

アルバムページ作成マクロを書きたい。 :

先日見かけたアルバム作成マクロは、画像の縦横比がおかしい状態で並べてしまうので、そこをどうにかできたらなと。しかし、マクロにパスワードがかけられているようで、内容を確認したり、修正したりはできないようで。

仕方ないので、自分で最初から書いてみようと思ったものの…。色々ハマっている状態。

入門。ハローワールド。 :

ググった感じでは、そもそもどうやってマクロを書き始めればいいのか、そこからして分からなかったのだけど。 _Macroの一歩(「Macro使い」への8分間) で Hello World の流れが解説されていて助かりました。ありがたや。
  • LibreOffice Writer を起動。
  • 文書を新規作成して、名前をつけて保存。
  • ツール → マクロ → マクロの管理 → LibreOffice Basic。
  • 左側のツリーで、現在開いてる文書を選択 → 右側の「新規作成ボタン」をクリック。任意の名前(モジュール名)を指定。
  • ooo basic IDE が開く。

リストやら入力ボックスやらを並べたUIが欲しい場合は、ダイアログを作成する。
  • ツール → マクロ → ダイアログの管理。
  • 現在開いてる文書を選択 → 「新規作成」ボタン → 任意のダイアログ名を指定。
  • ダイアログ名を選択 → 「編集」ボタンをクリック。
  • ダイアログをデザインできるウインドウが開く。

LibreOfficeの「Basic IDE オプション」が気になる。 :

LibreOffice のオプション項目を眺めていたら、「Basic IDE オプション」なる項目があったのだけど。コードの補完等、なんだか魅力的な項目が並んでいるものの、全項目がグレーアウトしていて、チェックを入れることができなくて。

コレは一体何だろう…。有効にすることが可能なのか、不可能なのか…。

もしかすると LibreOffice だからダメなのか、OpenOffice なら選べるのかと気になったので、OpenOffice もインストールして確認してみたのだけど。OpenOffice のほうは、そもそも「Basic IDE オプション」なる項目自体が存在しなかった。おそらく、LibreOffice で追加された部分、なのかな…。

ハマった点。 :

  • ダイアログ上のコンポーネントに対してアイテム追加や値を取得する処理を書く場合、Writer文書上からマクロを実行しないと正常動作しない。IDE上でF5キーを押して動作確認しようとしても、ダイアログ上のコンポーネントにアクセスできない。
  • 表内にカーソルがある状態で、oDoc.Text.insertTextContent(oViewCursor, oImage, False) 等をしても Runtime Error になる。表の外で行うと動作する・挿入できるのだけど…。

表内で挿入ができない件は、 _[Solved] Writer macro to insert an image into a table cell (View topic) - Apache OpenOffice Community Forum に説明があった。

以下はエラーが出る。
oCursor = oTable.getCellByPosition(0,0).createTextCursor()
oDoc.getText.insertTextContent( oCursor, oImage, False )

以下ならエラーが出ない。
oCell = oTable.getCellByPosition(0,0)
oCell.getText.insertTextContent( oCell, oImage, False )

この記事へのツッコミ

Re: OpenOfficeのマクロを勉強中 by 名無しさん    2014/08/05 09:42
はじめまして。
Option→詳細→実験的(不安定)なオプションを有効にすると利用できましたよ

2013/06/13(木) [n年前の日記]

#1 [pc] FreeMindを試用

Freeplane を少し触ってみたものの、どうもIMEとの連携が上手くいってないように見えて。ノードを作成後、日本語文字列を入力しようとすると、IMEの入力ダイアログが開いてしまって直接ノード内に入力ができない。環境設定を変更することで状態が変わるという情報は見つけたものの、どうもなんだかしっくりこない。

FreeMind ならそういうことが起きないのだろうかと気になったので、試用してみようかと。FreeMind-Windows-Installer-1.0.0_RC_4-max.exe をDLしてインストール。

Freeplane に比べると、入力作業に関しては安定しているような印象。もっとも、まだ少し触ってみただけなので、そのうち評価が変わるかも。

2012/06/13(水) [n年前の日記]

#1 [android] GLSurfaceViewを勉強中

SurfaceView みたいなものかと思ったら全然違ってた。コレは厳しい…難しい…。

描画をGLスレッドなるものが担当するようで、どうしたものかと。情けない話、メイン処理と描画処理を分けて作ったことがないので、どう書いたらいいものやら。

GLスレッドの中にメイン処理を含めてしまう方法もあるらしいけど。GLスレッドは機種によってフレームレートが異なるらしく。数年前の資料では、30FPSで頭打ちになってる機種が多かったようだが、おそらく今は60FPSで決め打ち等、状況が変わってそうな気もする。何にせよ、機種によってどんな値になるか分からないから、必ず○○FPSになるはず、という作り方は出来ない。別途、メインスレッドを作って処理するか、あるいは、時間を測定して、速度等に加味して計算するか…。

フレームレートが決まってないのはツライ。自分はアニメオタクだから、フレーム単位で動きその他を調整するのが好きなわけで。それができないとなると、ツライなあ…。

#2 [cg_tools] Metasequoiaが不正終了する原因が分かった

Plugins\Station\LocalStation.dll を入れると不正終了する。readme.txt を読んだら「2.4用だよ」と書いてあった。スイマセン。無頓着に入れた自分が悪い。ゴメンナサイ。

メニューの長さが凄いことになっている。 :

それにしても、プラグインを入れていくと、メニューの長さが凄いことになる…。Custom Menu というプラグインを使わせてもらうことで、ある程度階層化できるようにはなるけれど。プラグインを追加すると、設定し直しになるし。

フォルダで階層化するなり、名前で階層化するなり、横に二列三列表示をするなり、標準機能として持つわけにはいかなかったのだろうか…。特定文字が階層の区切り文字として使える、とか…。

考えてみると、GIMPスクリプトなどは、そのあたり上手に出来ている。スクリプトの基本情報中に、メニュー階層情報も用意されているし。

Metasequoiaに限った話ではなく、Audacity でもとんでもないことになっているので、プラグインで機能追加するアプリは、そのあたりを少し考えておかないといかんのかもしれず。…でも、全然プラグインが増えなくて、実装が無駄になる事例もありそう。

公式サイトの掲示板で要望等が上がってないのかな、と思って眺めてみたら、随分昔に要望が出てたけど完全スルーだった模様。…まあ、作り手にとって、あまり楽しさを感じない実装内容のような気もするので、仕方ないのかな。

あるいは、アプリの思想として、受け入れがたい何かがあるのかもしれない。シンプルさ、軽快さが大事であって、多機能は設計思想からの逸脱、とか。そんなにプラグインが増えること自体おかしいのだ、量が膨大になる時点で何か間違えている、てな可能性も。

日常的にそのプラグインを使っているのかどうか、という問題も。使っているなら、ショートカットキーを割り振るべきで、たまに使う程度なら、メニューの中から発見するに数十秒かかっても構わないではないか、とか。

そうなると、自分達が日頃メニューというものにどんな印象を持っているかが関係してくる気も。メニューとは、開いていけばすぐに目的の機能を見つけられるもの、という思い込みがユーザの側にある故に、そこにはほとんど実害が無くても、メニューが長いことに苦痛を感じる、とかそういう話になるのだろうか。

何にせよこのあたり、何が正解なのかよく分からず。UIって難しい。

2010/06/13() [n年前の日記]

#1 [nitijyou] 昼頃に地震

結構揺れた。福島県沖が震源地。浜通りのあたりは震度5だったらしい。

#2 [comic] 「ちはやふる」9巻を読んだ

妹が以下略。

面白いなあ。

2009/06/13() [n年前の日記]

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

午後、激しい雷雨になったので、 PM03:00〜05:00の間、自宅サーバを止めてました。

2008/06/13(金) [n年前の日記]

#1 [zatta][pc] 個人レベルではソフトウェアにどのくらい金額を出せるのだろう

仮に、の話だけど。俺はシェアウェア作家になるぞーという人がどこかで出てきた場合、シェアウェアの価格設定は大体いくらぐらいならそこそこ売り物になるというか商売になり得るんだろうと疑問が。

メーカ側というか販売側の感覚としては、開発費にこのぐらいかかった→このぐらいの値段で売らないと儲けが出ない、てな考えで価格設定をしちゃう場面がほとんどなのかなと想像したりもするんだけど。供給側の都合ばかりを考えて価格設定をしていたら、需要側の感覚から著しく乖離した場合、まったく商売にならないだろうという気もするわけで。なので、このくらいの価格設定ならこのくらいの人達には買ってもらえそう、という推測が必須→そのあたりのデータが必要な場面が多かったりするのかな、と思ったり。

グラフを捏造してみた。 :

個人レベルでソフトウェアにいくらまで金を出せるかのグラフ(勝手な想像)

あくまで勝手な想像で値を打ち込んでグラフを作成。以下、勝手な想像に対する解説。

小学生〜高校生は、お小遣いをもらってる身だから、たぶんほとんどのお子さんが自身でソフトを買うなんてことはできない予感。100円ぐらいならまだガシャポンより安いから買えなくもないような気がするけれど、1,000円前後になると、もう厳しかったりはしないか。いや、もちろんこれは、お小遣いで買える範囲てのを考えた場合の話で、親に頼んで買ってもらうという選択肢まで含めると全然違う話になるんだろうけど。つーかゲームソフトをお子さんたちはどうやって買ってるのかが気になる。お年玉か、それとも親におねだりするのかしら。

大学生は、一人暮らしで仕送りをもらっていれば、その範囲内でアレコレ工夫できるだろうし、バイトをしてる人も居るだろうから、もうちょっと多くの値段でもいけるのかなと想像。でも、2,980円あたりになると結構厳しいのではないか。CDレンタルで借りてきて録音してる、という話が結構ある=ソフトに3,000円近くも払ってられない、という感覚じゃないのかと。や、もちろんこれも、そのソフトが学業に必要である、等の状況ならかなり話が違ってきそうだけど。

独身社会人は、自由にできる金額が結構違ってくるので、一番まともに売り込めそう(?)な。とはいえ、10,000円を超えると自分はかなり考えちゃうなとか、500,000円のソフトなんて自分にはまず無理だよ、といった各人の心理的境界線かありそうな気も。ただ、どうしても自分の趣味 or 仕事に必要であれば、それは仕方ないから買いますよ…てな場面もそこそこありそうな予感も。

既婚者は、おそらく、いくらぐらいの金額までなら伴侶を説得できるのか、といったあたりの境界が関わってきそうな予感。や、結婚したことないのでそのへんさっぱりわからんけど。各御家庭によってそのへんの境界は全然違うのだろうと。500円でもダメだと言われる家庭もあれば、数十万円だとしてもそれが必要ならしょうがないよと言われる家庭もあるんだろうし。

お年寄は、ソフトウェアのような形のないもんに金を払うという感覚自体がまず理解できません、てな人が結構居そうな予感があったりもするので、100円でも買わない、という人がほとんどなのかなと偏見バリバリな想像。でも、ハードウェアに金を払う感覚は判るので、そういう層を狙うためにはハードウェア+ソフトウェアという形で商品企画を考えた方がいいのかなと妄想したけどよくわからないです。

同じお年寄りでも、企業の社長さんやってました自社でソフトも販売してましたみたいなお金持ちの方は、それなりに払ってくれそうな。ただ、独身社会人と同様に、これ以上の額になるとちょっと考えちゃうな、てな境界が各人ありそうな。

ソフトの価格にマイナス値がある場面も考えてしまったり。ソフトを使うだけでお金をもらえますよ!みたいな。そんなソフトはまず存在してないだろうと思われるわけだけど。仮にそういうソフトがあったとして、大半の人は「使う使う!」と言いそうだなと。が、極一部の人が「うさんくせえ…」「何かヤバい」「裏があるなコレ」と思いそうな予感も。

以上、偏見に満ち満ちた勝手な想像でした。

商売の上手い企業は、このあたりしっかりリサーチしてる・ちゃんとした「実測」データがあるのではないかと想像したりもして。商品企画なり、販売戦略を練ったりする時に、市場に対する実測データがなかったら、ほとんど企画も通らないのではないのかと。そのソフトをどの層に売り込むか等を検討するのはもちろんのこと、その商品が市場をさらに広げる可能性が高いソフトかどうか、あるいはすでに市場・顧客数が固定してる中に売り込んでいくソフトなのか等で価格設定を考えたりもするだろうし。「たくさん儲けたいから」という気持ちだけで、自社の都合しか考えていない価格設定をしてしまうと、そもそも顧客側の払える額を大幅に超過してしまって、商品そのものがスルーされ、市場そのものが成立することなく結局撤退で赤字になりました、なんてことにもなりかねないし。

つーか、こういうデータに関して調査したところとかないのかな。大学の研究室とかで市場に対して無作為にアンケートを取ってみました、とかやってたりしないだろうか。

どうやって金を払ってもらうかも関係するよな。 :

クレジットカードでの支払いでは、クレジットカードを持ってない人には売り込めないし。BitCash等の電子マネーでは、使えるまでの手順が面倒だったらそれだけで「もういいや」という話になりそうだし。

売る側も売る側で、一枚一枚CD-Rに焼いてたんでは大変だし。CDプレスになるとお金かかるし。通販するとしたら全部郵送・宅配になるんか、そのあたりの作業は誰がやるんだ、みたいな。

その点ダウンロード販売なら、物理的なメディアを用意しなくて済む分、低コスト・低負担で商品を用意できそうな。でも、その手のサービス会社の取り分はどのくらいなのか、とか、前述の「顧客にとっての支払の面倒くささ」を考えると、難しいところも多々あったりするのだろうけど。…そのあたり、上手く回ってる前例がたくさん出てきてほしいなと期待。

ちなみに最初は折れ線グラフにしてたけど途中で間違いに気付いた。 :

折れ線グラフと言うのは、取得したデータのそれぞれが関連性を持ってる・徐々に変化していく・連続性があることが前提のデータ、に対するグラフ形式、だろうけど。

価格に対する心理的障壁ってのは、連続していないデータだよなと。ある人にとっては「10,000円なら払える。それより高かったら考え込んじゃうよ」みたいな感覚を持つのが、いわゆる「モノの値段」ってやつだろうと。価格と、心理的障壁が、アナログ的に連続して関係してるわけではない。デジタル的に、ある価格を境にして、心理的障壁がパカッと変わるデータ、なのだろうという気がしたわけで。

であるから、その手の実測データを見るときに、そこに連続性があるかのように判断したら危ないなと。100円で80%の人が買い、500円で10%の人が買うのだから、250円だったら…とか考えちゃいけない。間というものがないデータ、なのではないかしらん。>モノの値段。

#2 [windows] Excelのグラフってどうやって画像ファイルにすればいいのだろう

と首をひねってたけど、コピーしてペイントあたりに張り付ければよかったのね。

#3 [python] wxPython勉強中なのだけど色々と怪しい動作が

謎な部分がちょこちょこと。

wxPythonのwxMenuItemのlabelだかtextだかにアンダーバーが指定されてるのは何故。 :

自分が以前、XRCedでレイアウトした .xrc 中で、wxMenuItem の label(text?)にアンダーバーが指定されていて首をひねったり。

「_File」「_Open」「E_xit」てな感じに指定がされていて、つまりはショートカットキーを割り振っているみたいなんだけど。一般的にこの手のショートカットキーを割り振る時は「&File」「&Open」「E&xit」と指定するもんじゃないのかと。それがどうしてアンダーバーなのか。どうしてアンダーバーの指定で動くのか。そういう指定の仕方を自分はどこで見つけたのか。謎。

_[wxPython] - 理想のユーザ・インターフェースを求めて - wxStaticTextでの"&"の表示方法CommentsAdd Star
"&"を直接書くと化ける(Windows XPでしか試していないが、"_"が表示される)。

[wxPython] - 理想のユーザ・インターフェースを求めて より

む? これかな? 自分がアンダーバーを打ち込んだわけじゃなくて、XRCedで「&File」と打っても「_File」と表示されてしまうのだろうか。

wxGlade で作成したソレを .xrc で出力すると、「&File」と打ったはずが「_File」になる…。もしかして、以前の自分が作成したソレは、wxGlade で出力したソレなんだろうか。

wxPythonにあらかじめ入っているらしいビットマップ画像のサイズが合わない。 :

wx.ART_FILE_OPEN とか wx.ART_QUIT とか、ツールバーに使えそうなビットマップ画像がある程度事前に入っている、らしいのだけど。それらを XRCed で表示しようとすると、なんだかサイズがまちまちで。

というか、XRCed のツールバーからして、各ボタンのビットマップ画像のサイズが合ってないように見受けられる…。wxPython 2.8.7.1 のバグなんだろうか。それとも仕様通りなんだろうか。

wxFrame のサイズを指定しても反映されない。 :

XRCed 上でサイズ指定を「640,480」のようにしているのだけど。反映されない。sizerとやらでレイアウトしてると反映されない、等の制限でもあるんだろうか。

wxGlade、ヤバイ。 :

wxGladeで作成して .xrc したものを、wxGlade でインポートしようとしたらエラーを出す。なんじゃそりゃあ。自分が出力したデータファイルを自分で読めないツールって凄過ぎやしないか。

2007/06/13(水) [n年前の日記]

#1 [nitijyou] 自転車で買い物に

ケイヨーD2まで。自転車の荷台用カゴとバックミラーを購入。また、ペットボトルが入るクーラーボックスと、保冷材を購入。

本当は、外付けHDD冷却用として、998円で売り出しをしてる卓上扇風機を買いにいったのだけど。行ってみたら既に売り切れだった。1,980円や2,980円のものはあったけど、それなら他の店でも売ってそうだし…。ということで購入しなかった。

#2 [prog][pc] emacs だか Meadow だかでX68K風の行移動?セレクション移動?とやらをするにはどうしたらいいのだらう

_xyzzy用 は存在するし、eclipseでも該当機能はあったりするのだけど。emacsにはそういうのは無いのかな。検索しても見つからなくて。どういう機能かというと…アニメgifでも見てもらったほうが早いか…。
セレクション移動

xyzzy の場合、自分は S-M-up、S-M-down に割り当てていたり。eclipse (emacs風キー設定)の場合は M-up、M-down、だったような。たぶん。

「リージョンをカット(C-w)してカーソル移動して貼り付け(C-y)でいいではないか」とか言われそうだけど。違うのです。実際操作してみると判るのです。移動後の位置を常時視認しながら作業できるってのは、非常に快適というか、ストレスをまったく感じないというか。記述の完成形が常に目の前に示されることで、脳のリソースを瞬間的とはいえ無駄使いせずに済む、が故に気持ちよく作業できる、のかもしれず。たぶん。

もっともemacsは何かにつけて、「操作してる人間が記憶しておけ」的仕様で満ちているエディタだし。 :

そういう文化にどっぷりハマってる人はそのソフトでしか使えない魔法の呪文を覚えんがため脳のリソースを割くという行為に何ら問題意識を持たない=前述のような仕様・機能を評価しないかもしれず。リージョンからしてそうだしなぁ。どこを選んでるのか基本的には表示せずに「人間が覚えておけ」という。 *1 コマンド(?)もアレだな。滅多に使わない機能なんかはメニュー表示の中に入れておけばいいと思うのだけど。メニューなら、「たしかこのへんにあったような」的おぼろげな認知でも該当コマンドを選べるし。しかしemacsのソレはコマンド名を覚えておかないといけないという。 *2 なんだか、ポートピア連続殺人事件ファミコン版とか、デザニランド、アタッチ族のあたりを連想したり。…補完が便利すぎるからそれ以外のUIを検討しなかった、てのもあるのかしら。あるいは開発者が天才だから「覚えておく」ことがまったく苦痛にならないとか。

*1: 設定で、リージョン範囲を表示するようにはできるけど。
*2: もっともメニューは、階層を辿っていくという操作が冗長で。使いたいコマンドが脳に浮かんでるなら、それを直接打ち込んだほうが早い、という感覚もわかるというか。

#3 [nitijyou] hsに打診というか質問メールを送った

遅くとも5月末には70X系のサウンドデータが来る、という話だったような記憶があるのだけど…。まだ来ない…。70X系は未対応ということになったのかしら。それならそれでいいんだけど。てな感じの質問メールを送った。

ていうか。配布ページに70X系にも対応って書いてあるんだけど…。どうなっちゃってるの…。 90X系と同じ音源チップを使ってる70X系の機種なら問題なく動くだろうけど。分類用の資料を見たら1機種しか該当しないな…。505系と同じ音源チップを使ってる70X系は、たぶんPCM鳴らした瞬間に(以下自粛。 *1 *2

505、というか70X用のフォルダは削除しておくべきだったかもしれん…。後々の差し替え作業のことを考えると、最初から用意しておいたほうがいいんだけど。フォルダが存在するというそれだけで、既に対応済みと思い込まれちゃってたらマズイな…。いや、しかし、バイナリを送る際に、「70X系への対応はデータが来てから」と伝えておいたはずではあるのだけど。うーん。

データが来る来ないに関係なく対応しろと言われた場合、70X系はPCMのSEを一切鳴らさない、という手はありそうな。つーか開発中からそういう仕様を盛り込んでおくべきだったか。どうせアプリ側で機種判定はしてるんだし。SE再生のサブルーチンに入れておくだけ対応できたはず…。
*1: バグチェックしてくれてる方が、505の実機で動作チェックしたときに、そういう報告が上がってきていたような記憶もあるのだけど。いや、505シリーズは未対応の企画だからバグチェックされること自体が「???」だったんだけど。音源は505も70Xも同じなんだから、505で出た不具合は70Xでも出る可能性が高いよな…。
*2: プログラマーにはそれらしい報告が来てないってことは、つまりは誰もプレイしてないってことなのか。あるいは、ユーザが報告する窓口がそもそも用意されてないのか。それとも、今時70X系でゲームアプリを動かす人は居なくてたまたま偶然問題が出てないだけなのか。

2006/06/13(火) [n年前の日記]

#1 [iappli] シーケンス(?)を追加

サーバとのアクセス部分はどうしたらいいのかよくわからんのでまだ手をつけてないけど、シーケンス(という呼び方でいいのだろうか)の雛形だけは盛り込んでおいた。

ていうか。サーバにハイスコアを送ってランキング登録するらしいのだけど。そのサーバ側の、ランキング管理のプログラム・スクリプトは誰が書くんだろう。…まさか、自分なのか? Perl 4 以前の Perl の理解度も怪しい状態なのに、これが Java とか PHP とか Ruby とか Python で書け、なんて言われたら手も足も出ないでありますが…。

ていうかていうか。ポイントをDLしないと遊べないという仕様にするらしいのだが。偽であっても一応それらしいポイント情報を渡すサーバ側のスクリプト等を書かないと、そもそもゲーム本編の動作確認すらできない予感。…cgi云々とかそのへんも勉強しないといかんのだろうか。うーむ。

オプション・説明画面用BG処理を組み込んだらOutOfMemory が出た。 :

ゲーム中のBGバッファと、説明画面のBGバッファ、つまりは画面サイズの Image を2つ、iアプリの起動直後に createImage して、それを保持・使うのは無理ということか。それとも自分がトホホなミスをしてるだけなのか。

とりあえず。説明用画面に入るとき・出るときと、ゲーム開始時・終了時に、BG 担当 class を new して確保したり、Image を dispose() したり null を入れたりして廃棄したり、System.gc() を呼んでガベージコレクションしてよとお願いしたつもりになったり *1 して対処することに。要するに、必要になったときに確保して、要らなくなった廃棄する、てのを意識する方向で。…動いてくれた。が、すんなり動いたので気味が悪い。どこかにバグが残ってそうな予感。

確保・廃棄を繰り返すと、メモリ上が断片化(って言うのか、この場合?)して、ガベージコレクションとやらが必要になるような気もするわけで。できれば起動時に必要な分は全部確保して、その後は確保・廃棄をあまりしないようにしたかったのだけど。まあ、ゲーム本編中でガンガン確保・廃棄してるわけじゃないから、問題は起き難い、なら嬉しいのだけど。

仮の説明文書を打ち込んでたのだけど。 :

仮と思って打ち込んでると、妙なノリの文章になってしまう。島本和彦調とでもいうか…。ゲームの説明文に、「諦めたら、そこでゲームオーバーだッ!」とか「世の中ってヤツは…そこまで甘くはないッ!」とか「インド人を右に!」なんて書く必要は無いよな。真面目な人に見せたらたぶん怒られる。などと我に返ってその手のアレをカット。…危ないところだった!!

ゲームの説明文ってのは、難しいな。どういう口調、というか文体で説明すればいいのか。投げやりでもいかんだろうし。命令口調もいかんだろうし。妙に堅苦しいのもいかんだろうし。無意味にハイテンションでもいかんだろうし。

*1: 必ずしも呼んだタイミングでガベージコレクションしてくれるわけではないらしい。機種によって違うとかなんとか。

#2 [jiji] 日本橋と高速道路

TVをつけてたら、日本橋の上にある首都高を地下に移す云々のニュースが流れてた。結構なコストがかかるらしい。

個人的には、そのまま残しといていいんじゃないかとも。景観に関して美意識を持たない民族が、付け焼刃的にそこだけ直して取り繕ってみてもしょうがないやんと。むしろ、「美観より大事なもの、優先すべきものがあると私たちは考える。日本人とは絶えずそのように考える特質を持った稀有な民族である」などと胸を張って件の景観を肯定してしまってもいいのではないかとすら。日本人の思考・方向性の象徴として残しておくのもまた一興ではないのかと。…む。ひょっとすると、外人さんからどうこう言われて「それじゃ直さんと恥ずかしいなぁ」などと思ってしまったのだろうか。となると、外人さんの意見をやたら気にする・絶えず顔色を伺って右往左往するあたりもまた、日本人らしさ。という話になるのかな。や、実際言われたかどうかはしらんけど。

つーか。首都高を地下に埋めるコストで、都内に点在すると言われる開かずの踏み切りでも直したほうがいいのでは。どうせ首都高を取り外したところで周囲はビル群なんでしょ。美観云々を考えても費用対効果が弱い感も。

つーかつーか。首都機能移転話はどうなった。いっそ、首都高とやらを全部無くせるぐらいに、東京ごとどこかに移転しちゃったらどうか。もちろん今度は最初から、ちゃんとした都市計画でも立てて。どこぞの教会よろしく数世紀かけて成し遂げるくらいの意気込みで。てなバカ妄想を。…そんな話をぶち上げる政治家って居るのだろうか。

この記事へのツッコミ

首都機能移転話 by がんした    2006/06/16 02:31
3年ほど前に、事実上凍結されてます。
http://ja.wikipedia.org/wiki/%E9%A6%96%E9%83%BD%E6%A9%9F%E8%83%BD%E7%A7%BB%E8%BB%A2

ちなみに、首都機能移転先のイメージは、こんなの↓
http://www.mlit.go.jp/kokudokeikaku/iten/relocation/town/to_02_2.html
Re: 首都機能移転話 by けいと    2006/06/16 20:13
首都機能移転どころか、
今の時代、田舎者は全員東京に出て来い、っていう方だろうね。

高密度にすればするほど効率が良くなると思ってるから。
Re: 首都機能移転話 by がんした    2006/06/26 02:26
確かに高効率化するけど、ストレスも溜まるから一定レベルで落ち着く。
えーと、具体的には日本の総人口の1割りが東京都に集中してて、
世界的に見ても大都市。
http://www.metro.tokyo.jp/PROFILE/data.htm

つーかさ、日本の未来的には田舎がちょっとずつ都会に組み込まれる形でしか繁栄はないものか?
首都機能移転話は凍結 by mieki256    2006/06/29 00:42
> 3年ほど前に、事実上凍結

知らなかった。そういう状況になってたのですね。
まあ、たしかバブルの頃の計画ですしねえ…。自然な流れ、ですかな。
Re: 首都機能移転話 by けいと    2006/06/29 22:45
> 日本の未来的には田舎がちょっとずつ都会に組み込まれる形でしか繁栄はないものか?

少なくとも平均的な人間が予見できる範囲での未来はそれしか無いと思います。
戦争や天変地異などで今の文明や文化が壊滅的に破壊されるとかすれば話は別ですが…

この話は根本的には農業問題だと思います。
農業人口が多い地域=人口密度が低い地域=効率が悪い地域=経済力が無い地域
この構図が崩れない以上はダメでしょう。
しかし、全世界的に見ても「農家がリッチ」という地域は皆無です。
ピンポイント的にリッチなところはありますが、
世界的視点から見たら「点」扱いかなぁ、と。

そして、つい最近、全世界の人口のうち都市部の人口が半分を超えた
っていうニュースがあったように聞きました。
こうなると政治の世界でも都市部の意向がますます反映されるようになるでしょう。

というか、田舎は反映していないから田舎なんですけどね。
都会人が訴える自然保護活動ほどいんちき臭いものは無いわけで。
だったらお前が自然豊かな地域に住んで自然保護をしろって言いたくなります。
Re: 首都機能移転話は凍結 by けいと    2006/06/29 22:53
> 自然な流れ、ですかな。

自然と言うよりは、資本の流れ、ですかね。

これで首都圏の人口が6000万を超えたら
(日本の人口が1億2000万と仮定)
首都機能移転どころか首都圏人以外は人間扱いされなくなるね、きっと。

大昔に某お笑い芸能人が言ってたけど、
通貨を東京円と地方円でわけろ、というアイデアがあって、
それを真に受けた経済学者がまじめに計算したら
地方の経済力は東南アジア全域並だとかいってたような。

東京都だけ独立国になっても
G8に参加できる経済力があるっていうのがやっぱり桁違いなわけで。

首都圏1都3県で独立したらかなりパワーありそうです。
(千葉県が原発だらけになりそうですが)
Re: 首都機能移転話は凍結 by がんした    2006/06/30 00:58
>まあ、たしかバブルの頃の計画ですしねえ…。自然な流れ、ですかな。

遷都には金が掛かるので、バブリーな時代じゃないと、受け入れられなかった側面もありますが、
逆に、バブリーなおかげで地価高騰の煽りを受けて、都市整備に金が掛かりすぎるので、
遷都しましょう的意見も出ました。

どっちにしろ、バブル弾けて泡と消えたのだが。
都会と田舎 by がんした    2006/06/30 01:07
>この話は根本的には農業問題だと思います。

農業つーか、第一次産業全般なのだろうな。
そうなると近未来の究極の型は、第一&二次産業は、ロボットによる
無人化が進み、国民の大多数が都会に住み、サービス業等の
第三次産業に従事する事になるのだろうか。
ロボットによる無人化という一文を見て by mieki256    2006/07/07 06:40
> 近未来の究極の型は、第一&二次産業は、ロボットによる無人化が進み、
> 国民の大多数が都会に住み、サービス業等の第三次産業に従事

それって…銀河鉄道999の世界!
や。ちょっと違う気もするけど、
共通する点もちょこちょこありそうな感も。

2005/06/13(月) [n年前の日記]

#1 [nitijyou][windows] Win98+OCRでテキストデータに変換中

網点処理された印刷物だったけど、画像にフィルタをかけて弄ったらOCRの認識率が上がった。以下の手順で画像修正。
  1. 1200dpiのグレー画像でスキャン。
  2. Photoshop で「ダスト&スクラッチ」フィルタを適用。
  3. 400dpiに画像解像度を変換。<要するに縮小。
  4. コントラスト調整。
といった処理をしてから、『読んでココ』 *1 に渡したら、かなり認識率が上がった。その代わり、「。」「(」「)」「で」「が」等、今までは問題なかった文字を誤認識してしまう状態に。線が細い文字は途切れ途切れになり、濁点のある文字は濁点部分がノイズと間違われるぐらいに小さくなったせいだろうと。でもまあ、他の漢字がすんなり認識できるようになったので、これはこれで。

テキストデータに変換はできたので後は確認作業 :

音声読み上げソフトを利用して、ミスがないか確認してみないと。そのへんのソフトを調べておかないとなぁ…。

それににしてもWin98は軽いなぁ :

同じハードの上で動いてるのに、どうしてWinXPは重いのだろう。…スタイルをクラシックスタイルにすればいいのかな。でも、それだと質問されたときに答えられなくて困ってしまうか。WinXPユーザでクラシックスタイルにして使ってる人は、周囲にほとんど居ないわけだし。

*1: 『読んでココ』=OCRソフトの一つ。

#2 [pc][windows] 音声読み上げソフトをメモ

少し検索。

_朝顔日記 - 音声読み上げ関連アプリのメモ :

おお。一覧が。ありがたや。ほとんど有償ソフトなのが、ちょっと残念ではあるけれど。

_喋るコンピュータにハマる年末の俺 - ケータイWatch スタパトロニクス :

「ねこ踊り」のwavに感動してしまった。歌ってる…! 結構歌ってる!

_YAMAHA Vocaloid :

_サンプルページ も聞いてみたり。うーむ。素晴らしい。個人的には _Vocaloid Miriam の Scarborough Harmonies に驚いたり、 _2chスレの242_658 に驚いたり。

そういや昔、 _「歌うパソコン」PC-6601 とかあったっけ。スゴイ進化を遂げたなぁ。

…いかん。横道にそれてる。そっちの情報を探してるわけではないのだった。

_akJ Speechtools - 音声合成ソフト :

_CPL(Common Public License) で配布されてるソフト。インストールしてみたり。

解凍すると180MBに。ちょっとビックリ。でも、コレ一つで音声読み上げできる簡便さはグッドな気も。

起動に数十秒かかる。Javaで作成されているらしいので、仕方ないところ。

おお! 喋った! 素晴らしい。

しかし、英数字部分と日本語部分で、英語読み上げ・日本語読み上げのエンジン(?)が切り替わるようで。「4月1日」が「フォー がつ ワン にち」と読み上げられて、うーん。…1バイト文字か、2バイト文字かで、そのあたりが切り替わっているらしい。全ての文字を2バイト文字(全角文字)に変換してから渡したら、日本語読み上げエンジンのみ使ってくれる模様。が、それでも英数字と日本語の境界でウェイトが入る。でもまあこのへん、おそらくはエンジンの仕様なのだろう。たぶん。

と思ったら違った。上のほうにあるボタン(?)を押して、「日本語部分のみ再生」モードに切り替えればいいみたい。「〜部分のみ」という表記だったから、てっきり英数字部分は読み飛ばされるのかと勘違いしてしまいますた。とりあえず、IPA辞書有効なら「よん つき いち び」、IPA辞書無効で「よん がつ いち にち」と発音してくれた。

さておき。文字列として「われわれは宇宙人だ」を渡してやると、これ以上ないくらいに宇宙人として喋ってくれることに気づいた。素晴らしい。<って君は一体何を検証してるのですか?

_Microsoft Agentのダウンロードの仕方 :

_「音声合成」でWindowsに英語を“しゃべらせる”
_読み上げ機能を使用して日本語の文書を読み上げる方法 - Adobeサポートデータベース

MSのサイトで、Windows用に、音声読み上げのエンジン(?)を配布してるらしい。

む。WinXP なら、SAPI 4.0 runtime は DL・インストールしなくてもいいのかな? と思ったがあちこち検索してみると、そういうわけでもないらしい。とりあえず、TTS engine Japanese と SAPI 4.0 runtime をDL・インストール。

WinXP のコントロールパネル → 〜 → 音声認識の欄に、選べるエンジンが増えるのかと思ってたけど。特にそのへん追加された様子はなく。謎。

_EasySpeech - 簡単にテキスト読み上げ、WAVE 保存するアプリケーション :

インストールしてみた。起動したところ、日本語のTTSエンジンとして、男性・女性が選べるようになっていた。ということは、WinXP のコントロールパネル云々に出てこないだけで、エンジン自体はちゃんとインストールされていたということかな。

音質、というか発音は、結構悪い >MS の TTS。テキストを聞き取れるかどうかも結構微妙なところ。ただ、akJ Speechtools が利用してるエンジンと違って、英数字についてもそれなりに読み上げてくれたあたり、感心したり。例えば、「4月1日に3,000円で購入しました」という文章を打つと、「しがつついたち」「さんぜんえん」等を発音してくれる。これが akJ Speechtools だと、「よんがついちにち」「さん ぜろえん」になる。「さん ぜろえん」はマズイなぁ。金額が2桁、少なくなってしまう。おそらく、辞書に「しがつ」「ついたち」が登録されてないとか、数字内のカンマについて3桁区切りは無視する処理になってるとか、そんな感じなのだろうなと想像。ただ、聞き取りやすさは akJ Speechtools のほうがグッドな感じ。

何にしても自分のPCが喋るの図は面白いなぁ :

なんだかバイファムを思い出してしまったり。「HELLO, I AM VIFAM」「WELCOME HOME, VIFAM 7. I'M MOTHER ARM COMPUTER」とか。 *1 バイオリンの音色がなんとなく脳裏に。 *2

*1: どちらもOP曲に入ってた「COM」の台詞。前者がVIFAM。後者は着艦用牽引フックのコンピューター。と、LP付属の解説書には書いてある。
*2: バイオリンは、OP曲を演奏していた TAO というロックバンドのウリ、だったらしい。

#3 [anime] 富野監督作品には喋る巨大ロボットが登場していないような気がしてきたのだけど

気のせいかしら。 *1

何かポリシーでもあるのだろうか。例えば… てな感じの理由でもあるのかなと、なんとなく想像したりもして。

でも、パイロットに音声で情報を伝えるメリットってあるよなぁ :

そのとき注目してる視覚情報から目を離さずに、別の情報を同時に受け取れるメリットがありそう。そもそも現実世界でも、飛行機のパイロットなんかは、管制塔から伝えられる音声によって情報を得ているしなぁ。

と思ったけどそのへんは、もしかすると、飛行機が生まれた当時に情報伝達手段に関して技術的制約があった故に、それが主流になってしまったという事情もあったりするのかな。…もし、視覚情報も、音声情報も、どちらも伝送することが技術的に容易である異世界で、初めて飛行機がその世界に生まれてくるとしたら…。音声によるナビゲーションは、今よりも少なくなったりするのだろうか。

*1: いや。自分が見落としてる・忘れてるだけかもしれないけど。

この記事へのツッコミ

喋る巨大ロボット by がんした    2005/06/16 01:01
=主人公登場型で巨大人型ロボットで音声ナビゲーションしてくれるタイプ

だよね?だとしたら逆に「喋る巨大ロボット」の方が、オイラ、思い浮かばない。
かろうじて「SPTレイズナー」はそうだったとか、ちょっと毛色が違うけど
「宇宙の騎士テッカマン(ブレイドじゃない無印の方)」のペガスとか。

あと何があったっけ?
Re: 喋る巨大ロボット by mieki256    2005/06/16 06:50
> 音声ナビしてくれるタイプ だよね?

だす。

サンライズロボットアニメの監督さんといえば、
富野監督、高橋監督、神田監督、かなーと思うのですが、

高橋監督 : SPTレイズナー
神田監督 : バイファム、ドラグナー(<ちと記憶が怪しい)

というわけで、富野監督作品だけ思いつかないのでした。

でもまあ、基本的に「音声ナビつき巨大ロボット」って少ないですけど。
「音声ナビつき」の定義を外せば、

『勇者シリーズ(Jデッカーとかそのへん)』
『トランスフォーマーシリーズ(全ロボットが喋りまくり)』
『魔神英雄伝ワタル(龍神丸とか)』
『超力ロボ ガラット』

とかありそうなんですが。
とはいえ。「喋る巨大ロボット」が少ないことは間違いないですな…
Re: 富野監督作品には喋る巨大ロボットが登場していないような気がしてきたのだけど by 名無しさん    2005/06/19 01:28
>何かポリシーでもあるのだろうか。例えば…

これも巨大ロボでもないし音声ナビじゃないんですけど、私は当時ブレンパワ
ードで驚いた覚えがあります。他の作品では或程度やってるんですが富野作品
なのに筆談したりテレパシーみたいなので会話したり気分を解り合ったりする
描写があって新鮮でした。更にはブレンの数え方が1人、2人だったのにも驚い
た記憶が………。
Re: 富野監督作品には喋る巨大ロボットが登場していないような気がしてきたのだけど by mieki256    2005/06/19 03:00
> ブレンパワード

ブレンパワードは未見な自分なのですが、
ロボットと筆談やテレパシーを、ですか…!?
スゲエ! スゲエぜ富野アニメ!

ロボットの見せ方・扱い方・設定に関しては、
必ず何かしら革新的なことを用意する・取り込む監督さんですよねぇ…
そこにシビレルあこがれる! というか。

であれば、やっぱりポリシーがありそうですな>音声ナビつき云々。
変わった設定に対して貪欲な富野監督が手をつけないのであれば、
そこには何かあるはず…。
でもまあ、自分が見落としてるだけの可能性も高いけど(爆)

#4 [zatta] _エレベーターの裏技

素晴らしい。…自分、高校3年の時に、「エレベーターの自動制御」というテーマでレポートを書いたのだけど。 *1 当時やってた内容を思うと…やっぱりプロ(?)が作るものはとにかくスゴイもんだなと感心。素晴らしい。 _(via del.icio.us/otsune)
*1: 3年じゃなくて、2年だったかな…。実習のテーマとして存在していた記憶も。スチール製の、人間より巨大な模型を使って実習をしていたような。かなり古い模型で、どうも不調な感じの動きだったり。なもんで、それら実習のテーマとは別に、各グループの研究テーマとしてもやったはず。コンピュータ or 電子回路を繋げて動かせる、プラスチック製の小さい模型を作る予定が…。結局上手く動かなくて完成しなかった。トホホ。

#5 [web] _「良い人」なサイトを運営するためのコツ。荒れないようにするためのコツ。

・ 宗教ネタは扱わない
・ 政治ネタは扱わない
・ もったいぶったような書き方はやめる
・ 皮肉はやめる
・ 2ch語を使わない
・ ヲタい表現を使わない
・ 明朗簡潔な表現を心がける
・ 感情を表に出さない
・ 怒らない
・ 否定的なことは書かない
・ エロネタは書かない
うっ。「書かない」とされてることを全部書いてしまっている自分なわけで。「良い人」には程遠いことを再認識。(つД`)

#6 [mozilla] 数日前からMozilla Firefox が起動に失敗するのだけど

何故だろうなぁ。やったことといえば… Tab Mix Plus に入れ替えたことぐらい、だけど。

profiles を作り直してみたり。これですんなり起動してくれればいいけど。

#7 [zatta] エンジニアの反対は文系、じゃないよな…

_昨日書いた記事 を読み返して、エンジニアの反対=文系、と思い込んでる自分に気がついてしまった。それは違うよな…。エンジニアの反対は、非エンジニアでしかない。妙な思い込み、というか偏見を持ってしまっていた自分にトホホなのでした。

エンジニアの反対=非エンジニア、ってのも変だな…。エンジニアの反対って、何だろう。 *1
*1: ていうか元々件の話は、エンジニアの反対に位置する『何か』を設定して語る話でもないような。

#8 [anime] BJ、精神科の医者は魔法使いの回

精神科の医者が、いつでもどこでもどんなときでも催眠術で他者をコントロールする様子を見て笑ってしまった。そんなバカな。

と思ったんだけど、精神科医になるにあたって、もしかすると催眠術云々は必修科目だったりするのだろうか。 _「精神科 催眠術」 でググってみたら結構デフォルトみたいだし。そうか。精神科医って本当に魔法使いなのだな。 *1

さておき、ラストの台詞、「技術だけでは、人は〜」云々に感心。あれだけドタバタしながら、台詞一つで綺麗にまとめてみせるあたりが素晴らしい。
*1: つーか、ハッカーだって時々魔法使い扱いされるから、それと似たようなもんなのかもしれないな。専門の人にしてみれば、できること・できないことが、ちゃんと明確になってるのかもしれない。

2004/06/13() [n年前の日記]

#1 [windows] _ViewLines ver 1.14-β12

テキスト閲覧専用ソフト。ファイルリストビュー、フォルダリストビューが起動時から非表示設定可能になった。しかもtailのように最下行表示まで追加されてる。素晴らし過ぎます。完璧。死角がない。嬉しさのあまり涙が…。ありがたう、作者様。それにしても。何だろう、この心の中を読まれたような感じは(笑)。

#2 [java] _JAVA講座

上記のサイトを見ながら勉強中。

_アプレットプラグイン - Eclipse :

_Applet Launching Configuration
インストール。htmlは手書きしなきゃダメなのかしら。

_Plug-inで動くアプレットの作り方 :

うへ。こんなに書くのか。と思ったが、 _HtmlConverter で変換すればいいらしい。j2sdk1.4.2_xx\bin の中に入ってた。しかし、変換済みのhtmlをSleipnirで開いても変化無し。IEで開くと実行されるのだけど。うーん。

Sleipnirのサイレントモードを有効にしてたのを忘れてた。ActiveXが必要だったのだな。

SunのサンプルページにIEで飛んだら、Java Plugin のインストールを促された。SDK入ってるのに何故。よく判んないけどインストール。

iアプリとJavaAppletの両方で :

動くように書きながら勉強したいのだけど。うーん。

座標用の変数をshortで持つのは :

容量削減に有効だろうか。それとも逆だろうか。

固定小数点の使い方を :

すっかり忘れてる。あるいは、そのへん既に不要だろうか。

_Java3D 入門 :

何故か、Java 3Dもインストール。せっかくだから。しかし _こちらのサンプル を眺めたら表示がグシャグシャ。DirectX版をインストールしたからだろうか。DirectX版をアンインストールして、OpenGL版をDL・インストール。…ますます表示されなくなった。コンソールウインドウを見るとエラーが表示されてる。しかし、 _こちらのサンプル を見ると問題なく表示される。何故だろう。と思ったが後者はJava 3Dを使ってなかった。(;´Д`)

まさかG400のドライバのせいだったりしないか。ということで最新版をインストール。なんだか大変な事になってきた。

DirectX版 Java 3D を入れ直した。インストールフォルダを覗いたら、demo\java3d\index.html があった。なんだ。demoも一緒にインストールされてたのか。いくつかのdemoは _見れた ものの、どうやら _テクスチャを使ってるdemoはボロボロ らしい。

_「Q.テクスチャマッピングができません。」 :

A.Java 3D 1.3.1 betaのDirectXバージョンにはテクスチャのバグがあります。Java 3D SDK 1.3正式版をダウンロードしてください。
Windows XPではJava 3D SDK 1.3 DirectX対応正式版でテクスチャマッピングが動かないという報告があります。Java 3D SDK 1.3 OpenGL対応正式版をインストー ルしてください。
なるほど。ウチはWinXPなので、おそらくこの例に当てはまるのだろう。

ということで、OpenGL版をインストールしたところ、悪化した。今度はdemoすら動かなくなった。Javaコンソールにこんなメッセージが。
************************************************************************
*** ERROR: Canvas3D constructed with a null GraphicsConfiguration
*** This will cause a NullPointerException in a subsequent release
************************************************************************
java.lang.NullPointerException: Canvas3D: null GraphicsConfiguration
	at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1100)
	at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1065)
	at HelloUniverse.init(HelloUniverse.java:97)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
どうすりゃいいの。 Runtime || SDK、DirectX || OpenGL で、4つともDLしたあげく、この結果。トホ。

#3 [windows] _Cannon Smash

OpenGLがそもそも動作しないのではと不安になったので、このゲームをインストール。動いた。しかも滑らかに動く。ということはウチの環境でもOpenGLは動いてるということかしら。

#4 [windows] ビデオカードのドライバ

WinXPは「アプリケーションの追加と削除」からアンインストールできるのだな。Win98では手作業でアンインストールしてたわけで。ありがたい。

2003/06/13(金) [n年前の日記]

#1 [pc] 親父さんがまたファイルを消してしまった

今度はローカルのファイルが犠牲に。畑の作業日記ページの元となるファイル(ログファイル、プログラムファイル)を消してしまった。

ビルダーの各種自動処理も良し悪し :

IBMホームページビルダーは、常にローカルHDDにおけるサイト管理フォルダ内を検索して未使用ファイルをリストアップする。しかし、HTMLからリンクされていないファイルは、全て「未使用ファイル」扱いになってしまう。

で、想像だけど、おそらく親父さんは、そのリストアップされた未使用ファイル群についてさほど確認することもなく全選択・削除でバッサリ消去したのかなと。更にマズイことに、ビルダーはゴミ箱を介さずファイル削除をするらしくて、ゴミ箱を覗いてみたけど一切それらの重要ファイル群は残ってなかった。復元は不可能だ…。

IBMホームページビルダーを利用するにあたっては :

  • 編集・管理するのはHTMLファイルのみ。cgi等、プログラムの類については一切管理しない。
  • 管理するファイルの総容量はせいぜい10MByte以内であること。それ以上になると処理時間やユーザ自身による各種確認作業が現実的ではなくなる。
といった制限を守らないと事故が多発しやすい、と言えるのかもしれない。

家庭内ですらこれだけ操作ミスによるファイル消去が発生するのであれば :

企業のサーバ管理者はもっと大変だろうな。とはいえ、各人のローカルHDDのファイルについてまではフツー責任持てないよねぇ。

一般ユーザは「ファイルが消えてしまった」と口にするけれど :

ハード・ソフトに障害が発生してる場合は別として、大抵の場合は、「消えてしまった」ではなく「消してしまった」ではないのか。どうして「消えてしまった」って言うの?

#2 [pc][prog] ActivePerl+TkのDirtreeを使ってみたけど

カレントディレクトリの上の階層が見えなかったり、別ドライブ内のサブディレクトリが見えない場面がある。それに $d->chdir($dirname) のようにすると、既にあるリストの下に追加される形で、指定したディレクトリの内容が表示される。なんか変だぞコレ。自作しないとダメなのか?

Tcl/Tkの新し目の版ではtk_chooseDirectoryてのがあるらしい :

いいなぁ。

2002/06/13(木) [n年前の日記]

#1 クッキーとコラージュ

BBSのクッキー関連バグ、修正しました。
カキコ直後にカキコ前のクッキーが参照されて入力欄に反映していた罠。


中華キャノンのコラージュにハマってました。
何やってんだろ…アホやな自分…
(成果?は、スクリプト動作テストも兼ねて、BBSに貼っておきます。)

それにしても、コラージュってかなり難しいのですね。
各素材のライティング、色調、ノイズ量の違い。
デジカメ撮影時の、光量不足によるノイズ大量発生、手ブレ。
ミニチュア撮影故のピンボケ。
それらを回避、あるいは補正する為のノウハウの必要性を痛感です。
F氏はよくまあ綺麗に撮影できるもんだな…
さすが、業務に必要な素材撮影をこなしてるだけありますね…

2001/06/13(水) [n年前の日記]

#1 H-IIロケットについての補足

例の大阪の小学校の。
演技だったのか。ますます許せん。
加害者側の人権うんぬん言ってられないじゃん。
こっち側、完全にナメラレてるぞ。

にしても…
仮に死刑になっても、法務大臣は死刑執行しないんだろうな。

冷暖房の効いた施設の中で、
三食出てきて健康的な生活スケジュールを強制される、
そんな生活を、ヤツは享受できるわけか…


昨日の日記だけでは日本のロケット開発に否定的と思われそう。で、一応補足。

オイラも基本的に応援してます。
それ故の昨日の発言。

あの番組見た限り、日本のロケット技術はまだまだ未成熟。
もっと長い目で見る必要があるんじゃないかと。
今の時点で、外国勢と同等の結果をいきなり期待するのはバカげてる。
何せチャレンジが始まったばかりなんだから。
だから、爆発が当たり前、ぐらいにどっしり構えとこうよ、と。

いかにも日本人的な悲壮感を感じたんですよ、あの開発の様子。
昔のオリンピック選手みたい。国を背負うって感覚がイヤ。
もう少しなんとかならんのかな、と思って。

にしても…
番組の端々で、彼等の開発態勢に問題があるような感も。

毎回実験する度、彼等、「上手くいくはず」と思い込んで実験してないか。
「上手くいくはず」「間違いないはず」…
一度そう思い込むと、えてしてミスを見逃しやすい。
また、爆発した時のデータも、「これは本来のデータじゃない」と思うでしょう。
余所から来た人がデータ見て、原因に気付いたってのは…
それまでのメンバーに、そういう意識があったんじゃないかとも。

ネタ元失念しちゃったんですが…
アメリカのその手の開発は、人間を信用しないのが前提らしいですね。

「作業に関わる人間の能力は高くない」
「ヒューマンエラーは必ず起きる」

そこから始まってるから、
「どうやってミスを未然に防ぐか」
「どうやってミスを発見していくか」
その点に注意を払う。
最終的に、誰がやっても作業・製造できる、そんな設計やシステムが実現する。
そのことで、製品の信頼性を確かなものにする(らしい)

日本は違いますよね。
「作業員のレベルは高いはず」
「気合が入ってればミスを犯さないはず」
ってのが前提。
作業に関わる人間の、技能、精神性を過大評価する。
あの番組の、溶接工の人の話なんかいい例で。

結果、集まってきたモノに「ミスはないはず」…と思い込む。

設計は間違ってない「はず」だ。
各メーカから完璧な部品が上がってきてる「はず」だ。
溶接は匠の技で精度を維持してくれてる「はず」だ。
…部品の強度は、調べるまでもなく、充分な「はず」だ…

たとえば、溶接工の方。
100回作業して100回とも同じ溶接・研磨が出来るんでしょうか。
体調悪い、集中できない…そんな場面も必ずあるでしょう。
それを思うと、あれだけの極限性を要求されるモノを造るにあたって、
日本人の手先の器用さ・匠の技という…
まことしやかに今まで語られてきた怪しげな通説・概念に、ちと頼りすぎてないかなと。

開発者の方、「意地」がどうこう言ってましたが…
そういうことを言う前に、やることあるんじゃないかと思いました。
技術者の冷静な目でモノを見て、
人間自身が生み出す不安定要因、ミスを見逃す態勢を、
精神面での対策ではなく、合理的な対策で極力排除する、
そんな開発の流れ・システムを構築するほうが…
…精神性を語る以前に、先にやることと違うんかなぁと。

いや、むしろそれらを実現する原動力としての「意地」発言だったと思うんですが(爆)
でもなぁ…技術者に限らず、「意地」の置き所、プライドの置き所も難しいわけで…
そういうモノに頼らずなんとかなるシステムが、結果的に信頼性が増す気がするのです。

で、そういったモロモロも全部ひっくるめて、
「ノウハウが溜まる」だろうと思えるのですね。

そんなわけで、ちゆは日本のロケット開発を応援しています <誰だよ、ちゆって

ちなみに民生品レベルはまた別。
そっちは逆に、個々の作業員の「燃え」を、
如何に引き出すか、重要視できるか、が鍵じゃないかと。

補足にしちゃ長すぎ。
しかもこんなこと、自分言える立場にないのに。
自分の耳がかなり痛い… (T_T)


WSH、完璧。
バンバンアプできるん。
その間、PC触れないけど… (T▽T)

2000/06/13(火) [n年前の日記]

#1 Filter Factory

とあるゲーム画像を入手。
ビュアーで確認したら、画像が崩れてる。
ラスター単位で、スクロールさせたり、RGBチャンネルを入れ替えすれば、なんとか修復できそうな感じ。

そういった処理が出来るツールはないかと探しているうち、ふと、PhotoshopのFilterFactoryというフィルタの存在を思い出したり。

この、Filter Factory というフィルタ(pulgin?)ですが。
Photoshopのフィルタを、そこそこ簡単に『自作できる』というスグレモノ。
RGB(+α)チャンネル毎に、数式を入力する事で、画像処理が可能なのです。
(詳しくは _コチラのサイト を。)

で、結果ですが。
かなりの数のファイル相手に、アクションやバッチ処理を併用しつつ、そこそこマシな感じで処理できました。

いやはや、便利です。それに可能性もある >Filter Factory
色々と不便な部分もありますが、それでもやはり、「あって良かった」みたいな。
「コンピュータは人間が楽するためにある」を実感。
マウス片手に人間がヒーヒー言いながら処理してたらバカバカしいですから <ゲーム画像対象に、という自分のダメダメさはさておき

が。
どうも一筋縄ではいかないファイルも多々あり。
結局、手動で対応する場面も (´Д`;)トホホ

つか、元々画像を吸い出した時点で壊れてるモノも多く。
元から存在しない情報は、どんなに苦労しても取り出せません。
(´Д`;)トホホ

1999/06/13() [n年前の日記]

#1 (NoTitle)「カスタム隷奴」のCG...

「カスタム隷奴」のCGデータ、吸い出せないかな〜、と Grapholic(CG吸出しツール)を立ち上げたら、起動時にエラーが。 Windowsを再起動しても、症状は変わらず。…オイラのマシンで一体何が起きているんだ〜??? (?_?;) ヤベエヨ!
…ひょっとしてメモリがおかしいとかって…ないかな? どこかにメモリチェックするプログラムは無いものか…。(昔、会社で使ってたDELLのマシンでも、メモリが壊れててガンガン暴走して困っていた経験アリ。ちゃんとしたソフトで調べないと、意外にその手の問題は発見できないようですよ。ちなみにその時は、DELLに付属してきた、ハードを全部チェックするプログラムで調べて原因がわかったのでした。)

ちなみに「カスタム〜」の感想ですが、ゲーム自体はこの手のゲームでは当然のごとくカッタルいものの、調教した奴隷のデータをユーザー同士でやり取りできるというのは画期的かと。ネットで検索したら、いやはやその手のデータがあるわあるわ…。(「綾○レイ」のデータとか、「○波レイ」のデータとか、「綾波○イ」のデータとか…(笑) 皆、ホントに好きなのね… (^^; )
宣伝文句も、「インターネットで奴隷を交換」「奴隷を売買」って…ホラ聞いただけでもうスゴイでしょ(爆笑)
またメーカーのサイトから、新しいキャラクターのデータが落とせるというのもグーですね。なんといいますか、ゲームの出来はアレですが、ユーザーのハートはガッチリつかんだソフトかも。(…そうかぁ〜??)

うぎゃ。「どれみ」録画しそこなった。時間もチャンネルも間違えて予約しちゃったんで救いようがないですな。シクシク (T_T)

そういえば昨日、ファミコンショップで、KCETの作った「ガンなんとか」ってゲームを見かけたんだけど…。コレ、私の知ってる人が関わってたりするんでしょうか? パッケージ見ただけじゃ何のゲームなんだかわからなくて、買いようがなかったんですが。(もうココ数年、「ファミ通」とか見てないんで、その手の情報に完全にうといんです。…だって「ファミ通」読んでると怖くなってくるんだもん(何で?))
誰か情報ギブミー。

以上、25 日分です。

過去ログ表示

Prev - 2024/03 - 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