Unityでエフェクト等を常に前面に表示する方法

エフェクト等、3D空間での位置関係に無関係に常に前面に表示したい場合に使えるテクニックです。

手順

  1. 前面に表示したいオブジェクトを作成し、Add Layerから適当なLayerを追加・設定する。
  2. カメラを追加して、Clear FlagsDepth onlyに、Depth0に設定する。
    Culling Mask1で設定したLayerに設定する。
  3. 元のMain CameraはDepth-1に設定し、Culling Maskから2で設定したLayerを外す。

リンク

Unity z軸に関係なくダメージを最前面に出したい – とあるプログラマの備忘録
http://raharu0425.hatenablog.com/entry/2015/08/27/111709

VirtualBox上でUnityが起動できない場合

VirtualBox上でUnityを起動しようとすると

Fatal error!
Failed to initialize unity graphics.

というエラーが表示されてしまう場合は、[Guest Addions CD]からドライバーをインストールすれば起動できるようになるみたいです。

手順

  1. [Settings] » [Display]からVideo Memoryを128MB以上に設定
  2. Guest OSを起動して、[Devices] » [Insert Guest Additions CD image...]を実行
  3. セットアッププログラムが起動するので、ウィザードに従ってOracle VM VirtualBox Guest Additionsをインストール

リンク

How To Enable 3D Acceleration and Use Windows Aero in VirtualBox
http://www.howtogeek.com/124479/how-to-enable-3d-acceleration-and-use-windows-aero-in-virtualbox/

FFmpegで動画から静止画像を出力する方法

FFmpegで動画ファイルから静止画像を出力したい場合は、次のようなコマンドを実行します。

$ ffmpeg -an -i video.mp4 %04d.png

0001.png0002.png0003.png、…のような連番ファイルが出力されます。

一部のみ抜き出したい場合は-ssオプションで開始時刻を、-tオプションで長さを指定します。

$ ffmpeg -an -ss 00:05:00 -t 00:01:00 -i video.mp4 %04d.png

静止画像から動画を作成する方法

逆に、静止画像ファイルから動画を作成する場合は

$ ffmpeg -framerate 30 -i %04d.png video.mp4

のようにします。

スタートフレームを変更したい場合は-start_numberオプションを、長さを指定したい場合は-vframesオプションが使えます。

$ ffmpeg -framerate 30 -start_number 123 -vframes 600 -i %04d.png video.mp4