画像RSS

2016年9月9日金曜日

『電車かもしれない』の話

 皆様は「電車かもしれない」という題名の楽曲をご存知だろうか。アニメーションの方は知っているという方が多いかもしれない。少女が奇妙な楽曲に合わせて踊ったり回ったり縄跳びをしたりしているあのアニメーションである。今回はこのアニメーションに関係する話をしようと思う。

 このアニメーションの作者は近藤聡乃氏である。近藤氏は画家であると同時に漫画家でもあり、現在は『ニューヨークで考え中』や『A子さんの恋人』などの漫画を描いている。前述のウェブ漫画のとおり、現在はニューヨークに住んでいるらしい。近藤氏の作品はウェブサイト『Akino Kondoh』で鑑賞することができる。 近藤氏は1980年生まれで、出身地は千葉県である。2003年に多摩美術大学グラフィックデザイン学科を卒業している。 件のアニメーションを完成させたのは2002年のことで、近藤氏が大学4年生だったときのことだ。

近藤聡乃作品集
『電車かもしれない』のシーンが掲載されたページもある。
ニューヨークで考え中
ウェブ連載の漫画を書籍化したもの。
A子さんの恋人
ハルタに連載中の最近の作品。

 そもそも『電車かもしれない』という奇妙な題名は、ロック(?)バンド「たま」に在籍していた知久寿焼氏の楽曲に由来する。 『アックス』Vol.42に収録された近藤氏と知久氏の対談によると、近藤氏があのアニメーションを制作した理由には単に「たま」が好きだったということもあったようだ。アニメーションに使う楽曲の候補は「電車かもしれない」と「満月ブギ」の二つだったらしい。近藤氏曰く、どちらもアニメーションにしやすい楽曲だったそうだ。

『アックス』第42号
近藤聡乃氏と知久寿焼氏の対談が収録されている。表紙は近藤氏の作品。近藤氏の作品にはこの少女を描いた作品が数多く見られる。
汽車には誰も乗っていない
汽車には誰も乗っていない
「たま」のアルバム。アニメーションに使用された「電車かもしれない」はこちらに収録されている。同じく収録された「汽車には誰も乗っていない」や「まばたき」もかなりの名曲である。他にいくつかインストゥルメンタルも収録されている。
しょぼたま2
しょぼたま2
こちらにも「電車かもしれない」が収録されているが、近藤氏のアニメ作品に使われたものとは異なるバージョンであるため注意。こちらのバージョンも秀逸。
たま ナゴムコレクション
たま ナゴムコレクション
「満月ブギ」が収録されている。「満月ブギ」は柳原陽一郎氏の楽曲である。同じくたまファンの私から見ても渋い選曲。

 前述の対談によれば、近藤氏は『月刊カドカワ』で連載されていた「たまの百葉箱」が好きだったらしく、知久氏の絵を全て模写していたそうだ。 なお、近藤氏の短篇作品集『はこにわ虫』に収録された「はこにわ三部作」はたまの楽曲「はこにわ」 (柳原陽一郎氏の楽曲) が題材となっている。たまファンは必見である。

はこにわ虫
そのろく
「はこにわ三部作」の元となった「はこにわ」が収録されている。

 前述の対談には他にも昆虫に関係する話も語られている。知久氏はツノゼミなどの昆虫が好きな人物であり、近藤氏も昆虫を題材とした作品を制作している。気になる方は是非とも一読することをおすすめする。国会図書館などを利用するといいだろう。ちなみに、近藤氏は対談中、羽化したての虫について「すごく美味しそう」「チェルシーのヨーグルト味がしそう」という強烈なコメントを残している。

チェルシー

参考文献

2016年9月4日日曜日

立島夕子氏の話

検索してはいけないとかなんとか

 「あたしはもうお嫁にはいけません」という言葉を聞いたことがあるだろうか。この言葉は検索してはいけない言葉として有名な絵画の題名である。 描いた人が自殺したという噂が一部で流れているらしい。確かに不気味な噂が流れても不思議ではない衝撃的な絵画ではある。 実際は立島夕子氏という芸術家のウェブサイト『立島夕子の地下要塞』に掲載されている彼女の作品の一つである。1999年に制作されたものであるらしい。 このウェブサイトには絵画だけでなく、人形や写真の作品も掲載されている。 立島氏は1974年に東京で生まれ、女子美術大学を卒業している。現在は画家であると同時にパフォーマーでもあるという。 今回はこの立島氏について紹介したいと思う。

『あたしはもう お嫁にはいけません』

 件の『あたしはもう お嫁にはいけません』という絵画作品について、ニコニコ大百科の記事「あたしはもうお嫁にいけません」には立島氏のコメントとして次の言葉が掲載されている。

