Discuss Scratch
- kakurenbo
-
500+ posts
Scratch 3.0 の拡張機能について話すトピック
パラパラ漫画を思い浮かべてみましょう。 100%penの方法がよくわかりません
どんどん絵が変わっていくことにより、絵が動いて見えますよね。
100%penもそれと同じで、少しずつ変化させながら、penのみを使って描く、消すを繰り返しています。
ずっと定義を使うと、「画面を再描画せずに実行」が出来るので、
消す
描く::grey
end
一瞬で描いたように見えるのです。
なお、この様な質問には、今後、質問コーナーを使うと、もっと沢山の方から回答をもらえたり、
更に詳しい事も知れたりします。
google検索等を使うのも一つの手でしょう。
質問コーナーを使うときは、#1をよく読んで、「何々を作っていって、この様な問題があり、どこをどうしたら改善されるか?」の様に、なるべく詳しく質問すると、もっともっとよい回答が得られるでしょう。
追記:penに関しては pen使い減少中についてを利用してみても良いかもしれません。
Last edited by kakurenbo (April 14, 2019 03:32:55)
- kotatsurin
-
4 posts
Scratch 3.0 の拡張機能について話すトピック
初めまして。kotatsu (こたつ)です。
作り始めた3.0拡張機能の紹介とアドバイスなども欲しくて投稿します。
非接触ICカードリーダーのPaSoRiパソリRC-S380をScratchで使えるようにしたいと思い、「PaSoRich」パソリッチ(仮名)という機能拡張を作り始めました。
まだ、作り始めたばかりで意図した動きにはほど遠いです。それでも、将来的には身近にあるICカードを組み合わせた楽しいScratchプロジェクトが作れるようになるといいなと思って、作業を続けてみたいと思っています。
正直、Javascriptで本格的にプログラミングするのは初めてで、3.0拡張機能やパソリのこともいろんなWebサイトを調べて参考にさせてもらいながら作っています。これでいいのか、どうしたら繰り返して成功できるのか、いろいろまだわかりません。
どんなことでもいいので、アドバイスや感想をもらえると嬉しいです。
(ディスカッションフォーラムへの書き込みも初めてです。私が何か分かってないことがあれば教えてください。)
作り始めた3.0拡張機能の紹介とアドバイスなども欲しくて投稿します。
非接触ICカードリーダーのPaSoRiパソリRC-S380をScratchで使えるようにしたいと思い、「PaSoRich」パソリッチ(仮名)という機能拡張を作り始めました。
まだ、作り始めたばかりで意図した動きにはほど遠いです。それでも、将来的には身近にあるICカードを組み合わせた楽しいScratchプロジェクトが作れるようになるといいなと思って、作業を続けてみたいと思っています。
正直、Javascriptで本格的にプログラミングするのは初めてで、3.0拡張機能やパソリのこともいろんなWebサイトを調べて参考にさせてもらいながら作っています。これでいいのか、どうしたら繰り返して成功できるのか、いろいろまだわかりません。
どんなことでもいいので、アドバイスや感想をもらえると嬉しいです。
(ディスカッションフォーラムへの書き込みも初めてです。私が何か分かってないことがあれば教えてください。)
Last edited by kotatsurin (May 27, 2019 13:43:30)
- inoking
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
Scratch 3.0 をハック(動作や構造を解析すること)しよう! というトピックもあるので
そちらも参考になると思います。
GitHub に登録されているファイルからして既にご存知な内容かもしれませんが
例えばここなど。
そちらも参考になると思います。
GitHub に登録されているファイルからして既にご存知な内容かもしれませんが
例えばここなど。
- kotatsurin
-
4 posts
Scratch 3.0 の拡張機能について話すトピック
Scratch 3.0 をハック(動作や構造を解析すること)しよう! というトピックもあるので
そちらも参考になると思います。
GitHub に登録されているファイルからして既にご存知な内容かもしれませんが
例えばここなど。
ありがとうございます!
いろんな情報を駆け足で巡っただけでしたので、この機会にゆっくり読んで勉強したいと思います。
- kotatsurin
-
4 posts
Scratch 3.0 の拡張機能について話すトピック
初めまして。kotatsu (こたつ)です。
作り始めた3.0拡張機能の紹介とアドバイスなども欲しくて投稿します。
いろいろ見直しをして,かなり意図した動きに近いものが出来てきました。
どんな応用が出来るかを考えながら,ブロック構成や裏側のロジックをブラッシュアップしてみます。
提供方法についてご示唆があれば,いただけると助かります。
Last edited by kotatsurin (March 8, 2020 09:32:12)
- kotatsurin
-
4 posts
Scratch 3.0 の拡張機能について話すトピック
ICカードリーダーを使えるようにする拡張機能「PaSoRich」を試すデモサイトを作ってみました。
Scratch 3.0 GUI with PaSoRich
ご意見やご感想,アイデアやアドバイスなど随時いただけると有り難いです。ぜひお試しください。
Scratch 3.0 GUI with PaSoRich
ご意見やご感想,アイデアやアドバイスなど随時いただけると有り難いです。ぜひお試しください。
Last edited by kotatsurin (March 8, 2020 09:31:35)
- peachboy4310
-
2 posts
Scratch 3.0 の拡張機能について話すトピック
はじめまして。peachboy4310です。
現在scratch linkを利用して自作ロボットをBT接続し制御を行えるようにしたいと考えています。
参考にEV3の実装内容を見てみたのですが、BT接続対象となるものの検出を行う時に、peripheralOptionsという情報を与えて絞り込みを行っているようでした。
フォーラムの皆様の中で、このperipheralOptionsの内容について何等かの情報をお持ちのようでしたら、教えて頂ければ幸いです。
現在scratch linkを利用して自作ロボットをBT接続し制御を行えるようにしたいと考えています。
参考にEV3の実装内容を見てみたのですが、BT接続対象となるものの検出を行う時に、peripheralOptionsという情報を与えて絞り込みを行っているようでした。
フォーラムの皆様の中で、このperipheralOptionsの内容について何等かの情報をお持ちのようでしたら、教えて頂ければ幸いです。
- apple502j
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
peripheralOptionsは、majorDeviceClassとminorDeviceClassのobjectです。 はじめまして。peachboy4310です。
現在scratch linkを利用して自作ロボットをBT接続し制御を行えるようにしたいと考えています。
参考にEV3の実装内容を見てみたのですが、BT接続対象となるものの検出を行う時に、peripheralOptionsという情報を与えて絞り込みを行っているようでした。
フォーラムの皆様の中で、このperipheralOptionsの内容について何等かの情報をお持ちのようでしたら、教えて頂ければ幸いです。
これらはScratch LinkにてBluetoothClassOfDevice.FromPartsに渡します。
文献ではこれらはBluetoothデバイスの絞り込みに使われているようです。
https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.bluetoothclassofdevice.fromparts
- peachboy4310
-
2 posts
Scratch 3.0 の拡張機能について話すトピック
peripheralOptionsは、majorDeviceClassとminorDeviceClassのobjectです。 はじめまして。peachboy4310です。
現在scratch linkを利用して自作ロボットをBT接続し制御を行えるようにしたいと考えています。
参考にEV3の実装内容を見てみたのですが、BT接続対象となるものの検出を行う時に、peripheralOptionsという情報を与えて絞り込みを行っているようでした。
フォーラムの皆様の中で、このperipheralOptionsの内容について何等かの情報をお持ちのようでしたら、教えて頂ければ幸いです。
これらはScratch LinkにてBluetoothClassOfDevice.FromPartsに渡します。
文献ではこれらはBluetoothデバイスの絞り込みに使われているようです。
https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.bluetoothclassofdevice.fromparts
ありがとうございます。
参照先に詳細内容が記載されておりました。
実際に検出可能か試してみようと思います。
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
初めまして、そーたメイです。一つ質問させて下さい。
現在発売中 及び 開発中ロボットのscratch3.0対応のため、extensionを追加して下記サイトで準備中です。
http://sohta02.sakura.ne.jp/tukurutch/
ロボットとはwifi接続でscratch link不使用、Win/MAC/android/iOS対応予定です。
ユーザー様にロボットのsb3サンプルプログラムを提供したいのですが、sb3ファイルを配布した場合
<sb3ダウンロード> - <ローカルに保存> - scratch3.0から<コンピューターから読み込む>
という手順になってしまい、特にスマフォでユーザー様操作の難易度が高くなってしまいます。
そこで https://scratch-mit-edu.ezproxyberklee.flo.org/projects/102478814/ の のように、
そーたメイ サイト上に下記のようなリンクを置いてクリックによりscratch3.0でsb3サンプルプログラムを開きたいのですが、
http://sohta02.sakura.ne.jp/tukurutch/open?file=sample1.sb3 ※sample1.sb3はhttp://sohta02.sakura.ne.jp/tukurutch/sample1.sb3
URL クエリパラメータなどの方法で同じwebサーバ上のサンプルプログラムを開くことは出来ないでしょうか。
現在発売中 及び 開発中ロボットのscratch3.0対応のため、extensionを追加して下記サイトで準備中です。
http://sohta02.sakura.ne.jp/tukurutch/
ロボットとはwifi接続でscratch link不使用、Win/MAC/android/iOS対応予定です。
ユーザー様にロボットのsb3サンプルプログラムを提供したいのですが、sb3ファイルを配布した場合
<sb3ダウンロード> - <ローカルに保存> - scratch3.0から<コンピューターから読み込む>
という手順になってしまい、特にスマフォでユーザー様操作の難易度が高くなってしまいます。
そこで https://scratch-mit-edu.ezproxyberklee.flo.org/projects/102478814/ の のように、
そーたメイ サイト上に下記のようなリンクを置いてクリックによりscratch3.0でsb3サンプルプログラムを開きたいのですが、
http://sohta02.sakura.ne.jp/tukurutch/open?file=sample1.sb3 ※sample1.sb3はhttp://sohta02.sakura.ne.jp/tukurutch/sample1.sb3
URL クエリパラメータなどの方法で同じwebサーバ上のサンプルプログラムを開くことは出来ないでしょうか。
Last edited by sohtamei (July 18, 2020 19:56:57)
- inoking
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
これは拡張機能というよりも Mod の配布方法の話題かと思います。
だとすると、どちらかというと Scratch 3.0 をハック(動作や構造を解析すること)しよう! のほうが適している気がします。
私はこの辺詳しくないのですが
Scratch というより独自サイト側の実装の話ではないでしょうか?
「URL クエリパラメータ 取得」とかで検索すると色々方法が出ているようなので
参考にされてみてはいかがでしょうか。
そういう話でなかったらすみません。。
だとすると、どちらかというと Scratch 3.0 をハック(動作や構造を解析すること)しよう! のほうが適している気がします。
私はこの辺詳しくないのですが
Scratch というより独自サイト側の実装の話ではないでしょうか?
「URL クエリパラメータ 取得」とかで検索すると色々方法が出ているようなので
参考にされてみてはいかがでしょうか。
そういう話でなかったらすみません。。
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
inokingさん、
ご返答ありがとうございます!
色々と調べた結果、いちおう出来ました!
http://sohta02.sakura.ne.jp/tukurutch/#412506341
- #+数字で対象となるsb3 (のproject.json) を読み込める
- 拡張機能を追加したsb3はprojects.scratch.mit.eduには置けない
- デフォルトではprojects.scratch.mit.eduを参照しに行ってしまうためlocalのscratchのカスタマイズが必要
ご返答ありがとうございます!
色々と調べた結果、いちおう出来ました!
http://sohta02.sakura.ne.jp/tukurutch/#412506341
- #+数字で対象となるsb3 (のproject.json) を読み込める
- 拡張機能を追加したsb3はprojects.scratch.mit.eduには置けない
- デフォルトではprojects.scratch.mit.eduを参照しに行ってしまうためlocalのscratchのカスタマイズが必要
- inoking
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
動くなったようでよかったです 
ちなみに
これは基にしたソースにそのような機能が備わっていたということでしょうか?
それとも sohtamei さんが何か組み込まれたのでしょうか?

