Quartz Composerにどっぷり!
デスクトップマスコットを作る

今回のテーマ

今回のテーマは、デスクトップマスコットです。Quartz Composer で作ったアニメーションをデスクトップマスコットにします。

推奨環境 この解説は、以下の環境が必要です。ご確認ください。

改版履歴

デスクトップマスコット

今回のテーマは、デスクトップマスコットです。Quartz Composer で作ったアニメーションをデスクトップマスコットにします。具体的には、以下のような感じです。Quartz Composer のアニメーションは、スクリーンセーバのように画面全体に表示するか、四角いウィンドウの中に表示するのが一般的ですが、ウィンドウの枠を取り払ったこのような表示も可能なのです。

やるべきことは、3つ。

この 3 点が実現できれば OK です。

Quartz Composer のアニメーション自身の背景を透明にする

Quartz Composer のアニメーションの背景を透明にするには、Clear パッチを置き、Clear Color を透明色にします。具体的には以下のようにします。

QCView の背景を透明にする

QCView の背景を透明にするには、Interface Builder 上で、Attributes の Erase Color に透明色を指定します。具体的には以下のようにします。

ウィンドウを透明にする

ウィンドウを透明化するのは、Apple のサンプルにありますので、それをそのまま使います。NSWindow のサブクラスを作って、以下の初期化メソッドをオーバーライドします。やっていることは、背景を透明色で塗ることです。

- (id) initWithContentRect : (NSRect) contentRect 
styleMask : (unsigned int) aStyle
backing : (NSBackingStoreType) bufferingType
defer : (BOOL) flag
{

NSWindow* result = [ super initWithContentRect : contentRect
styleMask : NSBorderlessWindowMask
backing : NSBackingStoreBuffered
defer : NO ];

[ result setBackgroundColor : [ NSColor clearColor ] ]; // 透明色で塗る
[ result setAlphaValue : 1.0 ];
[ result setOpaque : NO ];
[ result setHasShadow : YES ];

return result;

}
サンプル
Xcode用プロジェクトファイル