妹、PrototypingSprite_Blueprintの色が変えられない
妹「なんかスプライトの色が変えられないんだけど……」
「こないだやってたset sprite colorの話?」
妹「そう。壁の色変えようと思ったのに、なんか、色が出ないんだよ」
「全部変えられないの?」
妹「いやそういうわけではなく、リフトの方は普通に色変わったけど」
「壁はどうやって作ったの?」
妹「2D Side Scrollerのテンプレートに入ってた、PrototypingSprite_Blueprintというのを置いて作っている。だからわたしは悪くない」
「うーん、とりあえずマテリアルが違うみたいだから同じやつにしてみるか……あ、色が付きました」
妹「え、どうやったの?」
「だからマテリアルをリフトのと同じ、MaskedUnitSpriteMaterialに変えたんだよ」
妹「そんなマテリアル一覧になかったと思うんだけど……」
「リフトの方のマテリアルのことの虫眼鏡をアイコンをクリックしたら、Paper2Dのフォルダにあるみたいだったから、コンテンツブラウザでプラグインコンテンツを表示にチェック入れたら出てきた」
妹「さっきのやつは欠陥マテリアルだったのか?」
「そういうわけじゃないんだけど、元のPrototypingSpriteMaterialは、マテリアルのノードを見た感じ画像を拡大じゃなくて繰り返し表示する仕組みになってて、そのかわり色変えるのに対応してないっぽい」
妹「やっぱり欠陥じゃないか!」
「今回の場合単色の壁だから、繰り返しでも何でも一緒なんだけど……ちょっと色が変えられるようにしてみましょうか」
妹「マテリアルはよくわかんないんだけど……」
「これはそんなに難しくなさそうな気がする……PrototypingSpriteMaterialを複製して、そこにDefaultSpriteMaterialの色変えっぽい部分のノードをコピーしてきてつないで…こんな感じでどうだ」
「成功した。色が変わりつつ、同じ模様の繰り返しになってる」
妹「うーん、でもこれ絵を出す時に毎回しなきゃいけないってことだよね? マテリアルを別のに変えるとか、マテリアルのノードをつなぎ替えるとか」
「あ、そんなことはないよ。コンテンツブラウザのテクスチャを右クリックしてスプライトを作って、そこから画面にドラッグすると、PaperSpriteActor型になってて、マテリアルもMaskedUnitSpriteMaterialだから、色も普通に変わる。最初からあるリフトと同じ」
妹「そんなものかなあ。あとこれどんな風に色つけてるの? 完全に真っ赤にしたつもりでも、元の色が残ってる感じだし、どういう理屈で色つけてるんだろうかと」
「マテリアルのノードのつなぎかたで変えられるけど、初期設定ではPhotoShopでその色で塗った乗算レイヤを重ねた状態と同じみたい。赤は赤くしてるんじゃなく、青と緑の光を減らしてるだけだから、白には色が付けられるけど、黒には色が付かない」
妹「乗算レイヤは使ったことがあるからなんとなくわかった。白で作っておけば後で何色にでもなるな」