Lingoを極める |
このページでは以下のことを解説しています
[Lingoの道]
より進んだムービーを作るためにはLingoを扱う必要があります。簡単なものからマスターしていくことにしましょう。 |
さて、今まで色々なLingoを使ってきましたね。でもこれからいよいよ荊の道を進むことになります。人はそれを「Lingoの道」と呼んでいますが……
「それを通り抜けた者には、多くの可能性が与えられる」って言いたいんでしょ。それはもうイヤってほど聞いたから……。
……
なんかLingoって難しい用語が多いじゃないですか。そこら辺がイヤなんですよ。
確かにそう言われればそうですね。じゃ、Lingoに関して初歩の初歩から説明をしていくことにしましょう。
さて、まずは「スクリプト」の説明から始めましょう。このスクリプトって言葉ですけど、たぶん「プログラム」って言葉に近いんだと思いますよ。色々な命令を正しく書いているもの、それを「スクリプト」って言います。ま、言葉の意味からすると「書いたモノ」って意味ですよね。
でもDirectorの場合、スクリプトってどんな形になっているの?
そこら辺が他のプログラムとかと違ってややこしいんですよね。
少し説明が長くなりますが、昔のBASICとかの言語だと、プログラムってのは一続きの形をしていましたよね。一つの長〜い文章で、一つのプログラムとして動作していましたよね。
しかし、このLingoではそんなことはありません。色々な小さな命令が集まって、目的に応じてそれが動作するという形になっています。「オブジェクト指向」なんて難しい言葉もありますが、それはともかく、小さな命令が必要に応じて動くので、スクリプトも一つだけでなく、多くの小さい命令が集まっています。
小さな命令ってどういうこと?
例えば下のムービーをみてみましょう。
この場合はユーザーがどんな行動をしてくるのかわかりませんよね。どれをクリックするのか、もしくはクリックしないかもしれない。このような場合のスクリプトが一つだけでは具合が悪いわけですね。ですから、今回は「赤くするスクリプト」「青くするスクリプト」「ビープ音を出すスクリプト」と三つ用意しています。それぞれが必要な時、つまりクリックされた時に動作して、色を変えたりするようになっています。
Lingoにはユーザーからの行動を待って動作するスクリプトしかないの?
いえいえ、そんな事ないですよ。例えば「一定時間がたったら動作するようにするスクリプト」や「何も反応が無かったら動作するもの」「ある特定の条件を満たすと動作するスクリプト」「常に動作しているスクリプト」等など色々ありますよ。それらを必要に応じて使い分けていくことが大事ですね。
確かLingoの場合、スクリプトってスコアスクリプトとか、キャストスクリプトとか親スクリプトとか色々な種類がありましたよね。それらの違いは?
いっぱいあるのですが、簡単に説明しておきます。
ハンドラ名 | 説明・用法 |
---|---|
フレームスクリプト |
・ムービーは基本的にフレームの流れを持ちます(スコアだと左から右への動き)。フレームを移動するときに何かの命令を実行したいときに用います。 ・例)最終フレームを出たときに、最初のフレームに戻る(ループするとき) |
キャストスクリプト |
・キャスト(画像)自体に埋め込むスクリプトです。on mouseUp ~などで始まります ・例)小さなグラフィックをボタンとして使ったりするとき |
スプライトスクリプト | ・スコアの上で設定するスクリプトのこと。セルを選択して、書き込みます ・同一キャストでありながら、フレームやチャンネルによって動作が違う場合 |
ムービースクリプト |
・ムービー開始時や、終了時に実行されるスクリプト等をさします(本当はもっと色々な説明があります) ・ムービー開始時に様々な初期設定を行いたい場合など |
あた ま が い た い……
ま、あまり深く考えないでいいですよ。こんなものはやっていく内に覚えていくもんですよ。それよりも、ハンドラについて覚えましょう!
じゃ、「ハンドラって何ですか?」
ハンドラってどう説明したらいいですかねぇ……「ツアー旅行みたいなもの」とでも言えばいいのでしょうか?
??
色々な命令をひとまとめにした便利なモノですよ。例えば「ボタンを押すと音がなって、メッセージが出て、キャストの色を変える」という命令を実行したい場合を想定してみましょう。
全然わかりません。
ううむ、そうくると思った。じゃ、もっとわかりやすいところから説明していきましょう。まず新しいハンドラの作り方からですね。
Directorの場合だと、<ウィンドウ>メニューから<スクリプト>を選択しましょう。どうです?できました?
はい、何も書かれていない真っ白な何かがでてきました。
じゃ、そこにハンドラを書き込んでいきましょう。まず基本的な書式の大原則からマスターしましょう。「ハンドラはonで始まりendで終わる」。
解説すると、ハンドラ名というのは、「on ハンドラ名」という文章で始まり、「end (ハンドラ名)」で終わるようになっているんですね。その間に色々な命令を書いていって、サンドイッチのように挟み込んでしまうのです。
他のスクリプトの中で、これを実行させたいときはハンドラ名を書くだけで大丈夫なんですよ。
on test
色々な命令
(以下略)
end
ふむふむ、その間に色々な挟み込んでセットにしてまとめておくのですね。そうすると「同じ命令や長い命令等をひとまとめにしておくと、あとで便利になるんですよ。」という結論でまとめるんでしょ?
…………ううむ、先を読まれていたようですね。はい、そのとおりです。onとendの間に色々な命令を書いておくと、後々便利になるんですよ。何回も長い命令を書いたりする必要が無くなりますからね。
だいぶわかってきたわ。そうそう、ハンドラ名ってなんでもかまわないの?
はい、何でもいいですよ。on usiでもon yakanでもon Hogehogeでも構いません。ただ、あとで混乱しないようにしておくべきでしょうし、異様に長い名前はムービーサイズにも響いてきますからね。注意して下さい。
よ〜し、この調子でいってみるぜ!