Leihuiyingxiong's Scratch@wiki
作る関連の情報(Scratch)
最終更新:
leihuiyingxiong
-
view
+ | 目次 |
作る関連の情報
- ここではScratchでの「作る関連」の情報を集めています。
BPMと拍数から秒数を逆算する
12*(拍数/4)/(BPM/20)
- 上の計算式を使えばBPMと拍数から秒数を逆算できます。
- Scratchで音ゲーなどを作る際には、これを活用することで音源と譜面をズレにくくすることができます。
Scratchのサンプル音をホラーbgmとして使う
- 「ループ」カテゴリに属している音である「Cave」をエディターで「逆向き」にするとホラーbgmっぽくなります。
色を数字で表現する
- Scratchの色は数字で表すことができます。詳しく言えば色は000000からFFFFFFまでの16進数、またはそれを10進数や2進数に変換した値で表現されます。
- ブロックに本来は入れられない文字を入れるの方法を用いれば触れた色の数値がいくつか検知するプログラムを作ることも可能です。
エディター(プレーヤー)をクラッシュさせる
+ | スクリプト(画像) |
- 上の画像のように、クローンされたら自身のクローンを作り、自身(クローン)を削除する、というスクリプトを組み合わせてから自身のクローンを作るとエディター(プレーヤー)がフリーズしてクラッシュします。
- しかし、このようにエディター(プレーヤー)をわざとクラッシュさせるプログラムをScratchコミュニティー上に共有するのは明確な規約違反であり、下手をするとBANされかねないので注意しましょう。
大きさを限界突破/
- 通常、スプライトは一定以上の大きさにすることはできません。しかし、次のやり方をするとスプライトの元の大きさに関係なくどんな大きさにもできます。
1、何も書かれていないコスチューム(0*0ピクセル)を作り、スプライトの現在のコスチュームをそれに設定する(「描く」でコスチュームを追加すると何も書かれていないコスチュームが追加されるのでお勧めです)。
2、大きさを好きな値に変更する
3、元のコスチュームに戻す
4、完成
- なお、大きさを限界突破した状態かつ、0*0ピクセルのコスチューム以外の状態で大きさを変更しようとすると強制的に一定の大きさまで戻されるので注意が必要です。
- ですが、プログラムを工夫すれば疑似的にこの仕様を突破することも可能です。詳しくはこちら。
スプライトのコスチュームをよりきれいに描画させる
- スプライトのコスチュームをビットマップモードではなく、ベクターモードにするとよりきれいに描画されやすいです。
- ビットマップモードのコスチュームの小さなドットは、プレーヤーに描画されないため、細かい点や線のあるコスチュームのスプライトは、大きさを小さくすると細かい特徴が描画されないことがあります。そういった時にはこの方法を試せばある程度は改善されます。
吹き出しを消す
- 「(こんにちは!)と言う」などのブロックを使うと吹き出しが出ます。
- 吹き出しが出ている状態で以下の画像のブロックを実行すると吹き出しを一瞬で消すことができます。
+ | 画像 |
フルスクリーンにしたことがあるか検出する
※この情報はパソコン環境下でのみ有効なようです。
- 少なくともスクラッチ3.0では一度でもフルスクリーンにすると、画面に映っているビットマップモードのコスチュームのスプライトは異なる形式で描画しなおされるようです。
- このように描画しなおされると、そのスプライトはわずかに大きくなります。
- これを利用すれば、下のプロジェクトのように、フルスクリーンにしたことがあるか検出するプログラムを作ることもできます。
+ | フルスクリーンにしたことがあるか検出するプログラム(Wifi環境下での閲覧を推奨) |
プロジェクトを止めたときだけスプライトを表示させる
- スプライトの幽霊の効果を100にしたうえで表示させることで、そのスプライトはプロジェクトを止めた時のみ可視化されます。
- 加えて、常に前に出し続ければ他のスプライトに被って見えなくなることもなくなります。
+ | スクリプトの組み方の例(画像あり) |
+ | この技術を活用した例(Wifi環境下での閲覧を推奨) |
ブロックに本来は入れられない文字を入れる
- 「〇+〇」のような計算式のブロックや「(スペース)キーが押された」のような一部の選択形式のブロックには基本的に特定の文字以外を入れることはできません。しかし、特定のやり方をすれば任意の文字を入れることができます。
- 結論から言えば、値ブロックに任意の文字を収納して、文字を入れたいブロックの丸い部分にそれをぶち込めば出来ます。下に例を置いておきますが、このやり方以外でもできます。
+ | やり方の例(画像あり) |
無限(∞)を扱う
- 演算ブロックなどで「Infinity」と入力することで「無限」(もしくは「∞」)という数字を扱うことができます。
- 無限は特殊な数であり、以下の性質を持ちます。
- どんな数よりも大きい
- どんな値を足しても引いても値が変化しない
- ただし、例外として無限で引くとエラーになる
- 無限を正の数にかけると無限になり、負の数にかけるとマイナス無限になる
- マイナス無限はどんな数よりも小さい数で絶対値は無限。Scratchの表記上では「-Infinity」となる
- 無限以外の数を無限で引くとマイナス無限になり、無限以外の数に無限を足すと無限になる
- つまるところ、無限はどんな数よりも大きい正の数のようなものです。
乱数ブロックで小数点以下の値も乱数にする
+ | 画像 |
- 上の画像のような1~10までの乱数ブロックを実行すると1~10までのいずれかの数が出力されます。しかし、この出力された数の小数点以下の値は全て0となります。
- ブロックの丸形部分に小数点(.)を含めると小数点以下の値も全て乱数となります。
+ | 例(画像あり) |
リストのall番目を削除する
- リスト系のブロックの「(リスト名)の(1)番目を削除する」の数字部分に「all」を入れて実行するとリストのアイテムがすべて削除されます。
+ | 画像 |
- しかし、今はこれをしなくても「(リスト名)のすべてを削除する」のブロックを使えば、容易にリストのアイテムをすべて削除できます。
定義ブロック内での「このスクリプトを止める」の動作
- 定義ブロック内で「このスクリプトを止める」が作動すると、その定義ブロックは作動しきったと処理され、定義を呼び出すブロックの次のスクリプトに進みます。
+ | 例(画像あり) |
プロジェクトの画面を「名前を付けて保存」した時に保存される画像の解像度
- プロジェクトの画面で右クリックをして出てくるメニューで「名前を付けて保存」を押すとその時のプロジェクトのスクリーンショットを保存できます。しかし保存されたスクショの解像度は保存した状況によって変化します。
- フルスクリーンではない状態で保存すると480*360の解像度で保存されます。
- 一方、フルスクリーンの状態で保存すると935*701の解像度で保存されるため、より高い解像度で保存できます。
- しかしこれは厳密には4:3のサイズ比ではないためこれをそのままスクラッチにアップロードすると480*360よりも小さいサイズでアップロードされてしまいます。ペイントなどの画像編集ソフトで960*720のサイズ比に編集してからアップロードするときちんと480*360のサイズ比でアップロードできます(当然、480*360のスクショをアップした時よりも解像度は高いです)。
音声合成ソフト「棒読みちゃん」の使用とゆっくりボイスの使用
- 「棒読みちゃん」はフリーで使用できる音声合成ソフトで、自分で設定したテキストを読み上げた音声を保存することができます。
- いわゆる「ゆっくりボイス」を作成して保存できます。
- 棒読みちゃんで音声を作成し、Scratchで使用することについて一部ではやってはいけないと言われていますが、これは全くのガセネタであり、実際にはやっても問題ありません。
- 棒読みちゃんは「Aquestalk」というアクエスト社が提供している規則音声合成エンジンを使用しており、これの利用規約をクリアできるかどうかが焦点です。もっと詳しく言えばScratchで共有された作品はCC BY-SAの下で公開されるので、商業利用ができるか、作成した音声を再配布ができるかが焦点です。
- 現在の規定では商業利用をするためには有償のライセンスを購入する必要がありますが、昔の規定ではそれすらも無償で行うことができると規定されていました。そして棒読みちゃんは旧版のAquestalkを利用しているため、有償のライセンスを購入しなくても商業利用が可能です。
- Aquestalkで生成された音声については、アクエスト社は権利主張を行わないと規定しているので再配布をしても問題はありません。
- アクエスト社の代表取締役の方のブログにてAquesTalkについての利用規約(ライセンス規定)とそれで生成された音声についての利用規約は別物であり、生成したAquesTalkのバージョンに関係なく生成された音声は自由に使用しても問題ない旨の文章が公表されています。
- 以上の理由から棒読みちゃんをScratchで使用することは可能です。上記のガセネタはそれなりに広まってしまっているようで、コメントで指摘されることもあるかもしれませんが、臆せずに反論しましょう。
※ただし、これはあくまで棒読みちゃんにおける話。上述の通り、現在の規定ではAquestalkの商業利用には有償のライセンスを購入する必要があるため、旧版ではないAquestalkを利用しているソフトを使用して音声を作成し、Scratchで使用する場合は有償のライセンスの購入が必要です。つまり、同じゆっくりボイスでも有償のライセンスを購入する必要がある場合とそうでない場合が存在するので注意が必要です。よく分からない方は有償ライセンスを購入するか、棒読みちゃんのみを使用することを推奨します。
「全ての音を止める」の有効範囲
- スクリプト「全ての音を止める」はプロジェクトで発生している音のほとんどを止めることはできますが、一部の音を止めることができません。
- 上述の通り、基本的にはほぼ全ての音を止めることができますが、例外は削除されたクローンが鳴らしている音。
- 下記の例のようなスクリプトを組んでからクローンを生成すると、音は鳴りますが音を鳴らしているクローンは既に削除されているため、鳴っている音を「全ての音を止める」で止めることは出来ません。
+ | スクリプトの例(画像あり) |
MusMusの素材使用について
- フリーbgm配布サイトのMusMusは、過去にScratchでの素材の使用を認めていたことがありましたが、現在では認めていません。
- 過去に認めていたとするソースは公式BBSにおけるMusMus管理人の発言のアーカイブで、現在認めていないとするソースも公式BBSにおけるMusMus管理人の発言です。
- 過去に公式BBSなどでMusMus管理人が発信した、Scratchでの素材の使用を許可する旨の発言は全て削除されており、そのうえで使用を不可とする旨の発言が行われているため、意図的に使用の認可を取り消した可能性が非常に高いです。
- 過去に認めていたとするソースは公式BBSにおけるMusMus管理人の発言のアーカイブで、現在認めていないとするソースも公式BBSにおけるMusMus管理人の発言です。
- このため、原則としてMusMusの素材をScratchで使用することは違法となります。
- ただし、例外は存在します。それはMusMus管理人がScratchでの素材の使用を認めていたと認定できる時期やそれ以前の時期に公開された素材です。
- Scratchに共有されたコンテンツは全てCC BY-SA 2.0のライセンスの下で公開されます。そして上記の素材はMusMus管理人がScratchでの使用を一度でも認めたため、CC BY-SAのライセンスも適用されていると言えます。このライセンスは一度でも適用したが最後、取り消すことは権利者でも不可能と規定されているので、MusMus管理人の意向に関わらずScratchで使用できるというわけです。
- このため、使用が許可されていた時期の素材を使用していたプロジェクトは素材を差し替える必要はありませんし、それらをリミックスすることなども一切問題ありません。ご安心ください。
- MusMus管理人がScratchでの素材の使用を認めていたと証拠付きで認定できる、最も新しい時期は恐らく2017年12月8日です(ソースはこちら)。なので少なくともその日時もしくはそれ以前に公開されていた素材は例外的に使用できます。
- 以下のアーカイブは全て2017年12月8日以前に取られたものです。従って、少なくともこれらのアーカイブに名前が載っている素材は例外的にScratchで使用することが可能です。
- Scratchに共有されたコンテンツは全てCC BY-SA 2.0のライセンスの下で公開されます。そして上記の素材はMusMus管理人がScratchでの使用を一度でも認めたため、CC BY-SAのライセンスも適用されていると言えます。このライセンスは一度でも適用したが最後、取り消すことは権利者でも不可能と規定されているので、MusMus管理人の意向に関わらずScratchで使用できるというわけです。
+ | アーカイブ一覧 |
コスチュームの順番を大きく移動させる際の小技(ブラウザ版のみ)
- Scratch 3.0では、コスチュームの順番を一度に移動させられる範囲はそのページの拡大率に反比例しています。
- デフォルトの拡大率100%の状態では移動できる範囲は小さいですが、拡大率を50%などに下げればその分移動できる範囲は大きくなります。
- PCではCtrlキー+マウスホイールの回転で簡単に拡大率を変更できるため、手間と時間を節約することができます。
「メッセージを送る」の処理速度
- 「メッセージを送る」ブロックを使用した場合、基本的にはそのフレーム内で「メッセージを受け取ったとき」ブロックの処理も実行されます。
- しかし、メッセージを受け取ったときに再びメッセージを送るという処理をする場合はその限りではないことがあります。
同じメッセージを送る場合
- メッセージを受け取ったときにそれと同じメッセージを送るという処理をする場合、送るメッセージが受け取られるのは次のフレームとなります。
- つまり、この処理を実行する場合は途中で1Fの待ちが発生するということになります。要注意。
異なるメッセージを送る場合
- メッセージを受け取ったときにそれと異なるメッセージを送るという処理をする場合、送るメッセージが受け取られるのは送る処理を行ったフレームと同じフレームになります。
- つまり、この処理を実行する場合はメッセージに関する一連の処理が全て1Fで行われることになります。
スプライトの座標の限界と限界突破
- スプライトの座標には限界が決められており、この限界を超える座標にスプライトを移動させようとすると強制的に限界の座標まで戻されます。
- 座標の限界は、スプライトがちょうど完全に画面外に出る座標から10歩だけ内側に移動した座標となっています。
- このため、座標の限界はコスチュームの大きさによって異なり、コスチュームが大きければ大きいほど限界の値も大きくなります。このため、大きさを限界突破と組み合わせることで座標を限界突破することもできます。
スプライトの座標が見た目に反映される最小単位
- スプライトの座標は1刻みでしか見た目に反映されません。
- もし座標に小数点以下の数値があった場合は、小数点第一位を四捨五入した状態が見た目に反映されます。
+ | 例 |
コメント欄
- コメントをする方法などはここをご参照ください。
- 当wikiを利用するには当wikiの利用規約に同意する必要があります。そのため、コメントの投稿も当wikiの利用規約に従って行う必要があります。
- また、当wikiを利用したと認められる方は当wikiの利用規約に同意したものとします。なので、当wikiの利用規約を確認してからコメントを投稿することを強く推奨します。
- 管理人であるLeihuiyingxiongは「Leihuiyingxiong◆」の名前で投稿を行います。
- また、コメントは40件まで表示されます。それ以上のログを見たい方は次のリンクをクリックしてください。