ちなみに
これは基にしたソースにそのような機能が備わっていたということでしょうか?
それとも sohtamei さんが何か組み込まれたのでしょうか?
- abee
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
ScratchXにはそういう機能(loadFromURLParameter)があったなあと思って調べていたら、すでに解決されていましたね。よかったです。
sb3ではなく、拡張機能のURLからのダイナミックローディングは、Sheep_makerさんの「E羊icques」(文字化けじゃなくて本当にこんな名前)でもやっています。
sb3ではなく、拡張機能のURLからのダイナミックローディングは、Sheep_makerさんの「E羊icques」(文字化けじゃなくて本当にこんな名前)でもやっています。
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
inokingさん、abeeさん、
●scratch3.0はクラウド保存が原則になります。保存形式はsb3に似てますが、ビミョーに異なります。
共通:project.json(プログラム本体) とassets (wav, svg, png) で構成される
ローカル保存:上記ファイルをzip圧縮 (.sb3)
クラウド保存 (例:project ID=412506341、assets=f5cf1fc58bbc69bf8dd47f904e08cb91.pngのとき):
project.json - https://mv-ezproxy-com.ezproxyberklee.flo.org/412506341
assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/9230a0b1c1176bf5ce32b3a79f16405b.png
●project ID=412506341として下記2つのサーバーに別のsb3を登録してみました。
scratch.mit.edu に “Scratch 3.0 is here!.sb3”
sohta02.sakura.ne.jp/tukurutch に “オシロスコープ.sb3(独自ext入り)”
それぞれのスクラッチ実行環境では、project IDが同じでもサーバー設定により読み込まれるprojectが異なります。
1. 本家 https://scratch-mit-edu.ezproxyberklee.flo.org/projects/412506341/editor
2. ユカイ工房さんカスタマイズ https://kurikit.ux-xu.com/scratch/#412506341
3. そーたメイカスタマイズ http://sohta02.sakura.ne.jp/tukurutch/#412506341
1と2は “Scratch 3.0 is here!.sb3” になります。独自でscratchサーバーを立ててもprojectの参照先はscratch.mit.eduになります。
3は “オシロスコープ.sb3” になります。project参照先を下記の通り変更しています。
# scratch-gui/src/lib/project-fetcher-hoc.jsx
ProjectFetcherComponent.defaultProps = {
//assetHost: 'https://mv-ezproxy-com.ezproxyberklee.flo.org',
//projectHost: 'https://mv-ezproxy-com.ezproxyberklee.flo.org'
assetHost: 'http://sohta02.sakura.ne.jp/tukurutch',
projectHost: 'http://sohta02.sakura.ne.jp/tukurutch/internalapi'
};
●まとめ
- scratch3.0ではsb3を読み込むときあらかじめサーバ上でzip展開&ファイル名変更 (project.json→9桁projectID) しておく必要がある。
- 独自extを使ったsb3はscratch.mit.eduには置けないため自分のサーバーで公開する必要がある。
またその場合参照先をscratch.mit.edu→自分のサーバーに変更しておく必要がある
- サンプルのリンク方法は<自分のscratch実行環境>/#<9桁projectID>
上記間違っていたり、もっとシンプルな方法があったらすみません!
●scratch3.0はクラウド保存が原則になります。保存形式はsb3に似てますが、ビミョーに異なります。
共通:project.json(プログラム本体) とassets (wav, svg, png) で構成される
ローカル保存:上記ファイルをzip圧縮 (.sb3)
クラウド保存 (例:project ID=412506341、assets=f5cf1fc58bbc69bf8dd47f904e08cb91.pngのとき):
project.json - https://mv-ezproxy-com.ezproxyberklee.flo.org/412506341
assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/9230a0b1c1176bf5ce32b3a79f16405b.png
●project ID=412506341として下記2つのサーバーに別のsb3を登録してみました。
scratch.mit.edu に “Scratch 3.0 is here!.sb3”
sohta02.sakura.ne.jp/tukurutch に “オシロスコープ.sb3(独自ext入り)”
それぞれのスクラッチ実行環境では、project IDが同じでもサーバー設定により読み込まれるprojectが異なります。
1. 本家 https://scratch-mit-edu.ezproxyberklee.flo.org/projects/412506341/editor
2. ユカイ工房さんカスタマイズ https://kurikit.ux-xu.com/scratch/#412506341
3. そーたメイカスタマイズ http://sohta02.sakura.ne.jp/tukurutch/#412506341
1と2は “Scratch 3.0 is here!.sb3” になります。独自でscratchサーバーを立ててもprojectの参照先はscratch.mit.eduになります。
3は “オシロスコープ.sb3” になります。project参照先を下記の通り変更しています。
# scratch-gui/src/lib/project-fetcher-hoc.jsx
ProjectFetcherComponent.defaultProps = {
//assetHost: 'https://mv-ezproxy-com.ezproxyberklee.flo.org',
//projectHost: 'https://mv-ezproxy-com.ezproxyberklee.flo.org'
assetHost: 'http://sohta02.sakura.ne.jp/tukurutch',
projectHost: 'http://sohta02.sakura.ne.jp/tukurutch/internalapi'
};
●まとめ
- scratch3.0ではsb3を読み込むときあらかじめサーバ上でzip展開&ファイル名変更 (project.json→9桁projectID) しておく必要がある。
- 独自extを使ったsb3はscratch.mit.eduには置けないため自分のサーバーで公開する必要がある。
またその場合参照先をscratch.mit.edu→自分のサーバーに変更しておく必要がある
- サンプルのリンク方法は<自分のscratch実行環境>/#<9桁projectID>
上記間違っていたり、もっとシンプルな方法があったらすみません!
- inoking
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
つまり、
基にしたソースにそのような機能が備わっており
参照先を切り換えるだけで
自分のサイト上の作品をロードできるということですね。
余談ですが、
これはまさに Scratch 3.0 をハック(動作や構造を解析すること)しよう! の内容になりますが
この方法はどうやって見つけられました?
ソース解読でしょうか?
基にしたソースにそのような機能が備わっており
参照先を切り換えるだけで
自分のサイト上の作品をロードできるということですね。
余談ですが、
これはまさに Scratch 3.0 をハック(動作や構造を解析すること)しよう! の内容になりますが
この方法はどうやって見つけられました?
ソース解読でしょうか?
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
> この方法はどうやって見つけられました?
公式サイトでprojectを開いたときのパケットをfiddler というパケット解析アプリで解析しました!
おまけですがplayer.htmlを呼ぶことでeditor画面でなくplayer画面で開くことが出来ます。
(下記サンプルはplayer画面から直接実行できません。。)
http://sohta02.sakura.ne.jp/tukurutch/player.html#412506341
公式サイトでprojectを開いたときのパケットをfiddler というパケット解析アプリで解析しました!
おまけですがplayer.htmlを呼ぶことでeditor画面でなくplayer画面で開くことが出来ます。
(下記サンプルはplayer画面から直接実行できません。。)
http://sohta02.sakura.ne.jp/tukurutch/player.html#412506341
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
上記のProjectFetcherComponent.defaultProps 変更の方法ではextを公開するサーバー ≒ サンプルを公開するサーバーになってしまうため、URLクエリでassetHost/projectHostを指定できると良いのですが。。
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
> クラウド保存 (例:project ID=412506341、assets=f5cf1fc58bbc69bf8dd47f904e08cb91.pngのとき):
> project.json - https://mv-ezproxy-com.ezproxyberklee.flo.org/412506341
> assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/9230a0b1c1176bf5ce32b3a79f16405b.png
assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/internalapi/asset/9230a0b1c1176bf5ce32b3a79f16405b.png/get/
が正しいようです。そーたメイサーバーでは/get/は付けられないため
assets - http://sohta02.sakura.ne.jp/tukurutch/internalapi/asset/f5cf1fc58bbc69bf8dd47f904e08cb91.png
としてますが、動いてます。
> project.json - https://mv-ezproxy-com.ezproxyberklee.flo.org/412506341
> assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/9230a0b1c1176bf5ce32b3a79f16405b.png
assets - https://mv-ezproxy-com.ezproxyberklee.flo.org/internalapi/asset/9230a0b1c1176bf5ce32b3a79f16405b.png/get/
が正しいようです。そーたメイサーバーでは/get/は付けられないため
assets - http://sohta02.sakura.ne.jp/tukurutch/internalapi/asset/f5cf1fc58bbc69bf8dd47f904e08cb91.png
としてますが、動いてます。