Discuss Scratch

inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

バージョンと変更履歴の調べ方についての情報へのリンクです。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
-p-e-n-
Scratcher
81 posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

apple502j wrote:

朗報。Scratch LinkとScratch Desktopがオープンソース化。

https://github.com/LLK/scratch-desktop
https://github.com/LLK/scratch-link
これで少しだけ楽にハックできますね。

アッポーペンかなやっぱw
一応オタクだから彼女いないし、俺って退けない性格だしそこら辺とかめっちゃ似てるって言われない()
握力も-110キロあってクラスの女子に叩かれる←彼女いないからやめるな!w
俺、これでもScratcherですよ? メモメモ
ps 彼女はいません(聞いてたw) 中の人は人間より鳥と犬が好きです 最終更新:2020年8月18日AM7:24
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

inoking wrote:

バージョンと変更履歴の調べ方についての情報へのリンクです。
ここに書かれているような Git の各ブランチやタグが何なのかとかといった情報は
どうやって調べればよいのですか?

すみません、Git は実用レベルでは使ったことないもので。。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
apple502j
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

developブランチが「最新版」
masterブランチが「本番環境」です。

簡単に説明? しますと、(まだ簡単でないかもしれませんが)
https://github.com/LLK/scratch-www/blob/master/package.json
このpackage.jsonは本番環境のもので、「scratch-gui」のところに「いつの時点のscratch-guiか」が書いてあります。
 "scratch-gui": "0.1.0-prerelease.20190418155019",
つまり、scratch-guiのバージョンは「20190418155019」です。

https://github.com/LLK/scratch-gui/releases を見てバージョンで検索すると、今回は「20190418155019」が見つかりました。
その時点のscratch-guiの中身を見るには、-○- マークの右の英数字の羅列をクリックします。(下図黄色部分)


その後、「Browse files」をクリックします。(右上)
そのあと、「package.json」を選びます。
その中の
 "scratch-vm": "0.2.0-prerelease.20190417203423",
が、現在のVMのバージョンです。

署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

apple502j さん、ありがとうございます 。
こちら

apple502j wrote:

変更内容を確認する最善の方法は、scratch-系のリポジトリをWatchしたり、scratch-wwwのmaster向きプルリクがないか検索したりすることです。
「master向きプルリクがないか検索」についてです。
https://github.com/LLK/scratch-www/pulls?q=is%3Apr+is%3Aclosed
で左端のアイコンが紫の「Merged pull request」になっているものを探すというので合ってますか?

#46 の例の場合、日付からすると
https://github.com/LLK/scratch-www/pull/2910
だと思うのですがそこには
「Pull in latest scratch-gui」
とあり、更にたどると
https://github.com/LLK/scratch-www/pull/2910/commits/9aab911d67e0fa6960b56e5f33c8fc077d444425
「20190417215243」とあり
#46 に書かれている「20190418155019」とは異なっています。
この調べ方のどこがおかしいのでしょうか?

Last edited by inoking (April 20, 2019 15:43:18)


これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
apple502j
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

https://github.com/LLK/scratch-www/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+base%3Amaster
この検索が一番正確です。
いまのscratch-gui最新版は20190419211608ですね。
https://github.com/LLK/scratch-www/pull/2914/files

基本master向きのプルリクは「[master]」で始まります。

Last edited by apple502j (April 20, 2019 15:53:34)


署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

あぁ、
プル内容の「Commits」のほうではなく「Files changed」のほうを見ればいいのですね。
それで見ると
2910 についても
https://github.com/LLK/scratch-www/pull/2910/files
で「20190418155019」となり #46 の話と一致しました。

ありがとうございます。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

特定のバージョンの状態に戻して、または、ブロックの処理を変更して、動作確認をしたい場合
どれどれをビルドすればよいのでしょうか?

Scratch 2.0 の場合、
scratch-flash をビルドして
できた Scratch.swf をオフラインエディターのインストール先のものと差し替えると
実現できていました。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
apple502j
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

特定のバージョンの状態に戻すときは、zipファイルをダウンロードするのが一番簡単です。


実行時は
npm start
を行った後、「localhost:8601」にアクセスします。

初回実行時は最初に「npm i」がいります。
また、scratch-vmなどの変更を反映させたい場合は、ja:Scratch 3.0の拡張機能を作ってみよう/下準備のように、npm linkを使います。

Last edited by apple502j (April 21, 2019 07:13:04)


署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

重い腰を上げ、Scratch 3.0の拡張機能を作ってみようにしたがって環境構築してみました。
おかげさまでソースから実行まで出来るようになりました。ありがとうございました。

