<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>マジック・ザ・ギャザリング on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%82%B6%E3%82%AE%E3%83%A3%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0/</link>
		<description>Recent content in マジック・ザ・ギャザリング on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Fri, 13 Oct 2017 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%82%B6%E3%82%AE%E3%83%A3%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>マジック・ザ・GIFニング - 面白動画を載せたMtGのカードを生成するプログラム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</link>
				<pubDate>Fri, 13 Oct 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</guid>
				<description>&lt;p&gt;カードゲーム「&lt;a href=&#34;http://mtg-jp.com/&#34;&gt;マジック・ザ・ギャザリング(MtG)&lt;/a&gt;」のデータを使ったネタプログラミングが Hacker News で話題となっていました。&lt;/p&gt;&#xA;&lt;p&gt;Pythonで書かれ、&lt;a href=&#34;https://github.com/minimaxir/magic-the-gifening&#34;&gt;GitHubで公開されている&lt;/a&gt;このツールは、MtGのカードのタイトルに合った内容のアニメーションGIFを埋め込んで、MtGのパロディカードを生成するというプログラム。&lt;/p&gt;&#xA;&lt;p&gt;生成したカードを定期的にツイッターにつぶやく bot 機能も持っていて、&lt;a href=&#34;https://twitter.com/MTGIFening&#34;&gt;作者自身によるデモアカウント@MTGIFening&lt;/a&gt; では、6時間おきに一枚、新作カードが自動投稿されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://mtgwiki.com/wiki/%E5%BD%BC%E6%96%B9%E3%81%8B%E3%82%89%E3%81%AE%E9%9B%84%E5%8F%AB%E3%81%B3/Howl_from_Beyond&#34;&gt;ハウル・フロム・ビヨンド(彼方からの雄叫び)&lt;/a&gt;というカード名から生成されたのが、こちらのカード&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;zxx&#34; dir=&#34;ltr&#34;&gt;&lt;a href=&#34;https://t.co/sxqKUYHmfv&#34;&gt;pic.twitter.com/sxqKUYHmfv&lt;/a&gt;&lt;/p&gt;&amp;mdash; Magic: The GIFening (@MTGIFening) &lt;a href=&#34;https://x.com/MTGIFening/status/913993793052880897?ref_src=twsrc%5Etfw&#34;&gt;September 30, 2017&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;なるほど、雄たけんでるように見えなくもない。&lt;/p&gt;&#xA;&lt;h3 id=&#34;仕組み&#34;&gt;仕組み&lt;/h3&gt;&#xA;&lt;p&gt;Readme/ソースによれば、このツールの仕組みはこんな感じ。&lt;/p&gt;&#xA;&lt;h4 id=&#34;カードデータの入手&#34;&gt;カードデータの入手&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mtgjson.com/&#34;&gt;MTG JSON&lt;/a&gt;で提供されている、全カードのJSONデータを取得する。そんなデータが有志によって管理されているんですね。これも&lt;a href=&#34;https://github.com/mtgjson/mtgjson&#34;&gt;GitHub上で管理更新されている&lt;/a&gt;ようです。&lt;a href=&#34;https://github.com/mtgjson/mtgjson/blob/master/json/10E.jp.json&#34;&gt;日本語データファイル&lt;/a&gt;もありました&lt;/p&gt;&#xA;&lt;p&gt;ここからJSONファイルをダウンロードし、それを前処理のスクリプトで必要なレコードのみのcsvを作り、それを使って動いています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ネタになるアニメーションgifの入手&#34;&gt;ネタになるアニメーションGIFの入手&lt;/h4&gt;&#xA;&lt;p&gt;アニメーションGIF版 YouTube、みたいなサイト&lt;a href=&#34;https://giphy.com/&#34;&gt;GIPHY&lt;/a&gt;に&lt;a href=&#34;https://developers.giphy.com/&#34;&gt;API&lt;/a&gt;が提供されていて、その中にキーワード検索APIもあるので、ランダムに選んだMtGのカードのタイトルを食わせています。タイトルによってはGIFが見つからない場合もあるみたいですが、その時は見つかるまで繰り返しています。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;MtG&amp;quot;で検索して最初にでてきたのがこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/s0FsE5TsEF8g8/giphy.gif&#34; alt=&#34;Giphy sample&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;オリジナルのカード画像にgifをはめ込む&#34;&gt;オリジナルのカード画像に、GIFをはめ込む&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://gatherer.wizards.com/Pages/Default.aspx&#34;&gt;MtG公式からカード画像を取得&lt;/a&gt;し、&lt;a href=&#34;https://github.com/Zulko/moviepy/&#34;&gt;MoviePy&lt;/a&gt;ライブラリで、動画の各フレームを書き換えているようです。カードの世代によって画像の位置やサイズが違うので、世代にあわせて埋め込み座標を変えたりもしています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ツイートする&#34;&gt;ツイートする&lt;/h4&gt;&#xA;&lt;p&gt;PythonでTwitterを読み書きする&lt;a href=&#34;https://github.com/ryanmcgrath/twython&#34;&gt;Twython&lt;/a&gt;を使い、生成されたGIFをツイッターに投稿させています。&lt;/p&gt;&#xA;&lt;p&gt;これらをパッケージする Docker ファイルも置いてあり、自分の環境で簡単に再現できます。ツイッターに投稿するところは動かしませんでしたが、ローカルで動かしてみてできた画像がこちら。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&#34;&gt;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;コードも完結で短く、データやAPIを組み合わせてうまく作ってるなと思いました。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=15449955&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
