Discuss Scratch

ito-noizi
Scratcher
100+ posts

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

#782
すみません、言葉が足りなかったようです。

tabakenn wrote:

API使わない方が簡単です。頑張ってください()
この内容について、どのように解析するかを知りたかったです。
project.jsonのtargetsのBlocksから数を調べなければいけないのですか?いまいちJSONハックは行ったことがないので詳しく教えてもらえると幸いです。

Last edited by ito-noizi (Aug. 25, 2023 09:53:20)

tabakenn
Scratcher
100+ posts

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

tabakenn wrote:

https://scratch.mit.edu/discuss/topic/353556/?page=285#post-3969801
API使わない方が簡単です。頑張ってください()

1014ICE wrote:

daidaidai1 wrote:
興味本位の質問なんですが、プロジェクトに使用されているブロックの数を知る方法はありますか?
自分のプロジェクトでどのくらい使われているのか気になりました。
ブロックを置いているところの後ろを右クリックすると、一つのスプライトのブロックは分かります。
リンク先のように「◯◯◯個のブロックを削除」というところをカウントしていきます。

ito-noizi wrote:


project.jsonのtargetsのBlocksから数を調べなければいけないのですか?いまいちJSONハックは行ったことがないので詳しく教えてもらえると幸いです。
そうです。自動化するにはそうします。詳しくは…… なにか必要になった時にprojects.jsonを整形した上で眺めてみれば、そこそこのことは分かると思います。

Last edited by tabakenn (Aug. 25, 2023 10:24:38)

Catapult-
Scratcher
100+ posts

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

#779
ブロック数を直接求めるAPIは残念ながらありませんが、jsonを取得できたのなら、あと一歩です。
project.jsonのブロック周りの構造は大体以下の通りです。
いろいろ: いろいろ
//このtargetsの中にそれぞれのスプライトのデータがある
targets: [
  //0番目がステージのデータ、それ以降スプライトのデータ
  {
    いろいろ: いろいろ
    //このblocksに全ブロックデータがある
    blocks: {
      //下のでたらめな文字列がブロックID
      0r4vQwfG9~./-6xB@Jng: {
        いろいろ: いろいろなブロックのデータ(ex.種類、座標、引数など),
        //ここ重要!このshadowというパラメータは、「そのブロックが実際につかめるか」を表す真偽値(詳しくは割愛)
        //これがfalseの場合触れて、trueの場合は触れない((▼どこかの場所)みたいなあるブロック専用の引数だったりする)
        shadow: false
      },
      ほかのブロックID: {ブロックのデータ}, 
      ほかのブロックID: {ブロックのデータ}
    }
  },
  //スプライトのデータが続く
  {},
  {},
  たくさん…
]

targets内のすべてのスプライトとステージの情報を一つずつ読み込み、さらにその中にあるblocks内の、shadow:falseなブロックだけを数えることで、プロジェクトに使われているブロック数を取得できます。
buhiton
Scratcher
100+ posts

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

ここはscratch-wwwの話もできますか?できるようだったら#1に書いておいたほうがいいですよ。
inoking
Scratcher
1000+ posts

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

buhiton wrote:

ここはscratch-wwwの話もできますか?できるようだったら#1に書いておいたほうがいいですよ。
そもそもリポジトリ名を限定していません。
Mario-098
Scratcher
100+ posts

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

音を再生するときに、音量を指定することができますが、ピッチなどの音の効果などは指定することができますか?もしできるならcodeを書いてもらえるとありがたいです。
ruff_G
Scratcher
8 posts

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

Catapult- wrote:

#649
Scratch3.0では型がしっかりしているので不可能に近いです。
json内で、丸い入力欄はブロック内の値として保存されているのに対し、
四角い選択欄はブロックとして保存されています。
四角い選択欄に「( )と( )」を埋め込むことはできますか?
kouryou118103
Scratcher
1000+ posts

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

やってみればわかると思いますが、できません。
JSONハックをしたら、はめることができます。
Mario-098
Scratcher
100+ posts

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

#788
忘れ去られないようにもう一回います。

音を再生するときに、音量を指定することができますが、ピッチなどの音の効果などは指定することができますか?もしできるならcodeを書いてもらえるとありがたいです。
OryzaeA
Scratcher
100+ posts

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

Mario-098 wrote:

#788
忘れ去られないようにもう一回います。

音を再生するときに、音量を指定することができますが、ピッチなどの音の効果などは指定することができますか?もしできるならcodeを書いてもらえるとありがたいです。

音楽ブロックでは細かいピッチを変える機能はありませんが、音ブロックなら普通にできますね。
( ピッチ)の効果を (50) にする

こちらのプロジェクトが参考になります。

Last edited by OryzaeA (Oct. 5, 2023 01:27:26)

Mario-098
Scratcher
100+ posts

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

#792
そのやり方とだと、360までしか買えられません。音量をjsonを弄って-100とかありえない数字にする方法はわかりますが、そのような方法でピッチの効果の上限を突破することはできますか?

Last edited by Mario-098 (Oct. 6, 2023 00:21:18)

OryzaeA
Scratcher
100+ posts

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

Mario-098 wrote:

#792
そのやり方とだと、360までしか買えられません。音量をjsonを弄って-100とかありえない数字にする方法はわかりますが、そのような方法でピッチの効果の上限を突破することはできますか?

jsonのやり方は分からなくて申し訳ないのですが、(他の人もわからない?)
元々の鳴らす音源に周波数の高い音を使用すれば、いくらでも高い音は出せる気がするのですが、それではダメなのでしょうか。
ruff_G
Scratcher
8 posts

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

kouryou118103 wrote:

やってみればわかると思いますが、できません。
JSONハックをしたら、はめることができます。
どこをどう書けばいいですか?blocksの後にブロックのデータがあるところまではわかってます。
yudetamagotiizu
Scratcher
2 posts

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

