2014/12/29(月) [n年前の日記]
#1 [dxruby][ruby] dllからMinGW用のライブラリファイルを作成
コメント欄で、dlltool、pexports というツールの存在を教えてもらったので試してみたり。Visual C++ で作った .dll しかない状態で、MinGW で使えるimport(?)ライブラリを取り出すことができるツール、らしい。…自分、importライブラリって何だろう、てな知識状態ではあるのですけど。
以下を参考に作業。
_MinGW 環境で Windows のダイナミックリンクライブラリ *.DLL からインポートライブラリ *.a ファイルを作成する - あらきけいすけの雑記帳
_dllからインポートライブラリを作成する方法
_Mingw32でDirectX!: 思いつき
以下を参考に作業。
_MinGW 環境で Windows のダイナミックリンクライブラリ *.DLL からインポートライブラリ *.a ファイルを作成する - あらきけいすけの雑記帳
_dllからインポートライブラリを作成する方法
_Mingw32でDirectX!: 思いつき
◎ pexportsのインストール。 :
pexports は、
_mingw-utils
に入ってる。と、巷の解説ページには書いてあったのだけど、情報としては少し古いようで。
_MinGW - Minimalist GNU for Windows | SourceForge.net
から辿っていったら、
_pexports単体
が存在していた。おそらく、mingw-utils-0.3 までは pexports が含まれていたけど、mingw-utils-0.4-1 以降は pexports が含まれず、単体で配布するようになったのだろうと。
そもそも、今の MinGW なら、msys.bat で起動した後に mingw-get instal xxxx で簡単にインストールができる。Ubuntu Linux の apt-get みたいな感じ。
dlltool は、既に MinGW の中に入ってた。
しかし、tar.xxx を解凍して MinGW の bin に突っ込んだ後、mingw-get も使ってインストールしたら、mingw-get upgrade が必ず不正終了するようになってしまった…。MinGW/MSYSを再インストール。
mingw-get を使ってインストールするだけなら、mingw-get upgrade が不正終了する状態にはならない模様。
そもそも、今の MinGW なら、msys.bat で起動した後に mingw-get instal xxxx で簡単にインストールができる。Ubuntu Linux の apt-get みたいな感じ。
mingw-get install mingw-utils mingw-get install pexportsアンインストールは、mingw-get remove xxxx と打てばいいのかな? 完全に消してくれるわけではなさそうだけど。
dlltool は、既に MinGW の中に入ってた。
しかし、tar.xxx を解凍して MinGW の bin に突っ込んだ後、mingw-get も使ってインストールしたら、mingw-get upgrade が必ず不正終了するようになってしまった…。MinGW/MSYSを再インストール。
mingw-get を使ってインストールするだけなら、mingw-get upgrade が不正終了する状態にはならない模様。
◎ libxxxx.a を作成。 :
Ayame.dll を作業しやすい場所にコピーしてから、msys.bat を起動したその上で、以下を打ってみたり。
で。これをどうすればいいの?(爆)
何もわからないまま、libayame.dll.a を、ayame.so のソースファイル群と同じ場所にコピー。extconf.rb 内のリンカオプション指定部分を修正。
ruby extconf.rb、make clean、make を実行。ayame.so ができたので、オリジナルの ayame.so と差し替えて、ruby sample1.rb を実行。
音は鳴らない。
ていうか、できた ayame.so は、前に作った ayame.so と4byteしか違わない…。たぶんまた、自分は頓珍漢なことをしてる予感。
$ pexports.exe Ayame.dll > ayame.dll.def
$ dlltool --dllname Ayame.dll --input-def ayame.dll.def --output-lib libayame.dll.a または $ dlltool -D Ayame.dll -d ayame.dll.def -l libayame.dll.a300KB の Ayame.dll から、7.4KB の libayame.dll.a が作れた。ファイルサイズが随分小さくなったけど、ええのやろか…?
で。これをどうすればいいの?(爆)
何もわからないまま、libayame.dll.a を、ayame.so のソースファイル群と同じ場所にコピー。extconf.rb 内のリンカオプション指定部分を修正。
$LDFLAGS << ' -static-libgcc -static-libstdc++ -layame.dll -lwinmm '-layame.dll を追加することで、「libayame.dll.a てのが居るはずだからソイツを使え」と指定する形になってたらいいなーと希望。
ruby extconf.rb、make clean、make を実行。ayame.so ができたので、オリジナルの ayame.so と差し替えて、ruby sample1.rb を実行。
音は鳴らない。
ていうか、できた ayame.so は、前に作った ayame.so と4byteしか違わない…。たぶんまた、自分は頓珍漢なことをしてる予感。
◎ objdumpでdllやsoの情報を確認。 :
MinGW/MSYS の中に入ってる、objdump というツールを使うと、dll や so が依存してるDLLの情報を確認できると知った。
オリジナル版の ayame.so の状態を確認。
自分で MinGW64 を使ってビルドした ayame.so の状態を確認。
オリジナル版は、WINMM.dll が表示されてるけれど、自ビルド版は WINMM.dll が無い。もしかしてそのせいで音が鳴らないのだろうか。timeGetTime() を使ってるはずなのに、どうしてリンクされないのだろう。動かしてみて不正終了しないのも謎。
また、dlltool で作った libayame.dll.a についても objdump で情報を確認してみたら、そのほとんどが 00000000 で表示されて。もしかすると、Ayame.dll から何も取り出せてないのでは…? それとも 00000000 だらけになるのが正しい?
Ayame.dll の情報を objdump で確認したら、それっぽいアレコレがズラズラと表示された。うーん。やっぱり、libayame.dll.a は、ちゃんと作れてないのかな…。
オリジナル版の ayame.so の状態を確認。
> objdump -p ayame.so.org | grep dll DLL Name: msvcrt-ruby200.dll DLL Name: ole32.dll DLL Name: USER32.dll DLL Name: WINMM.dll DLL Name: KERNEL32.dll
自分で MinGW64 を使ってビルドした ayame.so の状態を確認。
> objdump -p ayame.so | grep dll DLL Name: msvcrt-ruby200.dll DLL Name: KERNEL32.dll DLL Name: msvcrt.dll DLL Name: msvcrt.dll 1d7e8 56 __dllonexit DLL Name: ole32.dll DLL Name: USER32.dll
オリジナル版は、WINMM.dll が表示されてるけれど、自ビルド版は WINMM.dll が無い。もしかしてそのせいで音が鳴らないのだろうか。timeGetTime() を使ってるはずなのに、どうしてリンクされないのだろう。動かしてみて不正終了しないのも謎。
また、dlltool で作った libayame.dll.a についても objdump で情報を確認してみたら、そのほとんどが 00000000 で表示されて。もしかすると、Ayame.dll から何も取り出せてないのでは…? それとも 00000000 だらけになるのが正しい?
Ayame.dll の情報を objdump で確認したら、それっぽいアレコレがズラズラと表示された。うーん。やっぱり、libayame.dll.a は、ちゃんと作れてないのかな…。
[ ツッコむ ]
#2 [anime][neta] アニメとセル生産方式
ここ最近、CACANiというアニメ制作ソフトがなんだか気になっていて。
_CACANiお試し - Togetterまとめ
を眺めてると、「ふおおっ…」となんだか鼻息が荒く…。学生の頃にこういうソフトが存在していて、うっかり触りでもしたら、「自分もアニメーターになる!」と身の程知らずなことを言い出してたかも。そのくらい、面白そうなソフトだなと。
さておき、前述のレビューまとめページの中で、
工場と言うと、 _ライン生産方式 をつい思い浮かべてしまうのだけど。ベルトコンベアで製品が流れていくラインに、たくさんの人をずらりと並べて、一人の作業範囲・やるべきことをできるだけ狭めて、次々に製品を流しながら作っていく、てなやり方。「お前はこの作業だけをやれ」「お前はこの作業だけをやれ」「それ以外の作業はしなくていいぞ」と。
ところが、ガラケーの生産をしてた頃、何かのTV番組で、おそらくは _セル生産方式 というのを見かけたことがあって。一人一人が、1台のガラケーを組み立てるための全部品を自分の席まで持っていって、組み立て作業の最初から終わりまで、一人で担当してしまう、みたいな。
おそらく、アニメ業界も、CACANiのようなソフトが導入されていくと、そのセル生産方式に近づくんだろうなと。
さておき、前述のレビューまとめページの中で、
コンピュータの導入は個人の作業能力を高めてくれるけど同時に責任範囲が広がって作業量が増えるのだといった話が出ていて、自分もその予想に同意してしまうのだけど。なんとなく、ガラケー(少し前の日本の携帯電話)の生産工場を連想したりして。
んで、その結果就労時間が増えたりする
一人で作業する範囲が増えて、その人の裁量に委ねられちゃうケースが多くなって、従来可能だった分業ができなくなる事がある
工場と言うと、 _ライン生産方式 をつい思い浮かべてしまうのだけど。ベルトコンベアで製品が流れていくラインに、たくさんの人をずらりと並べて、一人の作業範囲・やるべきことをできるだけ狭めて、次々に製品を流しながら作っていく、てなやり方。「お前はこの作業だけをやれ」「お前はこの作業だけをやれ」「それ以外の作業はしなくていいぞ」と。
ところが、ガラケーの生産をしてた頃、何かのTV番組で、おそらくは _セル生産方式 というのを見かけたことがあって。一人一人が、1台のガラケーを組み立てるための全部品を自分の席まで持っていって、組み立て作業の最初から終わりまで、一人で担当してしまう、みたいな。
おそらく、アニメ業界も、CACANiのようなソフトが導入されていくと、そのセル生産方式に近づくんだろうなと。
◎ 妄想。 :
なんだか色々と妄想。
そういったソフトの導入が進めば、原画の人が、原画・動画・仕上げ・(もしかすると撮影まで)、一人で担当する時代が来るのかもなと。その代り、一人で何カットもやらされたりしない。100カットあったら、100人が、自分の担当してる1カットに最初から終わりまで専念。SHIROBAKOで出てきた、「動画のことを考えて原画を」「動画で溶ける」なんて台詞は過去の話に。それぞれが、自分がやりやすいと思うスタイルで作業すればいい。どんなやり方をしてもいい。動画どころか仕上げまで自分がやるわけだし。責任を持つ範囲が変わって、一人一人が「俺は職人だぞ」という気概をますます持つので、モチベは維持できそうかも。
スタッフロールも変わる。「原画」「動画」「仕上げ」なんて分類されてない。「作画」の文字の後に、何十〜何百人もの名前がずらり。
しかし、原画の人に仕上げまでさせるのだから、人数が足りなくなるはずで。動画や仕上げの人を原画相当に昇格させる手管が無いと破綻する。つまりはアニメーターさんの教育・訓練が、ますます重要に。優秀な先生が居るスタジオが生き残っていく、てなことに。
描き方も変わりそう。モノグサな人は、キャラデザの人が描いた絵から、顔のパーツをコピペして並べていったり。元の絵はパーツ毎にレイヤー分けされてたりして、レイヤーをコピペして位置や角度を変えるだけで顔は出来上がり。40秒で支度しな、じゃなくて40秒で1カット完成、てな場面もちょこちょこありそう。
アニメーターさんの種類が2つに分かれそう。「描いたほうが早いよ」とゴリゴリ描いてく人と、「加工したほうが早いよ」と変形や中割り自動生成を駆使して仕上げていく人と。もしかすると、前者は「原画」と呼ばれ続けて、後者は「動画」と呼ばれるのかしら。
先輩アニメーターがゴミ箱に捨てた原画を後輩アニメーターがこっそり回収、なんてことはできなくなる。そういうのは先輩が使ってるPCのHDDの中にしか入ってないから、不正アクセスでもしないとゲットできない。その代り、スタジオのサーバに先輩が作った最終データは全部入ってるので、勉強する気さえあれば見放題。ゴミ箱から没原画を回収、という風景が、USBメモリを持ち込んでサーバからこっそりコピーして自分の手元にバックアップ、という風景に変わる。PC操作に慣れてない人がソレやって、コピーのつもりが移動しちゃって、ファイルが無くなったぞとスタジオ中で大騒ぎ。ファイルの所有者以外はリードオンリー設定にしておかないとあかん…。
作監さんの仕事はトレス台にかじりつくスタイルから、アニメーターさんの後ろをうろうろする仕事になる。「できましたー」「どれどれ。その顎の線は、もうちょっと丸みを。左目の位置はもうちょっと下」「こうスか?」「ハイ。オッケー」。作監作業終了。それとも、作監さんのPCからアニメーターさんのPCをリモート操作できたほうが楽なのだろうか。
長年やってる人はMyライブラリが充実してるから作業が早い時は早い。「あのファイルが流用できるな」と探し出して、少し変形・描き直して終わり。しかし今まで描いたことがない構図だと時間がかかる。でも、その新規データは、別のどこかで使えるかもしれない。ますますライブラリが充実。
手描き世代が、「今の若いアニメーターさんは恵まれてないよ」「一人一人がQAR使ってるようなもんだ。アレじゃ育たない」「完成映像はどうなるのかなと想像しながら描けなくなってる。描いてる時から色ついちゃってるもん」と苦言を。だけど、色の変化で動きをつけたり、グラデショーン塗りで動きのタイミングを見せる世代が登場してくる効能も。
などと妄想してしまいますが。さて、どうなっていくんだろう…。
そういったソフトの導入が進めば、原画の人が、原画・動画・仕上げ・(もしかすると撮影まで)、一人で担当する時代が来るのかもなと。その代り、一人で何カットもやらされたりしない。100カットあったら、100人が、自分の担当してる1カットに最初から終わりまで専念。SHIROBAKOで出てきた、「動画のことを考えて原画を」「動画で溶ける」なんて台詞は過去の話に。それぞれが、自分がやりやすいと思うスタイルで作業すればいい。どんなやり方をしてもいい。動画どころか仕上げまで自分がやるわけだし。責任を持つ範囲が変わって、一人一人が「俺は職人だぞ」という気概をますます持つので、モチベは維持できそうかも。
スタッフロールも変わる。「原画」「動画」「仕上げ」なんて分類されてない。「作画」の文字の後に、何十〜何百人もの名前がずらり。
しかし、原画の人に仕上げまでさせるのだから、人数が足りなくなるはずで。動画や仕上げの人を原画相当に昇格させる手管が無いと破綻する。つまりはアニメーターさんの教育・訓練が、ますます重要に。優秀な先生が居るスタジオが生き残っていく、てなことに。
描き方も変わりそう。モノグサな人は、キャラデザの人が描いた絵から、顔のパーツをコピペして並べていったり。元の絵はパーツ毎にレイヤー分けされてたりして、レイヤーをコピペして位置や角度を変えるだけで顔は出来上がり。40秒で支度しな、じゃなくて40秒で1カット完成、てな場面もちょこちょこありそう。
アニメーターさんの種類が2つに分かれそう。「描いたほうが早いよ」とゴリゴリ描いてく人と、「加工したほうが早いよ」と変形や中割り自動生成を駆使して仕上げていく人と。もしかすると、前者は「原画」と呼ばれ続けて、後者は「動画」と呼ばれるのかしら。
先輩アニメーターがゴミ箱に捨てた原画を後輩アニメーターがこっそり回収、なんてことはできなくなる。そういうのは先輩が使ってるPCのHDDの中にしか入ってないから、不正アクセスでもしないとゲットできない。その代り、スタジオのサーバに先輩が作った最終データは全部入ってるので、勉強する気さえあれば見放題。ゴミ箱から没原画を回収、という風景が、USBメモリを持ち込んでサーバからこっそりコピーして自分の手元にバックアップ、という風景に変わる。PC操作に慣れてない人がソレやって、コピーのつもりが移動しちゃって、ファイルが無くなったぞとスタジオ中で大騒ぎ。ファイルの所有者以外はリードオンリー設定にしておかないとあかん…。
作監さんの仕事はトレス台にかじりつくスタイルから、アニメーターさんの後ろをうろうろする仕事になる。「できましたー」「どれどれ。その顎の線は、もうちょっと丸みを。左目の位置はもうちょっと下」「こうスか?」「ハイ。オッケー」。作監作業終了。それとも、作監さんのPCからアニメーターさんのPCをリモート操作できたほうが楽なのだろうか。
長年やってる人はMyライブラリが充実してるから作業が早い時は早い。「あのファイルが流用できるな」と探し出して、少し変形・描き直して終わり。しかし今まで描いたことがない構図だと時間がかかる。でも、その新規データは、別のどこかで使えるかもしれない。ますますライブラリが充実。
手描き世代が、「今の若いアニメーターさんは恵まれてないよ」「一人一人がQAR使ってるようなもんだ。アレじゃ育たない」「完成映像はどうなるのかなと想像しながら描けなくなってる。描いてる時から色ついちゃってるもん」と苦言を。だけど、色の変化で動きをつけたり、グラデショーン塗りで動きのタイミングを見せる世代が登場してくる効能も。
などと妄想してしまいますが。さて、どうなっていくんだろう…。
この記事へのツッコミ
[ ツッコミを読む(1) | ツッコむ ]
以上、1 日分です。
SHIROBAKOというアニメを24話まで見ました、おそらく現在はあのように作られているのだと思います。
私がいた会社でうる星やつらのアニメを作っていたのですが当時はセル画が使われていました。
当時はCGはほとんど使われていなかったですね。
ゴルゴ13みたいにマイコンを128台つないで絵をつくったケースもあるにはありましたが。
現在は趣味でIclone5やクレイジートークで動画を作って遊んでいます。