パペット使いへの道
もどる すすむ
パペット使いへの道

このページでは以下のことを解説しています
パペットスプライトとは何か
パペットにするためには
さて、第一の難関であるパペットの説明を始めます!わからないことがあればなんでも聞いて下さいね!

さて、いよいよパペットのお勉強ですか。難しそうだなぁ……。

最初は難しく感じるかも知れませんが、これが使えないとあとあとで困りますよ。凛さん、しんどいかも知れませんが、がんばって!

ぱぺっとすぷらいと??.......また難しそうですねぇ。「スカッとさわやかなんとやら」しか思いつかない。

ギャグ的にはおもしろいので、象印賞をさしあげます(笑)。
凛さん、このパペットスプライトをマスターしないと、面白いことはできませんよ。例えばゲームをつくるとかね。。

ぢゃ、そもそもパペットって何なの?


パペットってそもそも何?
パペットとは直訳すると「指人形」というような意味になりますね(たぶん)。普通のスプライトと違うのは、制御をLingoの方から行うということです。つまり、今までのスプライトはスコアの上に並べて、動かしたり、キャストの変更を行っていましたね。そのスプライトは動きやキャスト変更をスコアのほうから行っているということになりますね。
でも、パペットスプライトを使うと、Lingoを使っても様々なことができるようになるんですよ。たとえば......
色を変える
移動させる
半透明にする
キャストを入れ替える
キャストの大きさを変更する
etc.......
というようなことが簡単にできるようになります。

ううむ、なんのことやらよくわからない……。そもそもパペットにすることに何の利点があるんですか?さっき挙げた例なんか、別にスコア上で作ればいいぢゃないですか。

じゃあ凛さん、今から見せるムービーを作ってみてくれます?これをスコアだけで作れたら、パペットの勉強はしなくていいですよ。ふっふっふ


クリックすると色が変化しますよ

う〜ん、全部のパターンをスコアで設定するのはムリですよ。うーん、くやしい〜、ただ色が変わるだけなのに……。

ね、凛さん、降参しましたか。これはパペットの簡単な使用例の一つですよ。ちょっとスクリプトを書くだけでこんなに奥深い効果を出すことができるんです。

ふぅん、パペットって使えると便利ですね。……でもみんなそれはわかっているのに、なんで難しく思えるのかなぁ。

うーん、私の想像ですが、スクリプトを本格的に書く必要があるからではないですか。今までだとgoとかrepeat with などの簡単な単語だけでスクリプトを書くことができるのに、今回は色々書かなくてはいけませんからね。それが難しく感じる理由の一つだと思います。

ふーん、で、それは本当に難しいの?

確かに覚えないといけないコマンドはいっぱいあります。けれど、実際使うのはその中の4つぐらいですから、すぐに覚えることができますよ。最初だけですよ。難しく感じるのはね。

よ〜し、やってやるぜ。

さて、まずパペットの基礎から勉強していきましょう。


どうすればパペットになるのか
普通のスプライトをパペットスプライトに化けさせるにはこのコマンドを使います。
  puppetSprite (スプライト番号),TRUE
これは非常に大事ですね。逆にパペットを解除するときには
  puppetSprite (スプライト番号),FALSE
としておきます。パペットにする必要が無くなったら、すぐに解除するようにクセをつけておきましょうね。そうしないと予期せぬエラーの原因になります。
このコマンドからパペットの道は始まっていきます。

なるほど、このコマンドは重要なんですね。覚えておこっと。

さて、このコマンドを実行しただけでは画面上に特に変化はありません。なぜなら「パペットとして設定した」だけですからね。本当にパペットとして働いてもらうために命令を出すまでは、見分け上普通のスプライトを見分けはつきませんよ。さ、パペットに何か命令を出しましょう。

え?どんな命令を出せばいいのでしょうか。

あ、そうか凛さんは命令のだし方を知らなかったんですね。 パペットスプライトに何か命令を送るときの書式ですが、
   set (スプライトの性質)to (何らかの値)
という形で指定してやります。ここで述べているスプライトの性質というのを難しい言葉ではプロパティと呼びます。以下にその性質の代表的なものについてまとめてみました。

the forecolor
----スプライトの色(描画色)を示します
 set the forecolor of sprite 1 to 224
 スプライトの描画色を(パレットの)224番の色にします

the locH
----スプライトの水平位置を示します
 set the locH of sprite 1 to 245
 スプライト1の水平座標を245に設定します

the locV
----スプライトの垂直位置を示します
 set the locV of sprite 1 to 100
 スプライト1の垂直座標を100に設定します

the castNum
----スプライトの使用するキャスト番号を示します
 set the castNum of sprite 1 to 24
 スプライト1の画像キャストをキャストパレットの24番の画像にします。

the visible
----スプライトを画面表示するかしないかを示します
 set the visible of sprite 1 to False
 スプライト1を見えなくします

ま、だいたいこんなところでしょうか。これだけ知っていれば、かなりのことができますね。

ぢゃ、たとえばスプライト1に何かキャストを配置したとしますね。そのキャストをパペットにするには
   puppetSprite 1,TRUE
って書けばいいんですね。そして、ええと、たとえば座標(100,200)の場所に表示させたかったら、
  set the locH of sprite 1 to 100
  set the locV of sprite 1 to 200
って書いてやればいいのですね。では早速....
(時間経過)あれ?何も表示されませんよ。どうなっているの?

いろんな原因が考えられますね。

(1)パペット化したいスプライトに何もキャストが入っていないときにパペット宣言をしていませんでしたか?
==>スプライト宣言をするタイミングを調整して下さい。

(2)フレーム移動が行われていますか?
==>パペットスプライトはフレームの移動がないと再描画されません。解決方法としてはフレーム移動を行うようにするか、コマンドupdatestageを使って下さい(後者の方が便利です)。

(3)パペットが用済みになったら、FALSEにしていますか?
==>さきほどパペット宣言を行いましたが、ムービー終了時に念のために、パペットを解除しておきましょう。そのためのハンドラは
on stopMovie
 puppetSprite (スプライト番号),FALSE
end

と書くのがよいでしょう。どんな形にせよムービーが停止した時点でパペット化されたスプライトは通常に戻ります。

よし、これでいろんなプロパティを変更して練習してみます。あとでパペットの使いかたを教えて下さいね。

はい、ではサンプルを作ってみました。全部のスクリプトが書いてありますので、参考になれば嬉しいです。

水平方向に移動
垂直方向に移動
縦横に移動
透明度を変更
すすむ次に進む


(c)Akira SAno 1996.1997
一応こんなページでも著作権は佐野彰に存在します
リンクフリーですが、メールでご連絡頂けたら嬉しいです。
homeホームに戻る