一点だけ、
npm start
のところが分かりにくかったです。
「npm start を実行し「Compiled successfully.」が出たら、そのままブラウザで http://localhost:8601/ にアクセスする」
ということが分からず、コマンド応答が帰ってこないのをずっと待っていました
また、Ctrl+C で終了することも書いてあったほうがより良いかと思います。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

スケジューリング処理が変わった? について:

inoking wrote:

ここ一週間くらいで
スケジューリング処理が変わった気がします。

FPS を自動で調整するために
各スプライトで待ち合わせをしている作品があるのですが
それがカクカク動くようになってしまいました。
scratch-vm を scratch-vm:20190321151527 (scratch-gui:20190321152316 付属分) に差し替えると発生せず
scratch-vm を scratch-vm:20190329172358 (scratch-gui:20190404100408 付属分) に差し替えると発生する
ことが分かりました。

さらに調査すると scratch-vm:20190321151527 に対し
Make Scratch 3 project timer more compatible with Scratch 2 currentMS… の以下4ファイルを差し替えただけで発生することが分かりました。
・src/engine/block-utility.js
・src/engine/runtime.js
・src/engine/sequencer.js
・src/io/clock.js
「タイマーを、より Scratch 2 に互換のあるものにする」というタイトルなので、
既存のプロジェクトが動かなくなっている以上、これはバグですね。

直してもらうには「Issues」に上げるのが手順だと思いますが
再現プロジェクトを作ったりといったことを考えると頭が痛いです。。。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

朗報:
50MB のプロジェクトサイズ制限がなくなっているようです(いつからそうだったのかは不明)。
scratch-gui, scratch-vm のソースから検索してもそれらしいところは見つかりませんでした。

実際、58MB の .sb3 を保存できました。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
apple502j
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

逆にバグではないでしょうか。
サイズ制限をなくす提案は却下されています。
https://scratch.mit.edu/discuss/topic/50874/?page=12#post-3288913

署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

#53 について:

すみません、作品側のバグでした。
再現プロジェクトを作るために絞り込んでいくなかで発見しました。

Scratch 2.0 と比べると動作は変わったことになりますが
そもそも使い方が間違っていたのでシステム側は問題ありません。

元々バグであったものが、スケジューリング処理が変わったために発現したようです。

お騒がせして申し訳ありませんでした。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
oyamaa
New to Scratch
5 posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

エディタに最初からあるブロックを表示させないようにすることはできるのでしょうか。
「ブロック定義」というのは使わないので隠したいと考えています。
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

あ、そういえば、、
フォーラムのソースは別管理なのでしたね。
https://scratch.mit.edu/discuss/post/3354832/
https://scratch.mit.edu/discuss/post/3356123/

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
apple502j
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

oyamaa wrote:

エディタに最初からあるブロックを表示させないようにすることはできるのでしょうか。
「ブロック定義」というのは使わないので隠したいと考えています。
scratch-blocksの改造ですね。
やったことがないのでわかりませんが、難しそうな予感がします。

署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

apple502j wrote:

oyamaa wrote:

エディタに最初からあるブロックを表示させないようにすることはできるのでしょうか。
「ブロック定義」というのは使わないので隠したいと考えています。
scratch-blocksの改造ですね。
やったことがないのでわかりませんが、難しそうな予感がします。
以下を外せばサクッと外れそうな気もします。
https://github.com/LLK/scratch-blocks/blob/develop/blocks_vertical/default_toolbox.js
  '<category name="%{BKY_CATEGORY_MYBLOCKS}" id="more" colour="#FF6680" secondaryColour="#FF4D6A" custom="PROCEDURE">' +
'</category>' +
※行指定してリンク張るのってどうするのでしょう?

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
T-taku
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

inoking wrote:

apple502j wrote:

oyamaa wrote:

エディタに最初からあるブロックを表示させないようにすることはできるのでしょうか。
「ブロック定義」というのは使わないので隠したいと考えています。
scratch-blocksの改造ですね。
やったことがないのでわかりませんが、難しそうな予感がします。
※行指定してリンク張るのってどうするのでしょう?
行の番号にカーソルを載せて「・・・」をクリックしてCopy permalink をクリックしたらリンクがコピーされるはずです

Last edited by T-taku (May 6, 2019 14:20:50)


inoking
Scratcher
1000+ posts

Scratch 3.0 をハック(動作や構造を解析すること)しよう!

T-taku wrote:

行の番号にカーソルを載せて「・・・」をクリックしてCopy permalink をクリックしたらリンクがコピーされるはずです
ありがとうございます。
#Lxx を付加するといいみたいですね。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている

Powered by DjangoBB