当時24歳、この絵を描いた当時私はある男性に付きまとわれ精神的に危篤でした。その男性の行動と過去の強姦未遂のトラウマが重なり表現された絵です。この絵は全ての性犯罪に対する私の決死の反逆の絵です。

 そう言われてみると、確かにそのような感じのする絵画である。特に描かれた人物の股間の辺りが。しかし、前述の記事にはこのコメントの出典が記載されていない。そこで、このコメントの情報源を調査したところ、『戦慄!世界の心霊・恐怖画像』という書籍であると判明した。

戦慄!世界の心霊・恐怖画像

表紙には例の作品も写っている。

 『戦慄!世界の心霊・恐怖画像』は題名と表紙を見る限りでは、コンビニか何かで売っている、暇つぶしになれば儲けものといった感じの書籍であるように見える。実際に読んでみたところ、「検索してはいけない言葉」を解説しているような内容だった。不気味な画像の乱立する中には立島氏の作品も含まれていた。 しかし、この書籍の特別な点は立島氏本人による作品についての解説が含まれていることである。それが前述の立島氏のコメントだったというわけだ。 この書籍にはこれ以外の立島氏の作品も掲載されている。本人のコメント付きで掲載されている作品を次に列挙する。

  • あたしはもう お嫁にはいけません
  • 美里自決
    自殺した友人を描いたものらしい。
  • VELVET
    この絵については立島氏はあまり言及したくないらしい。
  • 京曼荼羅
    Dir en grey」というバンドのボーカルの京を描いたものらしい。
  • 郁枝出棺
    事故死した友人の追悼のために描いた作品らしい。その友人は生前、「円蓮子」と名乗って人形を制作していたという。
  • 柘榴観音

 興味のある方は是非一読することをおすすめする。現在、この書籍は絶版らしく、国立国会図書館を頼るという手段が最も確実である。それにしても、どういった経緯でこのような本に立島氏はコメントを掲載することになったのだろうか。私にはこの書籍は恐怖をカジュアルに消費するためのもののように見えたのだが……。

立島夕子氏本人について

魂のアソコ
立島氏が出演していた映画。私自身は見たことがないが、Amazonのレビューによれば、立島氏の演技は「怪演」と評されるものだったらしい。

 立島氏は例の絵画が有名だが、舞踏を行っていたこともあるそうだ。 大豆鼓 (だいずこ) ファームという舞踏グループに1年間所属していたことがあったという。渋さ知らズのステージに立ったこともあるらしいが、集団生活に難があって離脱してしまったらしい。 また、役者としての経験もある。漫画家の山田花子氏の作品を題材とする映画『魂のアソコ』で主役の漫画家の役を演じたそうだ。 パフォーマーとしても活躍しているらしく、『BURST』という雑誌の第66号には立島氏のパフォーマンスの様子を撮影した写真が掲載されていた気がする (違ったらすまない) ([追記] 、Amazonの該当ページにて断片的に掲載されているのを確認。色々な意味で過激な内容であるため、閲覧の際は要注意)。

EATER vol. 8

BURST vol. 66

 立島氏はいくつかの雑誌でインタビューに応えている。

 2001年に出版された『EATER』の第8号では、1999年頃に友人として信用していた人物がストーカー紛いの人間に豹変したという事件が起きたと語っている。恐怖で心臓発作を起こして救急車に乗るほどの事態に発展したという。性暴力を受けた経験もあるらしい。これらの事件が有名な「あたしはもう お嫁にはいけません」などの作品に影響を与えている可能性はあるだろう。

 また、『BURST』の第66号では家族関係について語っている。父親は支配的な人物だったらしく、かなり悪い印象を抱いている。一方で母親とは仲が良かったらしく、個展には母親の遺影を飾っているという。立島氏自身については、リストカットの経験があるという話や、セックス依存症であるという話もあった。

 前述の『EATER』では2000年11月に行われた2回目の個展「爆心地のマリア」についての話も語られていた。 この個展の絵のテーマは「原爆」であったという。立島氏が小学生だったとき、担任の教師が原爆のケロイドの写真集を持ってきたことがあり、そのとき恐怖のあまりに写真集を見ないで逃げ出してしまったらしい。そのときの罪悪感から、小学校の図書館で原爆についての書籍を読み漁ったそうだ。 どういうわけか、子供のときから周囲には被爆者が多かったらしい。前述の雑誌では「何か、ずっと10歳の時から広島に呼ばれてるんですよ」と語っている。

 おそらく、立島氏はこれらの話題に関心があるのだろう。立島氏のTwitterアカウントでは政治的な話題がしばしば言及される。

