初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Scratchで はじめようゲームプログラミング

9.翻訳するアヒルを作ろう

 

今回もゲームは作りません。次回からゲームに戻ります。
音声合成と翻訳の機能を使って、翻訳アプリを作ります。

「またゲームじゃないのかぁ」
と残念に思うかもしれません。
でも考えてみてください。Scratchのユーザーは全世界にいます。 翻訳機能を使えば海外の人にも遊んでもらえるゲームが作れますよ。

 

 

何を作るの?

下にこれから作る作品を貼っておきます。(注意:音が出ます)

入力した文章をアヒルが英語に翻訳します。
3回繰り返します。

画面が表示されないときはここをクリック

 

入力した文章と翻訳を読み上げます。

翻訳機能を説明するためシンプルに作ってます。
しゃべっている間、スプライトをアニメーションさせたりしたら面白そうですね。

 

 

背景を入れよう

新しくプロジェクトを作りましょう。
作るをクリックします。

新しくプロジェクトを作る

 

作品の名前を入力します。
私は「翻訳するアヒル」にしました。

作品の名前を入力する

 

背景を入れます。
ページの右下にあるステージの枠の下のボタンをクリックします。

背景の絵を入れる

 

背景の絵を選択します。
どの絵でもいいです。私は屋内をクリックしてHallを選びました。

背景の絵を選択する

 

 

拡張機能を入れよう

拡張機能を入れます。
画面左下にある拡張機能を追加をクリックします。

拡張機能を入れる

 

音声合成翻訳 を1つずつ入れます。

音声合成と翻訳を1つずつ入れる

 

カテゴリの一覧に音声合成と翻訳のアイコンが追加されます。

音声合成と翻訳のアイコンが追加される

 

 

翻訳したい文章を聞こう

プログラミングを開始します。
まずイベントから旗が押されたときを持ってきます。

次に調べるからあなたの名前はなんですか?と聞いて待つを持ってきます。
メッセージは「英語で言うと?」に変更します。

調べるから聞いて待つを使う

 

見た目からこんにちは!と言うを持ってきます。

こんにちはと言うを使う

 

調べるに戻り答えこんにちは!と言うの中に入れます。

聞いた答えを「と言う」の中に入れる

 

テストしましょう。
「英語で言うと?」の質問で入力した内容をネコが表示するようになります。

聞いた答えをネコが表示する

たったの2ブロックでここまで出来ます。スクラッチって素敵です。

 

音声合成を使って入力した文章を読み上げるようにします。
音声合成からこんにちはとしゃべるを持ってきます。

音声合成で入力文章を読み上げる

 

調べるから答えを持ってきて入れます。
上のブロックの答えと言うからコピーしてもいいです。

答えをしゃべらせる

入力した文章をちゃんとしゃべるかテストしましょう。

 

 

メッセージを送ろう

ネコとアヒルが会話するシチュエーションを作ります。
そのためプログラム内部で連携を取る必要があります。

ネコで入力した文章をアヒルに伝え、翻訳して欲しいタイミングを教えます。

2つのスプライトで連携を取る

 

ネコで入力した文章は変数を使ってアヒルに伝えます。
翻訳したい文章」という新しい変数を作ってください。
「すべてのスプライト用」で作りましょう。

新しい変数を作る

 

まず翻訳したい文章のチェックを外します。
変数を0にするを持ってきて翻訳したい文章を答えにするに変更します。
答えはコピーしましょう。

翻訳したい文章を答えにする

 

イベントからメッセージ1を送るを持ってきます。

メッセージ1を送るを使う

 

新しいメッセージ(の名前)を作ります。
翻訳して という名前にします。

新しいメッセージを作る

 

これでネコのプログラムが完成しました。

ネコのプログラム

 

 

アヒルのスプライトを用意しよう

新しくスプライトを用意します。
下図のアイコンをクリックしましょう。

新しくスプライトを用意する

 

アヒル Duck の絵を選びましょう。
「du」で検索すれば簡単に見つかります。

アヒルの絵を選ぶ

 

下図の位置に配置します。
吹き出しのことを考えて、ネコより上に配置しました。

アヒルを配置する

 

アヒルのプログラムを作ります。
まずイベントから旗が押されたときを持ってきます。
次に動きから90度に向けるを持ってきて -90 度に変更します。

アヒルの絵を内側に向ける

 

このままでは絵がひっくり返ってしまうので制限を掛けます。
動きから回転方向を左右のみにするを持ってきます。
これでアヒルは左向きになります。

アヒルを左向きにする

実はプログラミングせずパラメータを変更するだけでアヒルの向きを変えられます。
ただ、今後しゃべっている演出で絵を揺らしたいなどがあれば、プログラムで向きを指定することになります。
そのためこの方法を取りました。

 

 

翻訳しよう

ネコからのメッセージを受け取ったら翻訳したいと思います。

イベントから翻訳してを受け取ったときを持ってきます。

メッセージを受け取ったときを使う

 

見た目からこんにちは!と言うを持ってきます。

こんにちは!と言うを使う

 

翻訳からこんにちはを◯◯語に翻訳するを持ってきます。
持ってきたら「英語」に変更しましょう。

こんにちはを英語語に翻訳するを使う

 

変数から翻訳したい文章を持ってきて こんにちはの所に入れます。

翻訳したい文章を翻訳の中に入れる

 

テストしましょう。
実行して何か文章を入れます。するとアヒルの文章は英語で表示されます。

翻訳のテストを行う

 

 

英語で音声合成

翻訳した文章を音声合成でしゃべらせます。

音声合成からこんにちはとしゃべるを持ってきます。

音声合成を使う

 

下図のように翻訳で作ったブロックをそのままコピーします。

翻訳で作ったブロックをそのままコピー

 

ここでテストしましょう。
翻訳された文章をよく聞くと、たどたどしい英語の発音なのが分かります。

これをネイティブな発音にします。
音声合成から言語を日本語にするを持ってきて「英語」に変更します。

英語の発音をネイティブにする

テストしましょう。
翻訳された英語の発音をよく聞いてください。ネイティブな発音に変わりました。

 

 

調整と繰り返し

何度もテストした人は気づきましたね。
そうです、日本語の読み上げがたどたどしい発音になってしまいました。
これは言語設定がずっと「英語」のままになっているからです。

ネコのプログラムを開いて、言語設定を追加します。
下図の所に言語を日本語にするを入れましょう。
これで問題は解決です。

ネコに言語を日本語にするを追加する

 

最後に翻訳を3回繰り返すように変更します。
制御から10回繰り返すを持って 3 回に変更します。

翻訳を3回繰り返す

 

テストすると、アヒルがしゃべっている間にネコの表示が変わってしまいます。
これは良くないですね。

アヒルがしゃべっている間にネコの表示が変わる

 

制御から1秒待つを持って 3 秒に変更します。
これで短い文章ならアヒルがしゃべっている間、ネコの表示は変わりません。

ネコの処理に待つを入れる

入力した文章が長いと3秒では足りません。対策としてはアヒルのしゃべりが終わったらメッセージを送るようにして、 そのメッセージを受けたネコが次の入力を待つようにします。
仕組みが複雑になるので、プログラミングに慣れてきたら挑戦してみてください。

「翻訳するアヒルを作ろう」はこれで終わりです。
お疲れさまでした。