Spicata自分がやったお仕事原稿のフォローアップなどを掲載していきます。この広告は、90日以上更新していないブログに表示しています。24:50ごろまで原稿を泣きながら書いていた氷川です。あらためまして新年あけましておめでとうございます。去年1年を振り返ってみるとよくもまあ...雑誌16冊、書籍3冊、ムック3冊。書籍は共著が多いので分量的にはとんでもなくはないのですが、本業ではない身としてはよく睡眠時間と休日を削ったな、と自分を褒めてあげたくもなります(苦笑)。氷川は基本的にはコンピュータ系のライター、しかも書籍やムックは「使い方」系の本のお仕事が多いので、作成する原稿には手順を示すスクリーンショットが欠かせません(しかも1アクションごとに撮らなければいけないものが多いので、入稿時の総ファイル容量がGB単位、うちテキストは10MB以下なんてことがよくあります)。作業をきめ細かにスクリーンをキャプチャするのは集中力がいるため、なるべく人為的なミスが介入する部分は省きたいところです。仕事柄複数のプラットフォームを行き来してスクリーンショットを撮りますが、それぞれクセが微妙に違うので、個々別々のノウハウが必要だったりします。今回は、Macに絞って考えてみたいと思います。Xを使っていましたが、10.7以降の環境では「インタラクティブモード時にカーソルを残して撮影できる」という機能が失われてしまっているため、OSの標準機能と同じもの+隠し設定項目をGUIで選択ぐらいしか提供されなくなってしまいました(まあ、もともと標準の機能を引き出すツールではあるんでしょうけど)。いいソフトでしたし、呼び出した後に自由にモードを変えられるという点ではスクリーンショット職人初級の方には、引き続きおすすめのソフトだと思いますし、値段も以前の半分くらいになっていてお手頃です。Xのscreencaptureは非常に強力で、標準で十二分な機能を提供していますので細かく見てみましょう。撮影はキーボードショートカットで発動します。⌘+Shift+3これで画面全体を撮影します。⌘+Shift+4この場合はインタラクティブモードに切り替わり、ドラッグして矩形で囲った部分が切り取られて撮影されます。[space]のようにインタラクティブモード時にスペースキーをたたくと、カーソルがカメラアイコンに変わり、カーソルを重ねたウインドウのみがクリックされたタイミングで撮影されます。UIWindowをちゃんと見ているので、ウインドウが重なって非表示になってくれる部分もばっちり撮ってくれます。この際にウインドウのドロップシャドウも撮られます。トリミングしてしまえばどうということもありませんが、シャドウなし図版を大量に必要とする場合には、Optionキーを押しながらクリックするとドロップシャドウがつかずに撮影されます。Xには「シート」と呼ばれるダイアログの一種があるのですが、10.6まではウインドウ本体とシートとを別々に撮影できました。10.7以降、このシートが「Powerbox」という独立したフレームワークを使うようになり標準のままではシート+ウインドウという形で撮影されるようになりました。これはこれで使い手があるのですが、このままトリミングするとシートは半透明なので裏写りが美しくありません。そこで⌘キーを押してみると...ハラショー。このように有料のアプリを使わないでも融通の利いたスクリーンショットは撮れるものです。インタラクティブモードの範囲選択はかなりマニアックな操作が可能になっており、全部解説すると大変な分量になるので、まとめて見たい方はこちらからビデオでどうぞ。自分の都合に合わせてカスタマイズとても便利なscreencaptureですが、デフォルトのままだと困るときもあります。時刻」で命名され、逐次デスクトップにPNGファイルが生成されます。デスクトップ画面のキャプチャをしているときに作業効率が悪くなります。よけいなものは写らない、シンプルで美しいショットを心がけている氷川としては「イラッ☆」とせざるを得ないのが本音です。最初に考えられるのがクリップボードへの保存です。Controlキーを押しながら撮影すればファイルはクリップボードへと保存されるため、プレビュー.appで「クリップボードから新規作成」を実行するという手が使えるようになります。これでは一連の動作をキャプチャする場合、都度都度手が止まってしまいますので、思い切ってdefaultsコマンドで保存先をこんな感じで変えてみましょう。SystemUIServerここでは保存先をホームフォルダ内のピクチャ/Screenshotに変更してみました。com.apple.screnncaptureは、無くても作られるので大丈夫です。2行目にあるように、最後にSystemUIServerをkillallするか、再起動しないと設定ファイルが読み込まれないので「設定が反映されない?!」と慌てないようにしましょう。次の問題はファイル形式です。PNG形式で基本は良いと思うのですが先方の都合で「PSD形式で納品お願いします」などと頼まれることもあるでしょう。そもそもスクリーンショットの標準形式もJPEG(10.2〜)、PDF(10.4〜)、PNG(10.6〜)と遷移しているわけですから、将来だって標準のフォーマットが変わるかも知れません。アップルがどう仕様変更しようと納品先に合わせなければ意味がありませんので、ここもさくっと変えてしまいましょう。SystemUIServerこれでお客さんも大喜びです。設定できる画像フォーマットはOSのバージョンに依存しますが、10.8ではpnggifjpgjp2bmpexrpdfpsdpctsgitgatifこのあたりが使えると思います。コマンドラインから実行する非常に便利なscreencaptureですが、実体は/usr/sbin/screencaptureでコマンドラインから実行することも出来ます。screencaptureを実行し、引数を紐解いてみましょう。これは10.8.2のものです。保存先」であることがわかります。follows.DESCRIPTIONの最初から「このドキュメントは非常によくない」と書いてあるのもいかがなものかと思いますが...。確かに説明が多いのと、使ってみないとわかりづらいコマンドなので、オプションをひとつずつ見て行きましょう。clipboard.小文字のcオプションを付けるとクリップボードに保存されます。これはControlキーを押したときと同じ動作です。modes.大文字のCオプションは撮影時にカーソルを含めます(逆にこの引数を含めない場合には必ずカーソルは含まれません)。このオプションはインタラクティブモードでは動作しません。shot.小文字のiオプションはインタラクティブモードに切り替わります。これは「⌘+Shift+4」のキーボードショートカットで起動したときと同じ動作になります(スペースキーを押しての状態遷移も受け付けます)。set.小文字のmオプションはマルチモニタ用で、メインモニタ(メニューバーが表示されているモニタを指します)の画面キャプチャのみを行ないます。逆にこの引数が指定されていない場合の全画面撮影は、接続されているディスプレイの数だけファイルが生成されることになります。message.大文字のMオプションを付けるとキャプチャされたファイルが新規メールメッセージに添付されます。小文字のoオプションを付けるとウインドウのドロップシャドウを撮影しません。これはOptionキーを押したときと同じ動作です。window.大文字のPオプションを付けるとキャプチャされたファイルがプレビュー.appで自動的に開かれます。小文字のsオプションは「⌘+Shift+4」のキーボードショートカットで起動したときの領域選択と同じ動作をします。iオプション異なりスペースキーを押してもウインドウ撮影モードには遷移しません。window.通常のウインドウ撮影モードは上に重なったウインドウは無視して撮影してくれますが、この大文字Sオプションを付けると、上に重なったウインドウは重なったまま撮影してくれます。単独では動作しないので、-iSとか-aiSみたいな感じで組み合わせて使うといい感じです。formats).小文字のtオプションを使うと、ファイルフォーマットを指定してキャプチャできます。指定しない場合にはデフォルトのPNGが使用されますが、先ほどのリストの通り、指定してやれば異なるフォーマットで作成することもできます。plistを毎回書き換える運用と上手く組み合わせてあげるとベターです。5.大文字のTオプションは「タイマー」モードです。Xを使用することでインタラクティブモードでも強制的に撮ることができましたが...残念な結果に)。mode.小文字のwオプションはインタラクティブモードで、かつウインドウ撮影モードに限定します(スペースキーを押しても切り替わりません)。大文字のWオプションはインタラクティブモードをウインドウ撮影モードからスタートしてくれます(スペースキーで領域選択モードに切り替わります)。個人的にはウインドウ撮影モードが中心なので、こちらがデフォルトになってくれると嬉しいのですけど。小文字のxオプションを付けると、撮影時のシャッター音がしなくなります。便利なのですが、screencaptureはときどき遅延が発生するので、個人的にはミュートは使わないようにしています。小文字のaオプションを付けると、シートなどを独立してウインドウ選択できるようになります。これは⌘キーを押したときと同じ動作です。小文字のrオプションを付けて撮影した場合、ファイルにdpiのメタ情報が付与されずに保存されます。screenSYNOPSISでも書かれていましたが、screencaputureコマンドはファイルの保存パスを必ず指定する必要があります。1コマンド実行で1回しか撮影は行われません(だったら「files」じゃないでしょう...とツッコミをいれたくなりますが)。OS「このマニュアルにはよりよいドキュメントが必要だ」っていう自虐さはともかく、これ、コマンドラインで動作するのでリモートで撮影も可能なんですよね。ladmin@10.0.0.1:tmpなんていう真似も可能に。Buddy(初回セットアップ時にやるアシスタント。「ようこそ」画面とか言われてます)のスクリーンショットを撮るという業務を見ているので、ニッチなニーズはあるんだと思います。Automatorの「サービス」を使って応用するこのようにコマンドライン経由のほうがキーボードのみの操作よりも若干多機能になっています。欲しい機能はキーボードショートカットに組み込みましょう。氷川が個人的に欲しい機能は、まずタイマーです。+%s`.pngというコマンドを作ってみました。これをAutomator.appに組み込んでみましょう。アプリケーションを起動したら書類タイプを「サービス」として選択します。ユーティリティのジャンルから「シェルスクリプトを実行」を選んでワークフローに入れたら、先ほどのコマンドを入れておきます。「"サービス"は、次の項目を受け取ります」のポップアップメニューは「入力なし」に、検索対象は「すべてのアプリケーション」にしておきましょう。完了したら保存しましょう。ここでは「タイマー撮影」と名前をつけておきました。システム環境設定.appの「キーボード」ペインから「キーボードショートカット」タブを選択して、「サービス」グループから「一般」にある先ほど作成した「タイマー作成」を選択し、キーボードショートカットを割り当てます。ここでは他のキーボードショートカットの例に倣って「⌘+Shift+5」を割り当ててみました。作成したサービスを他の環境でも使いたい場合には「~/Library/Services」の中に実体のファイルが入っていますので、コピーして配ることも可能です(※10.8の環境に配布する際にはGatekeeperのセキュリティに引っかかります。ダブルクリックではなく「ファイル>開く」メニューから実行する必要がありますのでご注意を)。実はシートを撮るコマンドには問題があって、シート内部にオプションがあるとこの部分だけ「別ウインドウ」として区別されます。+%s`.pngとしてみました。これならば!...と思いましたが、裏映りしてるし、ツールバーのシャドウまで重なるし、ドロップシャドウはないし。今のところは合成しないとダメですね。参考資料ワンライナーでそのまま使えるスクリーンショットが撮れる!screencaptureコマンドのオプションの解説が大変詳しいエントリでした。...が、ここで扱ってるmanの内容がうちのと違うんですが、どのバージョンなんでしょう。rectlオプションはちょっとマニアックかつ、手間がかかるので玄人向けなのですが実はかなり細かいパーツ単位で取れるので便利です。Rオプションは期待通りに動かないのでもう少し要研究です。Mapperをクリエイティブ・コモンズライセンスに基づいて使用させていただいています。»プロフィールid:risonah自分がやったお仕事原稿のフォローアップなどを掲載していきます。@risonahはてなブログをはじめよう!risonahさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。