このような作品の話ももちろん語っているようであるが、例えば次のようなことも呟いている。

 Twitterのプロフィール欄には「311以降、胆石、胆嚢炎発症(胆嚢全摘出手術により完治)、線維腫、虚血性大腸炎発症、原因不明の全身激痛発症。心の病気と体の病気は隠すのが面倒くさいので隠しません。NO WAR、NO NUKES!」と記されている。 ……何と言うか、典型的な芸術家というか、そんな感じのアレである。個人的にはこのTwitterアカウントは政治的な話題に耐性のある人物以外は読まない方が安全だと思う。 ちなみに、私は立島氏に話しかけたことは一度もないが、何故かTwitterアカウントがブロックされていた。

 以上で立島氏とその作品の紹介を終わる。ちなみに前述の『BURST』はアングラな雑誌であり、Twitterアカウントは危なっかしい話題に満ち溢れているため、立島氏について詳細を調べたい方は色々と注意することをおすすめする。

参考文献

グリフウィキで外字を使おう

グリフウィキの利用例
グリフウィキの利用例

 つい最近、知人から「グリフウィキ」 (GlyphWiki) なるウェブサイトの話を聞いた。グリフウィキとは「明朝体の漢字グリフ(漢字字形)を登録・管理し、皆で自由に共有することを目的としたウィキ」 (メインページ - GlyphWiki, 閲覧) だそうだ。誰でも自由に字形を作り、作った字形を利用することができる。 CSSのWebフォントを利用する機能を使えばウェブページ上で表示することも可能である。使いたいグリフを「グループ:全漢字」などのページや検索機能を使って探し出して、そのフォントのデータのURLを見つけてくればいい。

 グリフウィキの使い方や利用例の詳細は「グリフウィキで外字を使おう」に掲載している。興味のある方はどうぞ。

画像を出力するJava Servlet

 ウェブサーバに動的に画像を出力させたい場合がある。 リアルタイムで値が変動するデータのグラフを作りたい場合やアクセスカウンターを作りたい場合などがそれである。 グラフはJavaScriptのCanvas 2Dでも実現できなくもないだろうが、JavaScriptはクライアントに依存するため、それだけに頼るのは避けるべきである。SVGというXMLを利用した方法も使えるだろうが、SVGでは不都合な場合もあるだろう。SVGはブラウザによっては対応していないこともあるかもしれない。

 そのため、Java Servletを利用して画像を出力する方法を考えてみた。思いの外簡単であり、誰でも思いつくようなことだろうが一応書いておく。

 画像を出力するにあたってまず必要なことは、HttpServletインスタンスのdoGetメソッド等の引数である HttpServletResponseインスタンスのメソッドsetContentTypeを実行することである。 そのメソッドの引数に"image/png"などの画像の形式 (MIME型) を表す文字列を与えればいい。

 Javaで画像を扱うのに簡単な方法はBufferedImageを使うことである。 コンストラクタで一から生成してもいいし、ImageIOreadメソッドで既存のファイルを鋳型として生成してもいい。BufferedImagegetGraphicsメソッドの返り値のGraphicsインスタンスや、 createGraphicsメソッドの返り値のGraphics2Dインスタンスを利用すれば、画像の変換等を行うことができる。

 画像の処理を行った後、最後にImageIOwriteメソッドを実行する。第1の引数に処理を行ったBufferedImageのインスタンスを指定する。 第2の引数は"PNG"や"JPEG"等の画像の形式を表す文字列とする。 HttpServletResponseインスタンスのメソッドgetOutputStreamの返り値を第3の引数とする。 こうして、画像が出力される。

public class ImageDrawer extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("image/png");
  
  BufferedImage img=new BufferedImage(200,200,BufferedImage.TYPE_INT_ARGB);
  Graphics g=img.getGraphics();

  g.setColor(Color.BLACK);
  g.fillRect(0,0,200,200);
  g.setColor(Color.WHITE);
  g.setFont(new Font("梅明朝",Font.BOLD,30));
  g.drawString("0123456789",0,30);
  g.drawLine(0,0,200,200);
  
  OutputStream os=response.getOutputStream();
  ImageIO.write(img,"PNG",os);
 }
}
実効結果

 上記のコードを実行すれば、このような画像が出力されるはずである。

Javaでスクリーンキャプチャ

Javaでスクリーンショットを撮る

 ディスプレイに表示されている画面を画像データ化したいとき、つまりはスクリーンショットを撮りたいときがある。WindowsではPrintScreenキーを押すとクリップボードにスクリーンショットを保存できる。画像編集ソフトウェアのGIMPには高度なスクリーンキャプチャの機能がある。 そして、Javaにもスクリーンショットのための機能がある。

 Javaには標準でjava.awt.Robotというクラスが存在する。このクラスは仕様書によると「Java プラットフォーム実装テストを自動化する」ために存在するらしく、自動的にキーボードのキーを押したりカーソルを移動させたりする機能がある。 当記事で紹介するのはこのクラスのcreateScreenCaptureメソッドである。

 このcreateScreenCaptureメソッドがスクリーンキャプチャの働きをするメソッドである。 引数はjava.awt.Rectangleのインスタンスであり、これで撮影する範囲をXY座標、幅、高さで指定する。 返り値はjava.awt.image.BufferedImageのインスタンスであり、このインスタンスは画像データを示す。こうして得られた画像をそのままファイルとして保存したり何かしらに表示したりすることができる。

