13

円形マスクを作成し、スプライト キット SKCropNode クラスを使用してマスク内のスプライトをアニメーション化します。しかし、マスクのエッジはピクセル化されたように見えます。

アンチエイリアシングを使用してエッジを滑らかにする方法はありますか?

4

3 に答える 3

5

アンチエイリアシング効果で SKNode/SKSpriteNode をマスクする場合は、SKCropNode の代わりに SKEffectNode を使用できます。アニメートされたノードでも機能します。次に例を示します。

// Set up your node
SKNode *nodeToMask = [SKNode node];
// ...

// Set up the mask node
SKEffectNode *maskNode = [SKEffectNode node];

// Create a filter
CIImage *maskImage = [[CIImage alloc] initWithCGImage:[UIImage imageNamed:@"your_mask_image"].CGImage];
CIFilter *maskFilter = [CIFilter filterWithName:@"CISourceInCompositing"
                                  keysAndValues:@"inputBackgroundImage", maskImage, nil];
// Set the filter
maskNode.filter = maskFilter;

// Add childs
[maskNode addChild:nodeToMask];
[scene addChild:maskNode];
于 2015-09-02T09:18:15.090 に答える