こんにちは。または初めまして。伺か・伺的AdventCalender2024 7日目の記事です。6日は墨鼠さんの「はじめてでもゴーストを完成させる15の方法 - 葉脈と潮流」でした。
本日はシェルを作るときに使用する合成方法「insert」と「reduce」について書こうと思います。シェルの作り方に関しましてはUKADOC
をご覧ください。
insertって?
insertは着せ替えの順番を予約する合成方法です。例えばスカーフの着せ替えがあるとします。服Aが選択された時は上に、服Bの時は下になるよう調整するのにはinsertを使用します。
画像はシャツの下にスカーフが来るようにしました。
こちらでは服の上にスカーフが来ていることが分かります。
次は手順についてお伝えします。
insertと合成方法
リボンをinsertとaddidで合成しましょう。addidとはdescript.txtで使用できる合成方法です。ある着せ替えが有効になったときに追加で合成されます。
今回は以下の画像の服Bの時にだけ襟を上になるようにします。
服A
服B
リボンを襟の下に合成するためには、着せ替えに使うパーツにanimation番号を記述します。服Bはsurface50番です。表情になどに使用するサーフェスでは無い点に注意してください。
animetion1055がリボンと襟を合成したパーツになります。
insertに使用するのはanimetion番号です。サーフェスの番号と間違えないようにしましょう。
insertに使用するパーツは合成元のanimetion番号よりも大きい数値にします。元の着せ替えであるリボンは1000番でしたが、insert用のリボンは1099番にしています。
その他の注意点としましては合成元になるパーツが同じサーフェスにない場合、エラーになります。他のサーフェスにあるパーツを呼び出す事はできません。
insertを書くときは合成元のパーツから記述すると良いでしょう。今回の場合はanimetion1099を先に記述し、次にinsertを使用するanimetion1000を記述すればエラーを未然に防げます。
reduceを使おう
reduseは透明度で画像を切り抜く効果があります。不透明な部分は表示して透明な部分は無くなってしまうと考えてよいです。さて、どんな時に役に立つのでしょうか?
先ほどの服の画像です。このような袖がふんわりとした服の上にジャケット等の袖が細めの服を重ねたい時もあります。
しかし、そのまま合成すると下の画像のように下の袖が見えてしまいます。
その際、服B+ジャケットを組み合わせた物を別の着せ替えととして用意する事もあるでしょう。服が少ないときは良いのですが、組み合わせの数が増えるとメニューに表示する項目の数が増えます。そんな時に役に立つのがreduceです。
reduceを使おう
reduceには全身の画像が必要です。画像編集ソフトなどでシルエットを作成します。着せ替えに使用したアイテムを組み合わせました。
黒い部分で囲まれたのっぺらぼうの画像がreduceで使用した物です。
広がった半ズボンが削れてしまいました。reduceは不透明な部分の範囲に注意しないと、このような結果になります。
修正したのがこちらです。今度はちゃんと切り抜けました。
reduceと注意点
便利ではあるのですが「パーツ同士が隣接しているとreduce単体では使いづらい」と言う点があります。
腕組みをしているサーフェスがあるシェルです。下の袖とはみ出しをreduceで切り抜きたいところですが問題の箇所が内側にあります。reduceは不透明度な箇所を表示して、透明な個所は切り抜きます。そうなると腕だけ切り抜きたくても表示のためには不透明である必要があります。
そんな時の対処法
reduceは外側を切り抜く事だけにして内側のジャケットの部分ではみ出した部分を胴体でのパーツで上書きします。これで袖が無くなったのと同じことになります。後はジャケットの部分をdescript.txtのaddidで追加する部分のパーツにreduceを記述し、外側のはみだしをなくしたら、上からジャケットの表示に必要なパーツを合成します。
以下に記述しました
腕組みのサーフェスであるsurface9に追加処理としてsurface.appendを記述して処理を書いています。surface0と使用できるのは一回ですが、surface.append0とすると何ヶ所でもsurface.append0と記述できます。
こちらはdescript.txtですaddidを記述できます。
シャツブラウスです。
reduceはジャケットとボレロで違う画像を使うことができます。
着せ替えごとに用意してみるのも良いと思います。
そして出来上がったのがこちらです。
最後に
今回はinsertとreduceについてお伝えしました。私自身、まだ理解しきれていない箇所もあるため、もっとこうしたら良いと言う方法や間違いなどがありましたらコメントまでお願いします。
明日、12月8日はnetai98さんの「里々って何だよ(哲学)」です。皆さんお楽しみに!