ruff_G wrote:

kouryou118103 wrote:

やってみればわかると思いますが、できません。
JSONハックをしたら、はめることができます。
どこをどう書けばいいですか?blocksの後にブロックのデータがあるところまではわかってます。
部外者失礼します。まず入れたい丸のやつを入れたプロジェクトを保存します
(音量) 歩動かす。それでjsonハックをします。
でfalseをtrueにすればできると思います。まちがっていたらすいません
ruff_G
Scratcher
8 posts

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

yudetamagotiizu wrote:

ruff_G wrote:

kouryou118103 wrote:

やってみればわかると思いますが、できません。
JSONハックをしたら、はめることができます。
どこをどう書けばいいですか?blocksの後にブロックのデータがあるところまではわかってます。
部外者失礼します。まず入れたい丸のやつを入れたプロジェクトを保存します
(音量) 歩動かす。それでjsonハックをします。
でfalseをtrueにすればできると思います。まちがっていたらすいません
ステルスブロック(見えないし動かせないブロック)が誕生しました。
ruff_G
Scratcher
8 posts

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

ruff_G wrote:

yudetamagotiizu wrote:

ruff_G wrote:

kouryou118103 wrote:

やってみればわかると思いますが、できません。
JSONハックをしたら、はめることができます。
どこをどう書けばいいですか?blocksの後にブロックのデータがあるところまではわかってます。
部外者失礼します。まず入れたい丸のやつを入れたプロジェクトを保存します
(音量) 歩動かす。それでjsonハックをします。
でfalseをtrueにすればできると思います。まちがっていたらすいません
ステルスブロック(見えないし動かせないブロック)が誕生しました。
書き換え前だとこんな感じです。
 {"targets":[{"isStage":true,"name":"Stage","variables":{"`jEk@4|i[#*?(8x)AV.-my variable":["変数",0]},"lists":{},"broadcasts":{},"blocks":{},"comments":{},"currentCostume":0,"costumes":[{"name":"背景1","dataFormat":"svg","assetId":"cd21514d0531fdffb22204e0ec5ed84a","md5ext":"cd21514d0531fdffb22204e0ec5ed84a.svg","rotationCenterX":240,"rotationCenterY":180}],"sounds":[{"name":"ポップ","assetId":"83a9787d4cb6f3b7632b4ddfebf74367","dataFormat":"wav","format":"","rate":44100,"sampleCount":1032,"md5ext":"83a9787d4cb6f3b7632b4ddfebf74367.wav"}],"volume":100,"layerOrder":0,"tempo":60,"videoTransparency":50,"videoState":"on","textToSpeechLanguage":null},{"isStage":false,"name":"スプライト1","variables":{},"lists":{},"broadcasts":{},"blocks":{"%rM%GS5ar-?6A~i$t0j=":{"opcode":"motion_movesteps","next":null,"parent":null,"inputs":{"STEPS":[3,".XoELrbCL!@$wwJrG_Pv",[4,"10"]]},"fields":{},"shadow":false,"topLevel":true,"x":101,"y":156},".XoELrbCL!@$wwJrG_Pv":{"opcode":"operator_join","next":null,"parent":"%rM%GS5ar-?6A~i$t0j=","inputs":{"STRING1":[1,[10,"りんご "]],"STRING2":[1,[10,"バナナ"]]},"fields":{},"shadow":false,"topLevel":false},"j3h}tQ_+*ns~jxj?|Eea":{"opcode":"data_setvariableto","next":null,"parent":null,"inputs":{"VALUE":[1,[10,"0"]]},"fields":{"VARIABLE":["変数","`jEk@4|i[#*?(8x)AV.-my variable"]},"shadow":false,"topLevel":true,"x":53,"y":310}},"comments":{},"currentCostume":0,"costumes":[{"name":"コスチューム1","bitmapResolution":1,"dataFormat":"svg","assetId":"bcf454acf82e4504149f7ffe07081dbc","md5ext":"bcf454acf82e4504149f7ffe07081dbc.svg","rotationCenterX":48,"rotationCenterY":50},{"name":"コスチューム2","bitmapResolution":1,"dataFormat":"svg","assetId":"0fb9be3e8397c983338cb71dc84d0b25","md5ext":"0fb9be3e8397c983338cb71dc84d0b25.svg","rotationCenterX":46,"rotationCenterY":53}],"sounds":[{"name":"ニャー","assetId":"83c36d806dc92327b9e7049a565c6bff","dataFormat":"wav","format":"","rate":44100,"sampleCount":37376,"md5ext":"83c36d806dc92327b9e7049a565c6bff.wav"}],"volume":100,"layerOrder":1,"visible":true,"x":0,"y":0,"size":100,"direction":90,"draggable":false,"rotationStyle":"all around"}],"monitors":[],"extensions":[],"meta":{"semver":"3.0.0","vm":"2.0.5","agent":"Mozilla/5.0 (iPad; CPU OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1"}}
Mario-098
Scratcher
100+ posts

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

#794
ありがとうございます。
どちらかというと「高い音」を出したいのではなく、音を早く再生したいんです。
kouryou118103
Scratcher
1000+ posts

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

音エディター(正しい名前か分かりません)から「速く」を押すと速くできますが、これではダメですか?
OryzaeA
Scratcher
100+ posts

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

Mario-098 wrote:

#794
ありがとうございます。
どちらかというと「高い音」を出したいのではなく、音を早く再生したいんです。

ピッチというより、テンポ、BPMですね?
ham-chan
Scratcher
3 posts

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

#801
元の音源を編集してもいいなら、編集ソフトやサイトで編集するのが一番楽で速いのではないでしょうか

Powered by DjangoBB