連続スクリーンキャプチャ

 このスクリーンキャプチャの機能を利用するために私が実際に作成したプログラムの一部を次に示す。このプログラムは指定した回数countだけ撮影するというもので、指定したミリ秒delayの分だけ撮影毎に間隔をあける。そして、撮影したスクリーンショットのハードコピーをディレクトリdirに適当な名前をつけて保存する。 Robotにはスレッドスリープの機能をするdelayメソッドもあるためそれも利用した。 画像の保存ではjavax.imageio.ImageIOクラスを用いた。

//Robotを取得
Robot robot=null;
try{
 robot=new Robot();
}catch(AWTException e){
 e.printStackTrace();
}

for(int i=0;i<count;i++){
 /*遅延*/if(i!=0)robot.delay(delay);
 //ハードコピーを取得
 BufferedImage image=robot.createScreenCapture(rectangle);
 try {
  //画像を出力 (形式はPNG)
  ImageIO.write(image,"PNG",new File(dir,"screenshot"+(i+1)+".png"));
 }catch(IOException e){
  e.printStackTrace();
 }
}

 なお、RobotにはgetPixelColorというメソッドもある。このメソッドは指定した座標のピクセルの色を取得するというものである。 このように、Robotには少し変わった機能があり、工夫次第で面白い使い方もできるかもしれない。

JavaでWebカメラを制御する便利なAPI

 JavaでWebカメラを制御するためのAPIが存在し、「Webcam Capture in Java」で配布されている。 私がこのAPIの存在を知ったのは「Webcam Capture を使って Java から Webカメラ を簡単制御(キャプチャ・動体検知)する」という記事のおかげだが、使ってみると本当に簡単で便利だった。

 このAPIはJava6以降で動作し、当然ながら使用するにはWebカメラが必要である。ネットワークカメラも使えるらしい。「Webcam Capture in Java」によると、このAPIには次のような特徴があるという (下記の部分は前述のページを私が要約したものであり、参考にする際は自己責任でお願いします) 。

  • シンプルでスレッドセーフでノンブロッキングなAPI。
  • 他にソフトウェアを追加する必要なし。
  • マルチプラットフォーム。WindowsやLinux、Mac OSなどで動作する。また、様々なアーキテクチャをサポート。32ビット、64ビット、ARMで動作する。
  • 画像を備え付けのWebカメラから取得できる。USBで接続されたWebカメラも使える。ネットワークカメラも使用可能。
  • JMFやOpenCVなどの複数のキャプチャ用のフレームワークをサポート。
  • 一度コードを書いた後に別のドライバを使っても、そのドライバはWebcamDriverクラスによってラップされるため、コードを書き換える必要はない。
  • カメラ映像を表示するSwingコンポーネントが用意されている。複数のカメラから特定のカメラの映像を選んで表示できる。
なお、上記のサイトは全部英語で書かれている。正確な情報が欲しい方は頑張って和訳していただきたい。

 このAPIの使い方は「Webcam Capture を使って Java から Webカメラ を簡単制御(キャプチャ・動体検知)する」を読めばだいたい分かるはずである。 ここではその補足をする。詳細はAPI付属の仕様書を読んで把握してほしい。

 リアルタイムのカメラの映像を表示させたいときにはcom.github.sarxos.webcam.WebcamPanelクラスまたはcom.github.sarxos.webcam.WebcamViewerクラスのインスタンスを用いればいい。 WebcamPanelはjavax.swing.JPanelのサブクラスであり、WebcamViewerはjavax.swing.JFrameのサブクラスである。使い方はスーパークラスに準じる。 WebcamViewerではカメラの切り替えが可能である。 WebcamPanelは指定したWebカメラだけを対象にする。必要に応じて使い分けるといいだろう。

 また、Webカメラが取得できる画像の大きさはデバイスに依存するようである。com.github.sarxos.webcam.WebcamクラスのgetDeviceメソッドで com.github.sarxos.webcam.WebcamDeviceインターフェースというデバイスを抽象化したインターフェースが取得できる。 そのインターフェースのgetResolutionsメソッドで利用できる画像の大きさのリストを取得できる。 それから適当なものを選んで、WebcamクラスのsetViewSizeメソッドで取得したい画像のサイズを指定すればいい。 getResolutionsメソッドの返り値にないものを指定するとエラーが発生するため注意が必要である。