TamLab 授業のおもちゃ箱 https://tamlab.fc2.page 情報系科目の講義資料とツールを公開 Sat, 30 Nov 2024 11:02:47 +0000 ja hourly 1 https://wordpress.org/?v=6.7.2 PythonアプリでSpeech SDKを使う https://tamlab.fc2.page/category-system/category-programing/2551/ https://tamlab.fc2.page/category-system/category-programing/2551/#respond Sat, 30 Nov 2024 11:02:46 +0000 https://tamlab.fc2.page/?p=2551 Pythonで作るアプリケーションソフトにMicrosoft AzureのSpeech SDKを組み込もうとしています。主な目的は,PPTXファイルにナレーションを組み込むアプリ(PowerpointNarrator)のテキスト入力の補助です。インストールの手順などの備忘録として残しておきます。

Azureについて

Azure(アジュール,Microsoft Azure)は,Microsoftのクラウドコンピューティングサービスです。様々なサービスの中にSpeech Serviceがあり,マイクロフォンから入力した音声データをテキスト化するSpeech to Textなどに使うことができます。

以下,参考にしたURLはその都度紹介します。

SDKのインストールの手順

Quickstart: Recognize and convert speech to text

クイック スタート: Speech SDK のインストール

を参考にしました。

準備

以下のような手順で進めました。

1)システム要件を確認

  • Windowsの場合,64bitターゲットアーキテクチャが必要(Windows10以降である必要)
  • プラットフォームに対応した Visual C++ 再頒布可能パッケージがインストールされていること
  • Python のバージョンは 3.8 以降

2)Azureアカウントを作成し音声サービスを使えるようにする

私はAzureのアカウントを持っていないので,次のような作業になりました。

  • Azureアカウントを作成する
  • サービス用のAzure サブスクリプションとSpeech resourceを作成
  • Speech resource key と regionコードを取得する

少し詳しく説明します。

・Azureアカウントを作成する
 https://azure.microsoft.com/ja-jp/free/ にアクセスしてアカウントを作成しました。
 Microsoft Accountを持っていることが必要です。Azureの無料アカウントは、新規Azureユーザーのみ1つだけ利用可能となっています。
 必要な情報を入力し,最後にクレジットカードによる認証を求められました。あくまでも認証のためで,入金が必要になった場合は別途要求する・・・とのことです。しかし,もしこのサイトがMicrosoftを騙るサイトだったらえらいことになっちゃいます。いったん作業をやめて考えてから,もう一度やり直しました。

支払いが発生しないアカウントはカード無しで作成するようにしてもよいのにと思います。ユーザ側もきちんとサービスが働いていることを確認できれば,偽サイトではないとわかるのですから。でも,始めのうちはサービスを提供するようにした巧妙な偽サイトを作られたら,どうしようもありませんが。

・Azure サブスクリプションを作成
 Azure のPortalサイトのホームで“サブスクリプション”と表示された鍵の形のアイコンをクリックし新規の無料サブスクリプションを作成しました。サブスクリプションの名前はサイト側で用意した“Azure subscription 1”をそのまま使いました。

・音声サービスのリソースを作成
 ホームから“音声サービス”のページに移動し,メニューにある“作成”をクリックするとSpeech Services の作成というタイトルのページに移動します。

次の図1のように,幾つか設定する項目があります。

図1 Speech Services の作成ページの表示

  • サブスクリプション
    使用するサブスクリプションを選びます。“Azure Subscription 1”しかないので,そのままにします。
  • リソースグループ
    既存のグループはないので,新規作成します。リソース名はSpeech2Textとしました。
  • リージョン
    アカウントを持つユーザの所属する地域です。Japan Eastを選択しました。(図1ではEast USとなっています。)
  • 名前
    適当に入力しました。ちゃんと考えて決めればよかった・・・。
  • 価格レベル
    Free F0を選択しました。

この後の操作で,「タグ名と値」の設定を要求されました。上の図には表示されていません(再現できなかった)。タグ名:Tag0,値:0として設定して,特に今のところ問題はないようです。

・Speech resource key と regionコードを取得
 音声サービスをPythonコードから利用する際にSpeech resource key とregionコードが必要になります。これらを取得するには,音声サービスリソースのページに移動します(ホームのリソース欄でリソース名をクリック)。“キーとエンドポイント”という項目を見ます。

図2 キーとエンドポイントなどの設定

Speech resource key:“キー1”の右端をクリップしてをコピーして取得しました。長い文字列です。このキーは共有しないようにすることが必要なので,作成したアプリを他のユーザに使ってもらう場合には注意が必要です。

regionコードは,“場所/地域”の欄に書かれている“japaneast”という文字列です。

Speech SDK for Pythonのインストール

クイック スタート: Speech SDK のインストール というサイトの記述に従って作業をしました。

pip install azure-cognitiveservices-speech

でインストールしました。

動作確認

サンプルコードをダウンロード

動作確認するため,サンプルコードを探しました。以下の2つのファイルをダウンロードしました。

quickstart.py 参考にしたサイトのURL

speech_recognition.py 参考にしたサイトのURL

リスト1 quickstart.py

# Copyright (c) Microsoft. All rights reserved.
# Licensed under the MIT license. See LICENSE.md file in the project root for full license information.

# <code>
import azure.cognitiveservices.speech as speechsdk

# Creates an instance of a speech config with specified subscription key and service region.
# Replace with your own subscription key and service region (e.g., "westus").
speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)

# Creates a recognizer with the given settings
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)

print("Say something...")


# Starts speech recognition, and returns after a single utterance is recognized. The end of a
# single utterance is determined by listening for silence at the end or until a maximum of about 30
# seconds of audio is processed.  The task returns the recognition text as result. 
# Note: Since recognize_once() returns only a single utterance, it is suitable only for single
# shot recognition like command or query. 
# For long-running multi-utterance recognition, use start_continuous_recognition() instead.
result = speech_recognizer.recognize_once()

# Checks result.
if result.reason == speechsdk.ResultReason.RecognizedSpeech:
    print("Recognized: {}".format(result.text))
elif result.reason == speechsdk.ResultReason.NoMatch:
    print("No speech could be recognized: {}".format(result.no_match_details))
elif result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = result.cancellation_details
    print("Speech Recognition canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        print("Error details: {}".format(cancellation_details.error_details))
# </code>

5行目に
import azure.cognitiveservices.speech as speechsdk
とあります。音声/テキスト変換のサービスをするために,このimport文が必要になります。

また,9行目の,
speech_key, service_region = “YourSubscriptionKey”, “YourServiceRegion”
とあります。式文の右辺にある文字列”YourSubscriptionKey”を取得したSpeech resource keyの長い文字列に,”YourServiceRegion”を”japaneast”に,それぞれ置き換えます。

リスト2 speech_recognition.py

import os
import azure.cognitiveservices.speech as speechsdk

def recognize_from_microphone():
    # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
    speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
    speech_config.speech_recognition_language="en-US"

    audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)

    print("Speak into your microphone.")
    speech_recognition_result = speech_recognizer.recognize_once_async().get()

    if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech:
        print("Recognized: {}".format(speech_recognition_result.text))
    elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch:
        print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details))
    elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = speech_recognition_result.cancellation_details
        print("Speech Recognition canceled: {}".format(cancellation_details.reason))
        if cancellation_details.reason == speechsdk.CancellationReason.Error:
            print("Error details: {}".format(cancellation_details.error_details))
            print("Did you set the speech resource key and region values?")

recognize_from_microphone()

動かしてみた

quickstart.pyを使って動作確認します。

マイクロフォンを接続して実行します。コンソールに何か喋るようにプロンプトが表示されるので,日本語でしゃべると,図3のようにテキストが表示されます。でも,英語アルファベットを使ったよくわからない文字列が表示されました。

図3 何の言語だろう?

変換の対象となる言語の設定が日本語設定になっていないためでしょう(デフォルトの言語が何なのかは,わかりません)。

もう1つのサンプル speech_recognition.pyを見ると,7行目に
speech_config.speech_recognition_language=”en-US”
とあります。ここで,言語をアメリカ英語に設定しているようです。Implement language identificationなどのサイトを見ると,この文字列を”ja-JP”に変換すれば日本語になりそうです。そこで,quickstart.pyの10行目の後ろに,

speech_config.speech_recognition_language=”ja-JP”

という行を追加して動かすと,マイクロフォンから入力した日本語の音声をテキストに変換できました。かな漢字変換もできています。

図4 ちゃんと日本語に変換された

他の言語の指定については,Speech SDKのドキュメントで確認するとよいでしょう。

以上で大体のことがわかりました。SDKのドキュメントを探して,それを参考にしながらアプリに組み込んでいく予定です。

]]>
https://tamlab.fc2.page/category-system/category-programing/2551/feed/ 0
縦スクロール漫画の制作の基礎がわかる本 https://tamlab.fc2.page/category-books/2488/ https://tamlab.fc2.page/category-books/2488/#respond Fri, 15 Nov 2024 10:19:00 +0000 https://tamlab.fc2.page/?p=2488 パク ヨンジョ/著,金 智恵/訳:縦スクロール漫画制作の基礎がわかる本,翔泳社(2024)

縦スクロール漫画のテクニックはPPT教材に使えるか?

ということを考えていたので,図書館の新刊コーナーで見つけて,思わず借りてしまいました。

PPT教材に使えるのか,ということに関する結論からいうと

  • 縦スクロール漫画(ウェブトゥーン)はPPTのスライドショーと構造的に類似点が多い
  • しかし,ストーリーの提示を目的としている漫画のテクニックは,数学や工学のトピックの理解を目的としているスライドショーにはダイレクトに適用できないだろう

と感じました。そもそも目的がエンターテインメントと教材とでは異なっているので,当然といえば当然なのです。

エンターテインメント関連の技法書としては?

なかなか,いいのでは?

しかし,教材作製から離れて,エンターテインメント関連の技法書として読むと,以下に挙げる点でよくできていると感じました。

  • 漫画や映画さらにアニメなど「絵・動画とテキスト・音声で構成されるエンターテインメント向け媒体」を制作する上での,基本的な内容が解説されている
  • 解説はシステマチックで,図版も多い
  • 指示は具体的

本書で紹介されている技法や制作プロセスは,ウェブトゥーンだけに限定されいません。従来の漫画やアニメだけでなくテキストのみの小説などにも応用できる,基本的かつ一般化できる理論や技法がたくさん紹介されています。

説明の仕方はちょっと理屈っぽいと感じる人はいるかもしれません。しかし理屈だけではなく,どのようにすればよいかも具体的に説明されています。漫画の創作に関する本なので当然なのでしょうが,図版は多いです。ほとんどの項目の説明に図が添えられています。

以上のようなことから,この本自体が初心者向けの教材を作るときの「お手本」にもとなると感じました。

私は漫画制作に関する技法書を詳しく読んだことがありません。ですから本書が,これからウェブトゥーンや従来の二次元構成の漫画を描こうと考えている人に役に立つかどうかは,判断できません。でも,私にとっては,知らない,あるいは聞いたことはあるけれど意味のわからなかった用語が基本から解説されています。あまり期待しないで手に取った本なのですが,読んで得した気持ちになりました。

ウェブトゥーンとPPTスライドショーの比較は別稿に・・・

ウェブトゥーンとPPTスライドショーの違いについても書こうと考えていたのですが,まとめようとすると長くなりそうなので,別稿にすることにしました。その目的で描いた図のバリエーションの1つが下です。

図1 ウェブトゥーン(縦スクロール漫画)は「縦読みの絵巻物

この投稿では,本書「縦スクロール漫画の制作の基礎がわかる本」の簡単な紹介だけに留めておきます。

目次と筆者紹介

本書の目次と筆者紹介はAmazonのサイトでも閲覧できますが,以下に示しておきましょう。

PART 1 スマートフォンに適したコンテンツ、縦スクロール漫画
PART 2 縦スクロール漫画で作るストーリーテリング
PART 3 縦スクロール漫画の創作・制作プロセス
PART 4 縦スクロール漫画の演出技法
PART 5 心理描写とシーンの演出

ストーリー作りから始まって,創作・制作プロセスや演出技法について詳しく書かれています。PART 2~PART 4のタイトルを見ると“縦スクロール漫画”に限定しているように感じられるかもしれません。でも,内容は従来型の二次元配置漫画やテキストのみの文芸作品にも応用可能だと思います。

本書の「はじめに」と奥付の紹介によると,パクの経歴は以下のようなものです。

小さいころから漫画を描くことが好きだった。大学ではコンピュータを専攻しIT企業に就職した。30代半ばに漫画に挑戦したいと考えて大学院に進学し漫画とアニメーションを専攻し,芸術学の修士と博士号を取得している。しかし,大学院では研究が目的であるため,ストーリーの作成や作画は独学で学ぶしかなかった。

その後,IT企業で働きながらウェブトゥーン作家としてデビューした。しかし,連載を始めた5つの作品は全て3か月で終了することを余儀なくされ,ちゃんとした作品を創りだし続けることの難しさを味わった。そこでスタジオチームを結成することにし,その結果,ウェブトゥーンの本格的な連載ができるようになった。現在のパクは,ウェブトゥーン作家兼プロデューサーとして活動し,大学などでの教育にも従事している。

<詳しく読む>

技法書マニア
私の学校での図画工作や美術の成績は惨憺たるものでした。それなのに,ちょこちょこ落書きするのは好きでした。そして,ある程度お小遣いが自由に使えるようになると,美術関係の技法書や,ちょっとお高い「デザインの現場」などの雑誌も購入して読んでいました。自分ではちゃんとした絵は描けないのに,どういう道具を使うのかとか,こういうイラストはどういう手順で描くのか,というツールや作製プロセスには興味があったのです。

<閉じる>

本書の「はじめに」に,

最初に私が経験した困難を振り返り,縦スクロール漫画制作の入口だと思われるネーム(絵コンテ)の演出を基本に,作品創作初期に難しさを感じている作家志望者の方々や,縦スクロール漫画作品を初めて制作する作家の皆さんのために構想に至った本書が,縦スクロール漫画の制作に少しでもお役に立てればと願っています。(p.004)

と書かれていることから,作家志望者など初心者を対象とする入門的な内容であることがわかります。

感想

印象に残ったところを挙げていきます。

ストーリーテリング

本書のPART 1でウェブトゥーン(本書内では“縦スクロール漫画”と呼んでいる)の特徴が紹介されていて,PART 2からが本格的な内容になります。その始まりのPART 2で述べられているのがストーリーテリングなので,これが,まず押さえておくべき大事なポイントであることがわかります。PART 2の冒頭で,

ストーリーは,時間の流れの通りに羅列された物語のこと。

ストーリーテリングは,物語を構成し効果的にテーマを伝える方法のこと。(p.030)

のように,ストーリーテリングの定義を与えて,それに続いて,ストーリーテリング化に必要な要素や劇的な構造の創り方について説明があります。私は,この部分がとても面白いと思いました。このような分野の知識がほとんど無いこともありますし,講義や研究発表の資料を作るときは,いつも「この内容をどういうストーリーで伝えようか」と考えていたからです。

演出技法

PART 4,PART 5では様々な演出技法について説明されています。紹介されているものの多くは,映画の演出技法を基にしているようです。コマが二次元に配置された従来の漫画でも,映画の演出技法の影響を受けている(と何かで読んだ覚えが・・・)ようです。

コマの配置が上下の一次元配置であるウェブトゥーンは,従来の漫画と異なり視線の左右・上下の移動というリテラシー(読みのスキル)は不要になります。その分,視線の移動がさほど要求されない映画で使われている演出技法との馴染みが,より強いのだと思います。

気になったところ

気になったところもあります。本書の記述は「システマチック(体系的)だ」と書きました。筆者のパクがIT技術者を経て大学院で博士号まで取った研究者だったということが関係しているのだろうと思います。理屈っぽい印象を受けるのもそのためでしょう。(研究者・学者は,名前を付けたり分類したり一般化したり法則を見つけたり,理屈をつけようとするのが習い性なので仕方ないのです。)

しかし,その理屈の基になる根拠が示されていないことが多いのです。例えば,PART 4の「左右・上下の視線の流れで作る感情表現」の項で,左から右への視線の流れや右側の空間は未来を意味する,逆に右から左への視線の流れや左側の空間は過去を連想させる,と述べられています。しかし,その根拠は示されていません。

左→右の方向が未来を意味するというのは,横書きで左から文字を並べていく欧米の習慣に基づいていると考えられます。時間変動を表すグラフなどでも,時間の進む方向は左→右の向きです。「右肩上がり」などという表現は,これを前提としています。

しかし,伝統的な日本や中国の書物では,縦書きで,行は右から並べていくので,時間の流れは右から左へとなっています。図1に示した絵巻物なんかもそうです。したがって,本書で述べられている“時間軸は左から右へ”に基づく技法が人間に元々備わっている性質に由来し全世界の人に通用できるかどうかは疑問,です。

同様のことは他にもあると思います。でも,本書は初心者向けのものです。一々,根拠や出典を示していたら,とても読めない本になってしまいます。それに,読んでいて「あれ? ここはどうしてだろう・・・。」と疑問に感じさせたり考えさせたりる部分が含まれていることも,教材として大事な点だと思います。

本書は,索引がついていて,そこも教材として高く評価できる点です。例えば「あ行」を見ると,「アイリスショット」,「アイレベルショット」,「憧れ」,「アポカリプス」,「歩く死骸症候群」・・・と続いています。全く知らない,あるいは何となく意味はわかるけれど説明できない言葉が結構含まれています。(あ行に挙げられている15個の用語だと,全く知らないが7個,何となくわかるが説明できないが2個でした。) 

このような,知らなかったことについて,わかりやすく(正しいかどうかは別にして)書いてあるので,読んで知識欲を満たせる本でした。もちろん,本当に役に立てるためには,手元に置いて何度も読み返す必要があると思います。

私の知識欲が満たされたからといって,ウェブトゥーン作家を目指す人の役に立つかどうかはわかりません。この本を繰り返し読んで,理屈を理解し一般法則を見出し,それを適用したとします。作成プロセスでの苦労は減るかもしれません。でも,面白い作品ができることが保証されるわけではないことも確かでしょうね。

]]>
https://tamlab.fc2.page/category-books/2488/feed/ 0
PowerpointとiSpring Suiteでweb漫画を作れるか? https://tamlab.fc2.page/category-books/category-books-art/2329/ https://tamlab.fc2.page/category-books/category-books-art/2329/#respond Tue, 23 Jul 2024 00:25:50 +0000 https://tamlab.fc2.page/?p=2329 突然なのですが、PowerpointとアドインソフトiSring Suiteを使ってweb漫画を作れるか? について試してみました。

iSpring SuiteはPowerpointでeラーニング教材を作るためのソフトウェア製品です(iSpring社のサイト )。私はこれを主に工学部の学生さん向けの教材作りに使ってきました。

どうして教材作りのためのソフトウェアでweb漫画を描こうなんて思ったのか。その説明をしなければなりません。でもその前に、せっかちな方のために結論から申し上げると、

  • PowerpointとiSpring Suiteの現在の仕様では不十分
    元々スライドショーによるプレゼンを目的とした製品なので、web漫画用には向いていないところがある。また、iSpring Suiteには正確に変換できないPowerpointアプリの効果があることもわかった。
  • 漫画・イラスト・絵本などの新しいメディアとしての可能性
    絵(グラフィックス)と文章、セリフ(“吹き出し”)などを組み合わせた作品の閲覧や配布の方式としては可能性がありそう。

結果を早く見たいかたは、以下のリンクをクリックしてください。別タブで表示されます。画面内でのマウスクリックまたは下向き矢印でコマ送りされます。詳しいことは、投稿の後ろの方で説明します。

<サンプル(通常版)>   

<サンプル(オーバーレイ版)>

そもそも教材と漫画では設計思想がだいぶ異なります。実際、私が作ってきた教材は漫画のようなアナログで芸術性も求められるものとは対極のものです。グラフィックスもデジタルで作っているし、内容は技術系のものばかりです。

ですから、「どうして唐突に漫画の話になったのか」が気になると思います。

発端

友人の佐川俊彦に手紙を出したのは今年(2024年)の6月の末のことです。佐川とは小中高と同窓でした(佐川の御父君の転勤のため空白期間はありますが)。

<注を読む>

「読書日記」のどこかの投稿にも書いたと思いますが、このwebサイトの投稿では、ちゃんとした書籍の著者や研究者・学者の氏名には敬称をつけません。それが敬意を表すことになるからです。

研究者、学者、クリエイター(気取った呼び方ですが)でも何でも、その個人を独立したプロとして認めている場合は敬称をつけないのです。少なくとも理科系の学問ではそうなっています。“アインシュタインの相対性理論”であって、“アインシュタイン先生の相対性理論”などとは呼びませんよね。〇〇教授の研究室に院生□□君がいたとします。公の場では、〇〇教授は「□□の提案した方法」、□□君は「〇〇らの提案によれば・・・」のように発言します。文科系の学問ではどうなのかはわかりませんが。

もっとも、佐川とは会えばタメグチで話す仲です(めったに会ったり話したりしないのですが)。敬称を略しても、互いに何てことはないのです。

<注を閉じる>

佐川は、長らく漫画編集者として働いていて、Juneという雑誌を立ち上げたことで知られています。現在は京都精華大学マンガ学部の教授です。(先日、図書館に行ったら、週刊文春のコラムにインタビュー記事が掲載されていた。7月4日号?。)

その彼に手紙を出さなければならない用事があり、その後、電話とメールでのやりとりが続きました。

そのさい、幾つか質問をしたのです。

  • イラストを引用するとき気を付けるべき著作権の問題
    在籍中は教育目的の利用だったので著作権の問題はそれほど気にしていなかった。このwebサイトではイラストを引用することがあるが、「記憶スケッチ」をしたり模写も一部のみに留めたりするなど、気を使っている。
  • web漫画の「縦スクロール」ってどうなの?
    ここで「縦スクロール」とはスワイプによりページ単位ではなく1コマ単位で縦に閲覧していくウェブトゥーン(Webtoon)のこと。スマホの縦長の画面に適しているらしいのでスライドショー教材に利用できるかしらと興味を持った。
  • 漫画業界でのAIの利用について
    昨今は、どうしても、この話題が出てくる。

やはり何でもその道のプロに聞いてみるもので、いろいろ面白いことがわかりました。「著作権の問題」、「AIと漫画」については別の機会にゆずることにします。二つめの質問「web漫画の切り替え方式」に関してお話していきます。

本題に入る前に、「導入」として2コマ漫画の例を示しましょう。

「世界で一番短い推理漫画」(ヤじるし) 書いた当時は鉛筆描き 筒井康隆並びに青山豪昌に負うところ多し

これは、今をさかのぼること二十数年前に私が描いた2コマ漫画を、記憶を基に再現したものです。当時小学生だった子供が、宿題かなにかの課題で提出しなければならない、でも描けない何とかしてくれ、と泣きついてきたのです。提出の日の朝に。

それで、出勤を15分ほど遅らせて描きました。「これは原案だからね。後は自分で何とかしなさい。」と言って鉛筆で描きました。コマ数も4つなんて描けないので2コマにしました。その後、色くらいは本人が塗ったのかもしれませんが、ほぼそのまま提出したようです。

<詳しく読む>

1コマ目の人物は、1994年連載開始の推理漫画の主人公だということはわかるでしょう。ストーリーというかプロット(2コマ漫画にそんなものあるのか?)の方は、どうでしょうか? セリフは、筒井康隆のショートショートにあった「世界一短い推理小説」(題名は間違っているかも)を借りてきました。筒井康隆の意図を活かすのなら、2コマ目だけを使った1コマ漫画にすべきなのです。でも課題が「複数コマの漫画を描く」だったので1コマ目を加えたのだと思います。

というわけで「キャラクターもセリフも他人の作品のパクりじゃないか」と言われれば、その通りです。気持ちは「本歌ほんか取り」なんですけどね。

<閉じる>

この例でもわかるように、通常の漫画は複数の「コマ」で構成されており、それが一度に画像として表示されています。新聞の4コマ漫画では4コマ全部が提示され、複数のページにまたがることはありません。雑誌の場合は、1つのページが複数のコマに分割されていて、それが複数のページにわたって提示されます。

漫画のリテラシー

上に述べたように一度に目に入ってくる複数のコマを、読者は1つ1つ順番に読んでいきます。新聞などの4コマ漫画の場合は、上から下へという順になります。

4コマ漫画のコマの並びは1次元です。ほとんどの人は上から順番に読んでいくと思います。(もちろん生まれて初めて4コマ漫画を読む人、赤ちゃんとか、がどんな順番で読むかは、調べてみないとわかりませんが。)

一方、漫画雑誌の場合は2次元つまり縦と横に拡がった配置になります。そして、日本の漫画雑誌の場合は、右から左、上から下という順にコマを読んでいきます。

<詳しく読む>

実際の読み手の眼や頭の動きは、もっと複雑なことをしているのかもしれません(既に誰かが調べているかもしれません)。読み手はあるコマを見ていると同時に、前後の(あるいはページ全体の)コマに描かれている情報も利用している可能性があります。また、コマの間の「つながり」を周辺視覚から得ているかもしれません。複雑になってしまうので、この辺りのことには深くつっこまないことにします。

<閉じる>

実はこのような読み方が公式(?)なのだ、ということを今回調べて初めて知りました、そんなことを教えてもらったことはありませんし、親や友人・先輩が読み方を教えてくれたという記憶もないです。でも当たり前のように漫画は読めています。たぶん日本にいるほとんどの人は意識しないで漫画を読んでいるでしょう(例外はあるみたいです)。しかし、このような漫画の「読み方のリテラシー」は万国共通ではないようです。

以下は佐川から電話で聞いた話の、web漫画に関する部分の要点です。

  • 漫画が読めない人がいる
    京都精華大学の彼の研究室には中国や韓国からの留学生が在籍しています。その中には、雑誌の漫画が読めない人がいて、例えば大きいコマから先に読んでしまう、というのです。欧米の雑誌は左から右の順なので、日本の漫画を海外で出版するときは版を左右反転するということは知っていました。しかし、コマを読み取れない人がいるということは意外でした。
  • 絵本
    そのせいかどうかわからないけれど、現在、中国や韓国で絵本に興味を持つ若い人が増えているそうです。ほとんどの絵本は1ページまたは見開き2ページで1枚の絵になっているので、コマの読みとりの問題はなくなります。
  • 縦スクロールのweb漫画
    佐川によると「縦スクロールのweb漫画の出現の背景には、簡単で安易な方に流れる傾向がある」ということです。縦スクロール方式では、スマートフォンの画面に一コマの画像が表示されていて、縦方向のスワイプで上下にスクロールします。これなら、コマの配置は一次元つまり一方向になり、二次元配置の場合の読者の読みとりリテラシーは不要になります。要は「読むのが楽」ということになります。
    今後、漫画の新しい閲覧や配信の技術が出てくるとして、それは読者の「認知的コスト」や「認知的負荷」を小さくする方向、つまり楽な方向に進んでいく。その結果、印刷された漫画の単行本や雑誌は読まれなくなっていくだろう・・・というのが佐川の意見です。

漫画のコマの読みとりリテラシーがあること、リテラシーの無い人でも読めるように工夫されているのがウェブトゥーン(Webtoon)に代表される縦スクロールのスマホ漫画であり、漫画業界もその影響を受けていくだろう、ということです。

縦スクロールの漫画を閲覧してみたら

Androidスマホを使って、縦スクロールの漫画(ウェブトゥーン)を閲覧してみました。ほんの1,2の例だけです。私が気が付いたことをまとめると以下のようになります。

  • コマとコマの間に余裕を持たせている
    たぶん、1つのコマを閲覧しているときに上下のコマが画面に入らないようにするためだろう。
  • 上下のコマの情報もある程度把握できる
    とは言え、コマとコマの間隔はあまり広くはなっていないので、上下のコマの情報が把握できる。読み終わった上のコマや、次にくる下のコマを目に入れた状態で画面の切り替えが可能になる。
  • 背景
    セリフの“吹き出し”がコマからはみ出している作品があった。また、別の作品ではコマとコマの間の背景にあたる部分に紙の表面のような模様(テキスチャ)がつけられていた。個人的には、これらの演出により、コマとコマのつながりやスクロールの“流れの速さ”を実感できるように感じた。また、縦方向のスクロールはスワイプの動作に比例したアナログな動きになっている。

以上のように、コマからコマへの移動や注目は楽にできると同時に、漫画全体の流れも意識できるように工夫されているようです。これは、元々複数のコマを同時に見せていた紙の漫画を、アナログ感を残してデジタル化したことから来るのだと思います。1枚1枚の静止画を切替えながら見せるスライドショーをルーツに持つPowerpointとの違いでしょう。

他にもいろいろと工夫がされているところがあるだろうと思います。私は上に紹介したような演出が印象に残りました。「部分に注目させると同時に全体の流れも意識させる」ための工夫はPowerpointを使ったプレゼンでも重要になるからです。

PowerpointとiSpringでweb漫画を作ってみる

私は冒頭で例に挙げた「世界一短い推理漫画」しか描いた経験がありません。誰かに原画を作ってもらうのでは時間がかかるし「棒人間」でごまかすのは面白くありません。自分でやってみると得られるものがあるかもしれないというので作ってみました。線画を作る処理に興味があったので、3DCGを基にします。手順は以下のとおりです。

ⅰ)原画を用意する
 3DCGソフトのDAZ Studioでキャラクターにポーズを取らせて画像を生成。これを画像処理ソフトのGimpで加工。

ⅱ)Powerpointのスライドショーを作る
 画像をスライドに貼り付け、吹き出しなどを付ける。2枚目以降のスライドの「画面切替え」を“プッシュ”にしておく。これは、スライド切替えのときに上から下へのスクロールのような効果を持たせるため。複数の吹き出しが同時に表示される版と、オーバーレイ方式で追加されていく版2つを作成した。

ⅲ)iSpring SuiteでHTML5変換 
 <PowerpointとiSpring Suiteでweb教材を作る>に紹介した方法でPlayerの設定をする。さらに、Playback and Navigationの設定に移り、矢印キーでスライド切替えができるように設定する。

ⅳ)webサイトにアップロード
 WordPressのプラグイン(Insert or Embed Articulate Content into WordPress)を使った。

結果について

作った「web4コマ漫画モドキ」を以下に示します。この投稿の冒頭で示したものと同じですが、ページ内のウインドウに表示されます。通常版は、1コマ分が一度に表示されます。一方、「オーバーレイ版」では、吹き出しが発言の順に現れ、コマが切り替えられるまでその場に残っています。次の吹き出しが現れると同時に消すというやり方も可能ですが、試してはいません。

サンプル(通常版)

サンプル(オーバーレイ版) 吹き出し発話順に出現していきます

結論は冒頭でまとめた通りです。補足します。

1)PowerpointとiSpring Suiteの現在の仕様では不十分
 問題と思われる点は以下のとおりです。

  • 画面切り替え
    前後(上下)のコマのつながりを意識させた画面切り替えが難しい。今回、スライド切替えの効果を“プッシュ”にすることで、縦スクロールのような雰囲気を持たせようとしているが、十分とは言えない。
  • スクロール
    画面を自由にスクロールできない。このため、複数のコマが同時に提示される漫画の「アナログ感」が乏しい。
  • 効果イフェクトを再現できないことがある
    Powerpointの効果をiSpring Suiteのスライドショー変換で再現できないことがある。今回わかったのはスライド切替え効果の“プッシュ”で、スライド前進のときは問題ないが後退のときにPowerpointアプリとは異なる挙動になる。他にも変換できない効果があるかもしれない。iSpring社のサポート担当に問い合わせてみるつもり。

2)新しいメディアとしての可能性
 絵、吹き出し、文章などを組み合わせた静止画をコマ単位で見せるだけでなく、これらの要素を出現・消滅や動きなどの効果を付けて表示できます。ウェブトゥーンではアニメーションを組み込んだ作品もあるそうですが、Powerpointでもアニメーションを組み込むことはできます。そのような作品はもはや「漫画」とは言えないものになるかもしれませんが、漫画から派生した新しい表現媒体になる可能性はあります。

今回は、プレゼンでよく使う「オーバーレイ方式」を吹き出しの表示に試してみました。でも余計なお世話という印象も持ちました。「漫画のリテラシーを身に付けさせる教材」に使えるかもしれませんが、そんなのいらない! と言われそうです。

3)その他
 今回注目したスライド切替えやスクロールとは別に、気が付いたことがあります。キャラクターは、手描きではなく3DCGソフトのDAZ Studioで作成したフォトリアルな画像を「漫画風」に加工して描きました。しかし、諧調が残っているので細部に注意が向いてしまい、漫画として読むときに邪魔に感じます。

実際、フォトリアルな画像に吹き出しを付けた作品がありますが、細部に注意が向くためなのか読みにくいと感じます。

漫画の、濃淡情報を省いた線画は、手抜きのために採用されたものかもしれませんが、結果としてセリフやストーリーを邪魔しない表現になっているのかもしれません。家電製品の取り扱い説明書でも、写真ではなくイラストを使った方が理解しやすいと言われています。このことは、スライドショーのデザインで一番大事だと思うポイント「注目させたい情報を制限する」と共通しています。

※画像の一部を変更しました(2024/07/29) 肌の塗りや髪の諧調を減らしています。個人的には変更後の方が好みです。

結局、ウェブトゥーンってどうなの?

ウェブトゥーンに関しては、漫画表現が縦長ディスプレイを持つスマホに合わせて変化して出てきたものです。なので靴に足を合わせるような無理な感じを受けてしまいます。視野が狭い縦長の世界に閉じ込められるようです。

一方、それは私が古い漫画のリテラシーしか持っていないから感じるものかもしれません。ウェブトゥーンの市場は拡大しつつあるようで漫画業界にとっては無視できない分野になりそうです。印刷技術などのハードウェアがコンテンツの創造や鑑賞のありかたに影響を与えることは、これまでも繰り返されてきました。web漫画の流れがどんな方向に向かっていくかは興味があります。

さて、今回の試みによって教材作成について何か得るところはあったのか?です。これは別の機会に譲りたいです(今回はそんなのばっかり・・・)。

]]>
https://tamlab.fc2.page/category-books/category-books-art/2329/feed/ 0
PowerpointとiSpring Suiteでweb教材を作る https://tamlab.fc2.page/category-materials/2285/ https://tamlab.fc2.page/category-materials/2285/#respond Sun, 07 Jul 2024 06:56:05 +0000 https://tamlab.fc2.page/?p=2285 PowerpointとアドインソフトiSring Suiteを使ってwebで閲覧できる教材を作る方法を紹介します。

Powerpointスライドショーを講義に使う

私はPowerpointとプロジェクタを講義に使っていて、黒板やホワイトボードによる板書はほとんど使いませんでした。この記事を読んでいる方が教員でしたら、Powerpointのメリットやそれを活かした講義のノウハウに関しては、私などよりははるかによくご存じだと思います。

<注を読む>

Powerpointとプロジェクタは電子黒板と同じように使うことができます。私は,黒板やホワイトボードに書いたり消したりする時間を省くことを目的に採用しました。浮いた時間は演習など授業内容の理解や定着のために使うことができます。また、アニメーションなどの効果を使うことでスライドショーに動きを付けることで学生の興味を引き付け、授業を効率よく進行できるようになります。講義進行の計画もたてやすくなり,内容のアップデートも楽になりました。

また,作った資料をwebで閲覧できるようにすると,学生さんの自学習用に利用でき,講義内容の記録保管所(アーカイブ)を築くのに使うこともできます。

<注を閉じる>

スライドショーの例を示しましょう。音声ナレーションだけをつけたものと,音声と字幕のナレーションを併用するものの2つです。下の画像をクリックすると新しいタブでスライドショーが始まります。

      音声ナレーションのみ                 音声+字幕

スライドショーの開始時に、左のようなダイアログボックスが表示される場合があります。1枚目からスライドショーを実行する場合は“NO”を、前回の続きから再開する場合は“YES”をクリックします。

音声+字幕のものは、自作のナレーション付加ソフト(Powerpoint Narrator)の不具合のため、スライド画面の縦幅が大きくなっています。また、再生するデバイスによってはナレーションの一部が無音になってしまうかもしれません。

私が過去の講義で使ったPowerpoint教材のスライドショーは、以下のサイトで閲覧できます。在籍中の教材をそのまま並べただけのシンプルなサイトです。ナレーションもついていません。

<http://tamlab.web.fc2.com/>

HTML5変換

これらのファイルはPPTファイルそのものではなく,そのスライドショーをwebで閲覧できるようにHTML5形式のファイルに変換したものです。こうしておくと、次のようなメリットがあります。

  • 機種に依存しない
    ブラウザが搭載されているなら、Windowsマシン、Macintosh、スマートフォン、・・・など機種を問わず閲覧できます。
  • ネットワークにつながっている機器があればどこでも講義ができる
    web接続できる機器があれば、PCやUSBメモリなどを持ち歩かなくても、講義やプレゼンができます。実際、講義では、ネットワーク経由で複数のスライドショーを同時進行させたことがあります。
  • webで広く閲覧してもらえる
    これが一番大きなメリットかもしれません。講義だとせいぜい数十人ですが、webを使えば全世界が相手になります。

PowerpointスライドショーのHTML5への変換には、幾つかの方法があり,私が試してみたのは以下の2つです。

  • Powerpointのアドインソフトを使う
    インストールすると、Powerpointに新しいメニューが組み込まれ,そこから変換の作業を始めることができます。
  • webサービスを使う
    webサイトにPPTファイルをアップロードすると変換してくれるサービスがあります。

私が使っているのは、有料のアドインソフトであるiSpring Suiteです。iSpring SuiteはPPTスライドショーのHTML5変換だけでなく、e-Learning教材を構築するための様々な機能を持っています。HTML変換だけならiSpring Converterを使うこともできます。web対応教材を作ろうと考えた時点では、使えるソフトやサービスの中で最も変換の精度が高いものだったため,これを採用しました。

iSpring社のサイト (表示言語は英語です。ブラウザの翻訳機能を使うと日本語表示になります。)

HTML5変換のwebサービスにも無料・有料の両方があるようです。ソフトをインストールする必要がないのは魅力ですが、無料の場合、スライド枚数の制限があったりスライドショーの画面にウォーターマークが表示されたりしたかもしれません。

PPTXファイルであれば本質的にはXMLファイルなので、これをHTML5に変換するソフトを自作できるだろうと思います。でも使える技術情報を見つけるところまでいっていません。Aspose社の製品を使うと自作できそうですが,ソフトの年間契約料がすごく高いみたいです。

手順

PPTファイルからweb教材を作るおおまかな手順を紹介します。

1)Powerpoint教材を作る
 Powerpointでスライドショーの教材を作ります。テキストボックスや図形でスライドを作り、アニメの効果を付けたり音声を付加します。アニメの効果として音声ナレーションや効果音を付けることは手動でも可能です。私が作成中のソフト「Powrpoint Narrator(自称)」を使うと、音声ナレーションや字幕を自動で付けることができます。(手間ひまかければ、手動の作業だけで同じことができますが・・・。)

2)HTML5ファイルに変換する(publish)
 iSpring Suite(またはiSpring Converter)を使ってHTML5ファイルを作成します。(試してはいませんが、Youtube用の動画にすることもできるようです。)

3)webサイトにアップロードする
 FFFTPなどの転送ソフトを使って,webサイトにファイルをアップロードします。私のwebサイトでは,WordPress用のプラグイン(Insert or Embed Articulate Content into WordPress)を使って,メディア格納フォルダにアップロードしたファイルをサイトに埋め込んでいます。

iSpring Suiteの使い方

Powerpointアプリの中からiSpring Suiteを起動してHTML5ファイルを作る手順を、スライドショーで説明します。以下の画像をクリックしてご覧ください。

iSpring Suiteの使い方

この操作によって、プロジェクトの名前を付けたフォルダの中に、index.htmlというファイルとdataという名前のフォルダが格納されたものが作られます。このデータをFFFTPなどのファイル転送ソフトで所望のwebサイトにアップロードします。また、変換後のオプションとしてzip圧縮したファイルを作っておくと、WordPressのプラグインを使ってアップロードできます。zipファイルを使う方法は簡単ですが、ファイルを格納する場所は自由には選べません。

詳しい手順や設定はiSpring社関連のサイトなどからリンクできるオンラインヘルプを参照してください。

WordPressのプラグインを使ったアップロード

プラグインInsert or Embed Articulate Content into WordPressを使うことで、ページの中にスライドショーのウインドウを埋め込むことができます。

プラグインの使い方について、備忘録として書いておきます。(久しぶりに使ってみたら、手順を忘れていてオタオタしたので。)

e-Learningブロックを挿入
 ブロック挿入の際、選択肢の中から“e-Learning”を選ぶ。

e-Learningブロックの操作開始
 挿入されたブロックの“アップロードボタンをクリックする。

zipファイルを指定
 “アップロード”をクリックすると左のような表示になる。CHOOSE YOUR ZIP FILEをクリックし、iSpring Suiteで作成したzipファイル
を選ぶ。

zipファイルをアップロード
 目的とするzipファイルが選択されたことを確認したら、“UPLOAD”ボタンを押す。

Playerを挿入
 “Upload Complete!”を確認したら、ウインドウを下にスクロールする。

 “挿入”ボタンのところまでスクロールしたら、これをクリックする。Playerの選択肢が表示されているが、無料版のプラグインの場合はiFrameしか選べない。

作業が終了すると、e-Learningブロックは左のような表示になる。やり直す場合は“削除”ボタンをクリックする。

e-Learningブロックを使ってスライドショーを埋め込んだ場合は、以下のようになります。

以上、PowerpointのアドインiSpring Suiteを使って、WordPressのページにスライドショーの機能を持たせる方法を説明しました。

webページで動きのある説明をするために、ビデオを埋め込む方法がよく使われているようです。しかし、スライドショーの方が使い勝手が良いと感じています。閲覧者自身が進行をコントロールできるからです。

webサイトの説明と授業で使うスライドショーとでは違う工夫が必要だと思いますが、実際に使いながら目的に応じたスライドショーの作り方を考えていくつもりです。

<お問い合わせはこちらから>

]]>
https://tamlab.fc2.page/category-materials/2285/feed/ 0
「まだまだかわいそうが足りないぞ」 弱者の残酷な復讐 [One of my favorite sayings.] https://tamlab.fc2.page/category-books/2033/ https://tamlab.fc2.page/category-books/2033/#respond Mon, 01 Jul 2024 10:24:04 +0000 https://tamlab.fc2.page/?p=2033 金田鬼一:完訳 グリム童話集 2 岩波文庫,「犬と雀」岩波書店(2017) より

原文(ドイツ語)は以下で読むことができます。

Der Hund und der Sperling https://www.grimmstories.com/de/grimm_maerchen/der_hund_und_der_sperling

一度は言ってみたいセリフ」・「私の好きな言葉」シリーズの第2回です。

Otto Ubbelohdeによる挿絵

毒を含んだ因果応報譚

まだまだかわいそうが足りないぞ」は,ドイツ語の原文では”Noch nicht arm genug.”,英語だと,”Not yet poor enough.”でしょうか。相棒の犬を殺された雀が仇である馬方うまかたに対して言い放つ言葉です。その前の馬方のセリフ「やれやれ、おれもかわいそうなおとこだなあ」(”Ach, ich armer Mann!” )に対して雀がこの言葉を言い返す場面が6回繰り返されます。おとぎ話でよく使われる「同じセリフや出来事の繰り返し」が効果的です。

馬方は,相手が弱いと見て侮り,雀の友達である犬を轢き殺してしまいます。そこから,雀の復讐が始まります。雀は弱く,馬方に対して直接暴力をふるうことはしません。しかし,狡猾に素早く立ち回り,時には多数の仲間を呼び寄せて襲い掛かります。「まだまだかわいそうが・・・」が繰り返されるたびに、馬方は積み荷の葡萄酒、馬、・・・と次々に財産を失い、追い詰められていきます。

財産をすべて失った馬方は最後に命まで無くします。しかし、彼の財産や命を奪ったのは直接には雀ではなく、馬方自身の持つ暴力装置(ここでは馬方の妻や馬方自身がふるう棍棒)によってなのです。

このおとぎ話は、

  • 弱い者を侮ってないがしろにすると,とんでもない目に合う
  • 人を滅ぼすのは自分自身が頼っている武器によってだ

ということ教えてくれます。でも、そんなお行儀のよい「教訓」より「まだまだかわいそうが足りないぞ」の持つ強烈な毒が強い印象として残ります。

こういうセリフに惹かれるのは、私も心の中にその毒を持っている弱い者だという意識があるからでしょう。「まだまだかわいそうが足りないぞ」と言ってやりたい、そういう境遇に陥って欲しいような人たちが世の中にはいっぱいいるような気がします。

また、もしこのような事件が現在の世で起きたら、SNSには「そんなところに寝ていた犬が悪い。ひき殺されたけど、それは自己責任だ。」「荷物を速く運ぶことのもたらす経済効果社会全体の利益の前には、老いぼれた犬や雀の都合などは無視しても良い」という投稿があふれそうです。でも、こういう意見を持つ人たちは、自分が轢き殺される立場になるかもしれないことは想像もしないのかもしれません。

と、エラソーに書きました。でも、何よりも、自分が「まだまだかわいそうが足りないぞ」と言われる羽目になるような行動はしないように、気を付けないといけないのでしょうね。

日常生活では以下のように使っています

「パワハラをして辞職した〇〇氏が逮捕されました。(TVのニュース)」→『まだまだかわいそうが足りないぞ!』(これは、本来の「正しい使い方」ですね)

「大変! 大した雨でないと思って窓開けっぱなしにしていたら、机の上に雨が吹きこんじゃった」「うわ、これはひどい 『まだまだかわいそうが足りないぞ』」「あはははは」(本来の用法からはずれてます。)

]]>
https://tamlab.fc2.page/category-books/2033/feed/ 0
PPTXファイルに字幕を付ける 使い方の説明 https://tamlab.fc2.page/category-materials/2218/ https://tamlab.fc2.page/category-materials/2218/#respond Tue, 09 Apr 2024 10:18:59 +0000 https://tamlab.fc2.page/?p=2218 PPTXファイルに音声や文字のナレーションを埋め込むWindowsPC用ソフトを作っています。オーディオのナレーションを付けることを目的として作り始めたソフトでした。しかし字幕を付けられるようにしてみると、これだけでも使い道が多そうな気がしてきました。

そこで、今回の投稿ではスライドショーに字幕を付けるやり方の例を紹介します。せっかくなので開発中のソフトで使った字幕付きスライドショーを使うことにします。

なお、このソフトを「このアプリ」とか「開発中のソフト」などと呼んできました。Pythonファイルの名前は“AddAudio2pptx.py”などとしていましたが、何かもう少しそれっぽい名前で呼ぶことにしましょう。適切かどうかわかりませんが、“Powerpoint Narratorパワーポイントナレーター)”と呼ぶことにします。注)

<注を読む>

ChatGPTで、以下のように質問しました。

「Powerpoint Narratorという名前のソフトウェアがありますか? もしあるとすれば、どのようなことをするソフトウェアだと考えられるでしょうか?」

回答は以下のようでした。

「2022年1月時点では、Powerpoint Narratorという名前のソフトウェアは存在しませんでした。ただし、Microsoft PowerPointには、スライドのナレーションを録音する機能があります。これにより、プレゼンテーションを行う際にスライドごとに音声を付けることができます。この機能を利用することで、スライドショーを再生するときに自動的にナレーションが再生されるようになります。また、Microsoft PowerPointには、アクセシビリティを向上させるための機能もありますので、それらの機能の組み合わせによって、スライドのナレーションを作成するソフトウェアとしての機能を果たすことができるかもしれません。」

<注を閉じる>

では、以下のように3つに分けて説明をしていきます。

PPTXスライドを準備
スクリプトを作る
ナレーションを付ける

PPTXスライドを準備

Powerpoint Narratorは、現時点ではPPTXのスライドの自動生成や生成をサポートする機能は持っていません。まずはじめにナレーションを付ける元のPPTXファイルを準備する必要があります。

ここで想定しているのは、1枚のスライドの中に複数ステップのアニメ効果を持つようなPPTスライドショーです。数行の文字列が一度に表示されるだけのスライドが延々と続くようなスライドショーでは字幕を付けるだけのためならPowerpoint Narratorは不要です。PPTアドインのiSpring Suiteを使えばPPTのノートの記述を字幕として表示するHTMLスライドショーが作れてしまうからです。

スライドの準備についての説明は次のスライドショーでご覧ください。

1)PPTXスライドを準備

スクリプトを作る

PPTXファイルの準備ができたら、スライドショーの「スクリプト」を作ります。スクリプトは、スライド切替えやマウスクリックを示す文字列と、これらに同期して発声や表示をするナレーションのテキストを順番に並べたものです。スクリプトはテキストファイルの形で作成し保存されます。

スクリプトは複数の作り方が可能です。今回紹介するのは、現時点で一番楽で失敗が少ないと思われる方法です。

次のスライドショーをご覧ください。

2)スクリプトを作る

スクリプトは、以下の規則に従って作ります。

  • 行単位で動作を記述
    開始からリターンコードまでで1単位とする。
  • エスケープ行
    以下の文字列(全て半角)が先頭にある行は,スライド切り替えやアニメーションのためのマウスクリック(あるいは矢印キー操作)を表し,音声合成は実行しない。
    • #Snn:スライド番号を示す。nn:01~99(2桁の数字)
      例:#S01,#S20など。
    • #mm:1つのスライド内でのアニメーションのクリック番号。mm:00~99
      #00はスライド切り替え時のナレーションを表す。
      例:#00:スライド切り替え時のナレーション,#01:1番目のクリックのナレーション。
    • #nn_mm:nn番目クリックに続く自動アニメーションの番号を示す。mm:01~99
    • %:コメント行
  • 空行は無視する
  • 記述のルール
    スライド番号とクリック番号を順番に並べる。スライド番号とクリック番号はエスケープ文字列を 行頭に持つ行で指定し,改行後の「コメント行でも空でない行」がナレーションとして処理される。

上記のルールは,AutoHotKeyを使ったアプリ開発(PTファイルに音声を自動で埋め込む その1 AHKによる実装)の際に作ったものです。現在のアプリはPythonでコーディングされていて,上のルールから外れた記述でも動作することがわかっています。以下にまとめます。

  • スライド切替え時のナレーション
    #00 という文字は略してもよい。例えば,2枚目のスライド切替え時のナレーションは,“#S02”の次の行に記述すればよい。
  • ナレーションを付加しないスライドやアニメーションの番号は略してもよい
    例えば,3枚目のスライドの2番目のクリックのみにナレーションを付加する場合は,
    #S03
    #02
    ×××・・・・・(ナレーションのテキスト)
    というスクリプトで動作する。
  • コメント行
    #Snnや#mmなどのエスケープ文字列を先頭に持つ行は,これらの文字列の後ろに1つ以上の空白文字があれば,その後ろに挿入した文字列は改行コードまでが無視される。これをコメント文字列として使うことができる。

ナレーションを付ける

スクリプトに従ってPPTXスライドショーにナレーションを付けた新しいPPTXファイルを作ります。

手順は次のスライドショーをご覧ください。

3)ナレーションを付ける

Powerpoint Narratorの操作ウインドウにある“Audio”と“Caption”というラベルのついた2つのチェックボックスで、付けるナレーションの種類を選択します。Audio(音声ナレーション)とCaption(字幕)の両方を同時に付けることも可能です。ただし、音声ナレーションを埋め込むためには、オーディオファイルをあらかじめ作成しナレーションフォルダ(上の例では“PPT_Test”という名前)に格納しておく必要があります。また、既に字幕やオーディオのナレーションを付けてあるPPTXファイルを対象とした場合、どうなるかはこれから確認する予定です。

感想

  • ちょっと疲れるかも
    今回の投稿では、Powerpoint Narratorで字幕をつけたPPTXファイルを説明に使いました。スライドの枚数が少し多かったので閲覧する人は疲れるかもしれません。
  • 字幕の問題
    スライドの画像と字幕が、両方とも視覚を使うことからくる「わかりにくさ」の問題は、少なくとも私は感じました。オーディオのナレーションの方が速く頭に入りそうです。また、字幕の背景の色やスライド本体との区切りの方法など、改善すべき点があります。
  • スライドの枚数は適切か?
    講義の場合には、手元に配布資料もあり、それに目を通しながらスライドショーを閲覧できるので、スライド枚数が多くても分かりにくくなることはなさそうです。しかし、webページの場合は、スライドを見ているときにページの他の場所を見るのは難しくなります。スライドが切り替わってしまうので、何枚か前の画像を記憶していることも難しくなるでしょう。スライドの枚数や画像の提示の仕方については、もう少し研究が必要になりそうです。
  • 作る方も疲れる
    スライドショーが長いと、見るほうも疲れるかもしれませんが、作る方も疲れます。一番大変なのは、PPTスライドショーを作る過程です。この過程に費やす時間を短くして、しかも内容が伝わり易いスライドを作ることをサポートするソフトが必要だと感じました。例えば、よく使うアニメのシーケンスを自動生成する機能とか、です。
  • こんな機能が欲しくなる
    次に時間がかかるのが、スクリプトの作成です。これは、スライドショーをクリックにより進行させながらナレーションを喋って録音するような機能を、Powerpoint Narratorに持たせることで改善できそうです。録音した音声をテキストに変換すれば、スクリプトの編集の時間を短くできるかもしれません。(勉強しないといけないので、だいぶ先になりそうです。)
    また、録音したナレーションだけで良い場合もあると思います。それに対応するようにコードを変更するのは、そんなに難しくはなさそうです。
]]>
https://tamlab.fc2.page/category-materials/2218/feed/ 0
PPTXファイルを直接書き換えて音声や字幕を付加 https://tamlab.fc2.page/category-materials/2159/ https://tamlab.fc2.page/category-materials/2159/#respond Thu, 04 Apr 2024 08:33:18 +0000 https://tamlab.fc2.page/?p=2159 PPTXファイルに音声や文字のナレーションを埋め込むWindowsPC用ソフトを作っています。コーディングに時間が取れなかったこともあって、前回の投稿からだいぶ間が空いてしまいました。でも開発は「遅々として進む」という状況で、幾つかの機能を付け加えてきました。この数週間での大きな成果(と自分で思っていること)は「クリックと連動する字幕を表示できるようになった」ことです。

作ったスライドショーの例

このソフトで字幕を付けたPowerpointスライドショーの例を以下に示します。自分で動かしてみてください。表示画面下の矢印ボタンのクリック、スライド画面内にポインタを置いた状態でのマウスクリック,あるいは矢印キーなどでスライドショーが進行します。

字幕をつけたスライドショーの例

実際の講義でも,この例と同様に数式の変形過程などを細かなステップに分け,何回もクリックしてアニメで表示し,口頭で説明を加えています。このため,このPPTスライドショーを音声や字幕が付いていないままweb用に変換しても,どういう意図で細かくステップ分けしているかを分かっていただけない可能性があります

<注を読む>

なお,上のPPTスライドショーは,iSpring社のPPTアドインであるiSpring Suite 10を使ってHTML5ファイルに変換しています。このソフトは有料ですが,同様のことをするフリーのアドインや,PPTファイルを変換してくれるフリーのwebサイトもあります。

<注を閉じる>

このソフトウェアでできること

  • 音声ナレーションと字幕をスライドショーに付加
    PPTXのスライドショーに音声や字幕によるナレーションを自動で(つまりPPTのGUI操作をしないで)付加できる。また「かんたん!Aiトーク5」を制御して、テキストから自動的にオーディオデータを作ることができる。
  • スクリプトにより自動実行
    付加される音声ナレーションや字幕は、スライドの進行やアニメを制御するマウスクリックなどと同期している。この動作は、スライド切替え、マウスクリック、ナレーションの内容をテキストで表して順番に並べた「スクリプト(台本)」に従って作られる。 
  • サポート機能
    スクリプトの作成や、オーディオデータの確認と再編集をサポートする機能などが実装されている。

字幕を付けることの意義

もともとは,私自身の講義の記録(アーカイブ)と,学生さんの自習に使うことを考えてソフトを作り始めました。そのときは,字幕は「おまけ」の機能と考えていたのです。講義でスライドショーを見せる場合は,教員による口頭での説明があるので字幕は不要です。自習の場合も字幕は邪魔かなと考えていました。スライドは視覚により情報を伝えています。字幕という視覚による情報伝達がさらに加わると,「見て読んで理解する」という視覚による認知の負担が増えてしまいます。それで,あまり教育の現場での需要は少ないかも,と考えました。

<注を読む>

字幕のような視覚情報が増えても学習の効率は低下しない,と主張する人もいます(星 友啓:脳を活かすスマホ術 スタンフォード哲学博士が教える知的活用法、朝日新聞出版(2023))。でも、多様な学生を対象とした調査結果を見てからでないと、判断は難しいと思います。

<注を閉じる>

しかし,字幕だけで済むならファイルの容量を減らせます。また,聴覚が弱かったり、口頭での説明の理解に時間がかかったりする学生さんには助けになるでしょう。web上で閲覧できるスライドショーなら学習する人が自分のペースに合わせた進行や繰り返しができます。ですから視覚的負担の増加はそれほど問題にならないと考えられます。

スライドショーに字幕を付けることの効用や弊害,どのような使い方が効果的か,などは今後の研究課題だと思います(既に研究されているかもしれませんが)。簡単に字幕を付けられるソフトがあれば,そのような研究の助けになると思います。

技術的な内容の説明に移るの前に,背景となっている事情について説明します。過去の投稿とダブる部分もあります。興味のある方は目をとおしてください。

<詳しく読む>

技術的には・・・PPTXファイルを直接書き換えている

GUIでもできることをしている

まず,はじめに申し上げておきます。開発しているソフトは,これまで技術的に不可能だったことを可能にするようなものではありません。

アニメを起動するマウスクリックにオーディオの効果を付けたり,テキストボックスで作った字幕を出現させたり消したりすることは,全てPowerpointの標準的なGUIを使ってできてしまいます。しかし実際問題として,少しナレーションの数が増えるとGUIを使った作業は非常に時間がかかるものになります。字幕の作成も,正確な位置にテキストボックスを作成し,文字を入れ,出現と消滅のアニメの効果を付ける,ということを繰り返すので,字幕の数が少なくても大変です。

自動化ソフトでも問題あり

それでは,ソフトウェアを自動で操作するRPAツールやPythonなどで作ったGUI信号生成ソフトを使う方法はどうでしょうか? 開発しているアプリの音声ナレーションを合成したり追加する部分は、AHK(AutoHotKey)スクリプトやPythonコードによるGUI制御により作っていました。しかし動作が遅いのです。オーディオデータが揃った状態で「用意ドン!」すれば,物凄く手の速い人には負けるんじゃないかな,という感じでした。

また,動かすたびにタイミングが微妙にずれるため動作が不安定で,そのための誤動作もありました。Pythonコードにしたことで改善されましたが、それでも時々誤動作します(“時々”というのが厄介です)。一番問題なのは,動かしている間はPCを使った他の作業ができないということです(これはちゃんとしたRPAツールなら解決されている問題かもしれません)。

PPTファイルの直接操作

そこで,PPTのファイルを直接書き直す方法を採用することにしました。Pythonのライブラリにpython-pptxというものがあり,これを使うとPPTXファイルの操作ができそうです。それで大いに期待したのですが,アニメの操作が可能かどうかがよくわかりません(たぶん私の調べ方が下手なせいだと思います)。

PPTXファイルの中身は複数のxml(Extensible Markup Language)ファイルやデータファイルをまとめてzip圧縮した形になっています。したがって,解凍すればpython-pptxを使わなくてもxmlファイルの書き直しやデータの追加が可能になります。

開発中のソフトは,基本的にはzip展開されたPPTXファイルの中身を直接書き換えたりデータファイルを追加することで音声や字幕の追加を実行しています。ほとんどがテキスト操作になります。

もちろん,ファイルの書き換えなので,圧縮してPPTXファイルにしてみたらPPTアプリで開けなくなっているという危険性があります。書き換えた結果がxmlの規則に反している可能性もあります。実際,アプリの動作確認をしている段階では,出来上がったPPTXを開こうとしても「壊れているので修復しますか?」といったメッセージが出され,修復して開いても,意図した動作はしないというケースが多くありました。(ごく最近も思わぬ原因で誤動作することが分かりました。)

そこで,このアプリでは,元のPPTXファイルはそのままにして手を付けないようにしています。zip展開したフォルダ内のファイルだけを操作し,最後に圧縮して別の名前のPPTXファイルを作るようにしています。

<閉じる>

字幕付加の処理の全体の流れ

字幕を付加するソフトは,PPTXファイルをzip展開した中にあるslide1.xml,slide2.xml・・・などのxmlファイルを直接書き換えています。処理の全体を理解するため,まず,次のスライドショーをごらんになってください。

アプリは,大きく分けると以下のことをしています。

  • テキストボックス用のshapeの生成
    字幕はテキストボックスを使って表示します。テキストボックスはPPTスライド上の図形であるshapeの1つです。スライド毎にslide1.xml,slide2.xml,・・・という名前で作られたxmlファイルの中のShape Treeと呼ばれる構造の中に以下のようなxmlコードのブロックを挿入していきます。
  • アニメの記述を<p:timing>要素に追加
    スライド画面上にshapeを出現(英語版のPPTでは“enter”のようです)させたり消したり(“exit”)させるアニメのタイミングや表現方法について<p:timing>~</p:timing>の間で記述します。
  • 必要ならばスライドの寸法を変更する
    字幕用のテキストボックスはスライド画面の一番下に配置しています。元々ある図形や文字が字幕に隠されないように,スライド画面の寸法を下の方向に増やしてそこに字幕を配置するモードも用意しました。この操作はslide.xmlではなく別のxmlファイル(presentation.xml)を書き換えることになります。

字幕用shapeの生成と挿入

図形(shape)の形や位置の情報は,<p:spTree>要素の中にある<p:sp>~</p:sp>の間で記述される<p:sp>要素で表されます。実際に挿入される字幕用テキストボックスの<p:sp>要素の例は,以下のようになります。

      <p:sp>
        <p:nvSpPr>
          <p:cNvPr id="9" name="Caption 1">
            <a:extLst>
              <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
                <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{DF488853-4B8B-58A9-2718-B1BC0D4C3A87}" />
              </a:ext>
            </a:extLst>
          </p:cNvPr>
          <p:cNvSpPr txBox="1" />
          <p:nvPr />
        </p:nvSpPr>
        <p:spPr>
          <a:xfrm>
            <a:off x="0" y="6172200" />
            <a:ext cx="9144000" cy="685800" />
          </a:xfrm>
          <a:prstGeom prst="rect">
            <a:avLst />
          </a:prstGeom>
          <a:solidFill>
            <a:srgbClr val="FFFFCC" />
          </a:solidFill>
          <a:ln>
            <a:solidFill>
              <a:schemeClr val="tx1">
                <a:lumMod val="50000" />
                <a:lumOff val="50000" />
              </a:schemeClr>
            </a:solidFill>
          </a:ln>
        </p:spPr>
        <p:txBody>
          <a:bodyPr wrap="square" rtlCol="0">
            <a:spAutoFit />
          </a:bodyPr>
          <a:lstStyle />
          <a:p>
            <a:r>
              <a:rPr lang="ja-JP" altLang="en-US" sz="1600" b="1" dirty="0" />
              <a:t>クリック1です。</a:t>
            </a:r>
          </a:p>
        </p:txBody>
      </p:sp>

Shape Treeに挿入されたコードの例

字幕用shapeの生成

朱書きされた部分をアプリが書き換えてshapeを生成します。以下,上から順に説明していきます。

  • i<p:cNvPr id=”9
    <p:cNvPr・・・からnon-visual properties要素の記述になります。“id =”の次の数字がshapeの識別番号になります。異なるshapeには異なる数字が割り当てられます。この数字はPPTの編集でshapeを作るたびに1ずつ増加して割り当てているようです。
  • name=”Caption 1
    shapeの名前です。日本語版のPPTではテキストボックスには“テキストボックス1”のような全角文字列で名前が割り当てられています。開発中のアプリでは“Caption”+“数字”という半角文字列で名前を割り当てています。数字のない“Caption”だけにしても問題なく動いていますが,後で手動で調整する際,字幕ごとに名前が異なっていた方が良いかもしれないので,異なる番号を割り当てるようにしています。
  • <a:off x=”0” y=”6172200” />
    字幕の位置です。なお,位置や寸法の単位はEMU(English Metric Unit)と呼ばれるものになっています。1インチ=914400EMU,1cm=360000EMU,文字の大きさの単位の1pt=12700EMUと,全て整数のEMU値になります。
  • <a:ext cx=”9144000” cy=”685800” />
    shapeのx方向,y方向の拡がり(extension)つまり寸法です。この例では,横幅がPPTの4×3スクリーンでの10インチ幅(9144000EMU)と同じになっています。
  • <a:srgbClr val=”FFFFCC” />
    テキストボックスの色です。24bitのRGBで指定します。この例では薄い黄色になります。その他,テキストボックスの枠線の色や幅も変更可能ですが,アプリのコードでは固定しています。
  • <a:t>クリック1です。</a:t>
    朱書きの文字が字幕として表示する文字列になります。その前の行の,
    <a:rPr lang=”ja-JP” altLang=”en-US” sz=”1600″ b=”1″ dirty=”0″ />
    で全角/半角の切り替えをしています。

Shape Treeへの挿入

必要な書き換えを行った<p:sp>要素をShape Treeに追加していきます。方法は簡単です。Shape Treeの末尾である</p:spTree>を見つけ,その直前に<p:sp>要素を挿入します。shapeの識別番号,Shape IDは,Shape Tree内を走査して見つかったshape ID値の最大値を求め,それに1を加えた値を新しいshapeに割り当てています。

<p:timing>要素の書き換えと挿入

作った字幕は,そのままではスライド下部の字幕領域に重なった状態で表示されています。これにクリックに同期して出現したり消えたりするアニメ効果を与える必要があります。このための<p:timing>要素の書き換えは,shapeの追加よりはちょっと面倒臭い操作になります。

<p:timing>要素の書き換え

以下は,字幕を表示させるために<p:timing>要素に追加されたコードブロックの例です。

                              <p:par>
                                <p:cTn id="5" presetID="1" presetClass="entr" presetSubtype="0" fill="hold" grpId="0" nodeType="withEffect">
                                  <p:stCondLst>
                                    <p:cond delay="0" />
                                  </p:stCondLst>
                                  <p:childTnLst>
                                    <p:set>
                                      <p:cBhvr>
                                        <p:cTn id="6" dur="1" fill="hold">
                                          <p:stCondLst>
                                            <p:cond delay="0" />
                                          </p:stCondLst>
                                        </p:cTn>
                                        <p:tgtEl>
                                          <p:spTgt spid="8" />
                                        </p:tgtEl>
                                        <p:attrNameLst>
                                          <p:attrName>style.visibility</p:attrName>
                                        </p:attrNameLst>
                                      </p:cBhvr>
                                      <p:to>
                                        <p:strVal val="visible" />
                                      </p:to>
                                    </p:set>
                                  </p:childTnLst>
                                </p:cTn>
                              </p:par>
                            </p:childTnLst>
                          </p:cTn>
                        </p:par>

<p:timing>要素に挿入されたコードの例

朱文字はアプリが書き換える文字列,緑文字は注目してほしい箇所です。<p:par>~</p:par>で1つの単位となります。

  • <p:cTn id=”5
    挿入されるTime nodeの内容をここから記述していきます。項目ごとに識別番号idが割り当てられます。この番号は,<p:timing>要素の一番上から1で始まり,順番に1つずつ増えていきます。
  • presetClass=”entr
    図形を出現(entry,だと思います)させる効果を指定しています。PPTアプリ(日本語版)では“開始”というアニメーションのクラスに属していることを示します。“開始”クラスのアニメの効果にはフェードインなど様々なパターンがありますが,図形全体が一度に出現するシンプルな“表示”にしています。字幕を消すときは,この文字列”entr“を”exit“にします。
  • nodeType=”withEffect
    直前のクリックと同時に字幕が表示されるようにしています。
  • <p:cTn id=”6
    挿入するコードブロックの中には2つの<p:cTn>要素があるため,idを指定する箇所も2つあります。
  • <p:spTgt spid=”8” />
    コードブロックで記述している効果を与えるshapeを,その識別番号(Shape ID,spid)で指定しています。この例ではspidが”8″であるshapeを対象としています。

コードブロックの<p:timing>要素への挿入

パラメータを書き換えたコードブロックを<p:timing>要素に挿入します。手順は以下のようにしています。

ⅰ)<p:timing>~</p:timing>内でアニメを起動するクリックを見つける
 文字列“clickEffect”を見つけ,スクリプトに載っている番号のものを選ぶ。
ⅱ)“clickEffect”の後で最初に見つけた</p:par>の直後に字幕表示開始のブロックを挿入
 </p:par>がこのクリックで起動されるアニメ効果の記述の終わりになるので,その直後に字幕開始のコードブロックを挿入する。
ⅲ)次のクリックを見つけ,その後ろに字幕終了のブロックを挿入
 これで,次のクリックにより字幕の表示が終わります。このクリックが新しいアニメを起動するものになっていれば,同時に次の字幕が現れます。
ⅳ)最後に<p:timing>要素内のcTn idを割り当て直す
 Shape Treeとは異なり,<p:timing>要素内のcTn idは昇順にする必要があるので,スライド内の全ての字幕のコードの挿入が終わったところで,cTn idの再割り当てをする。

なお,ⅲ)の字幕終了ブロックの挿入については,次のクリックが見つからない場合はスライドの最後に達したことになります。ここでPPTアプリの操作者がマウスをクリックすると,次のスライドに移ります。同時に字幕も消えますので,スライドの一番最後の字幕に関しては消すためのコードブロックは入れないようにしています。クリックで最後の字幕を消し,次のクリックでスライドが切り替わるようにしても良いのですが,ただでさえ多いクリック回数を増やさないようにしました。

とりあえずここまでにしておきます。ソースコードについても忘れないうちに投稿したいです(そもそもこのwebサイト自体,私の備忘録として作ったものです)。

でも,コードがどんどんスパゲッティ化していて,とてもじゃないけど人様の目に耐えられないものになってきています。メンテナンス性も悪く,久しぶりにコーディングに取り掛かると,頭が復帰するのにすごく時間がかかってしまいます。小さなコードから紹介をしていくことになると思います。

]]>
https://tamlab.fc2.page/category-materials/2159/feed/ 0
オートジャイロ型紙飛行機 https://tamlab.fc2.page/category-materials/2118/ https://tamlab.fc2.page/category-materials/2118/#respond Wed, 22 Nov 2023 12:25:02 +0000 https://tamlab.fc2.page/?p=2118 二宮康明氏

11月20日の新聞で日本紙飛行機協会会長の二宮康明氏が逝去されたことを知りました。氏は,1967年から2016年まで月刊『子供の科学』で紙飛行機の付録を連載されていました。紙飛行機のパーツの形が印刷されたケント紙が折り込まれていて,パーツを切り離して貼り合わせると紙飛行機が完成するというものです。

氏の訃報に接して,昔作った「オードジャイロ型紙飛行機」のことを思い出しました。

「子供の科学」の紙飛行機と私

私は,小学校から中学校まで「子供の科学」を定期購入していたのですが,付録の紙飛行機を作ったことはほとんどありません。付録は「設計図」も兼ねるものと考えていました。残念なことに私は非常に不器用だったので,切り抜きや貼り合わせがうまくできずに,作品と設計図の両方を失ってしまうのが心配だったのです。

その代わり,ケント紙に鉛筆でパーツの型を描き切り抜いて紙飛行機を自作することは,よくやっていました。深く考えずに作図していたこともあり,良く飛ぶものは作れなかったと記憶しています。

オートジャイロの紙飛行機を作ってみた

あるとき(中学校の3年次か高校の1年次の頃?),「ちょっと変わった機体を作ってみよう」と考えて試してみたのが,オートジャイロの紙飛行機です。オートジャイロというのは,Photo. 1に示すような,ヘリコプターのような回転翼(ローター)を持つ飛行機です。ヘリコプターとは異なり,通常の飛行中はローターは動力から切り離されてフリーになっています。推進力は別の推進用プロペラで発生し,機体が前進して風を受けるとローターが回転して揚力を生み出します。

Photo. 1 小型のオートジャイロ 推進用のプロペラが後部に見える

二宮氏の紙飛行機の中には飾りのプロペラを持つ機体もあったと記憶しております。しかし,揚力を得るための回転翼を持つ紙飛行機に関しては,私は目にしたことがありません。「紙飛行機」の定義が,「全てのパーツが紙でてきていること」だとすると,紙だけで作るのは無理な「軸受け」を含むので,回転翼機は紙飛行機とは言えないかもしれません。しかし,面白そうだと思い,作ってみました。

作り方

フリーに動く回転翼を持つ,という程度の知識しか持っていない状態で作ったのが,以下の図(Fig.1~Fig.4)に示すような紙飛行機です。記憶があいまいだし記録も残っていないので,概略のみ示しています。パーツの形や数も覚えていません。問題の軸受けは,裁縫で使うマチ針とビーズを使っています。(ビーズは,竹ひごと紙で作るゴム動力の模型飛行機でも軸受けとして使われていたと思います。)

FIg1. パーツ一覧(紙の部品はもっと多い)        Fig.2 組み立て 

ケント紙のパーツを切り抜いたら,木工用ボンドで貼り合わせます(Fog.2)。ローターのパーツは切れ込みを入れ,回転方向側の縁の傾きが大きくなるようにして,断面が翼型になるように曲げておきます。

     Fig.3 ローターの取り付け           Fig.4 出来上がり

ローターの取り付け方の記憶があいまいです。たぶん,Fig.3のように,ローターをマチ針のヘッド部とビーズで挟むようにして針を刺しておき,木工用ボンドが乾ききらないうちに,本体の貼り合わせ部に差し込む・・・というやり方だったと思います。

飛ばしてみると

完成した機体を普通の紙飛行機のように手で投げると,ローターが回転しながら進んでいきます。飛行経路も,放物線というよりは若干直線に近いので,ローターが揚力を発生していることは確かです。しかし,よくできた普通の紙飛行機のように,上昇したり,旋回して長時間滞空しているということはありません。高度を下げながら滑空するだけだし,滞空時間も短いです。面白い飛び方はしないなあ,という感想を持ちました。

今調べてみると,実際のオートジャイロは,滑走距離が非常に短い,旋回半径が短い,失速しないなど,多くの特徴を持っていることがわかりました。ローターも,離陸時にはエンジンの動力を伝え,離陸後はクラッチを切ってフリーにするという機体もあったということです。

アニメーション映画の「ルパン3世 カリオストロの城」には「オートジャイロ」と呼ばれる飛行機が登場します。これは,機体の後部に推進用のプロペラが確認できますが,さらにローターの先端にジェットエンジンが付いているという奇妙な構造をしています。TVで観たときは「オートジャイロってローターは無動力のはずなのに・・・。」と思ったのですが,ローターを回転させる機体もあったことを今になって知りました。

もう一度作るなら

紙飛行機のオートジャイロはダイナミックな飛び方をしなかったこともあり,その後,作ることはありませんでした。でも,もう少し工夫すれば面白い玩具ができたかもしれないと思っています。例えば以下のようなことをしても面白かったかもしれません。

  • 材料を変える
    スチレンペーパーなど軽い材料を使う。軸受けに摩擦の小さいものを使う(ライトプレーン用のベアリングがあるみたい)。
  • ローターのブレードの数や傾きを変える
    ブレード(翼)を3枚や4枚にしてみる。また,回転軸を傾けるようにすると,旋回させることができたかもしれない。
  • 紐でひっぱる
    Fig.5のように,紐で引く力を推進力にする。

Fig.5 紐で引っ張るジャイロカイト紙飛行機

3番目の「紐で引っ張る凧のようなオートジャイロ」は,ジャイロカイトローターカイトと呼ばれているようです。潜水艦で引っ張る偵察用の無動力オートジャイロもあったそうです。

国際競技にもなっている紙飛行機では,推進力として手で投げるかゴムのカタパルトを使うことになっています。競技とは別に,凧のように紐を引きながら走ったり,向かい風の中で滞空させる形式の紙飛行機があってもよいのかな,と思いました。私が調べていないだけで,そのような玩具が世の中には出ているかもしれません。

]]>
https://tamlab.fc2.page/category-materials/2118/feed/ 0
読めない本 https://tamlab.fc2.page/category-books/category-books-art/2086/ https://tamlab.fc2.page/category-books/category-books-art/2086/#respond Mon, 20 Nov 2023 10:30:39 +0000 https://tamlab.fc2.page/?p=2086 ヒューゴ・メルシエ∥著,高橋 洋∥訳:人は簡単には騙されない:噓と信用の認知科学,青土社(2021/03)

初めに言い訳・・・

暑さによる体調不良で,夏の間は何もできないまま過ごし,気が付いたら11月も半ば過ぎてしまいました。夏バテに加えて,慢性の腰痛持ちだったのがひどくなってパソコンの前に座っていられなくなりました。

電子回路の不具合やソフトのバグなら,幾つかの原因を仮定し,1つずつ条件をコントロールして動作を確認していく,というやり方で原因をつかめます。しかし,自分の身体となると,そんな悠長なことは言ってられなくて,とりあえず良さそうなことは全部やってみました。腰痛コルセット,ピップエレキバン,漢方薬,ビタミン剤,・・・などなどを試し,どれが効いたかは不明なのですが,やっと座れるところまで回復してきました。結局,「自然治癒力」,「日にちぐすり」が一番効いたのかもしれません。

というわけで,ずっと何もできないでおりました。行動記録を兼ねている「読書日記」も全く更新できませんでした。

でも何か書かないでいると,どんどん書くことができなくなっていきそうです。実際,書けなくなっているし,ソフトウェアのコーディングもどんどん忘れていきます。で,リハビリということで書き始めましたが,今回のお題が,情けない事に,「読めない本」です。

読めない本

読めない本が増えたのは図書館で本を借りて読むようになってからです。せっかく来たんだからと貸し出し上限の冊数まで借りるので,性が合わない本も借りてしまうからでしょう。でも単なる老化現象で難しい本が読めなくなっているだけかもしれません。

今回,紹介するのは読めない本の1冊です。この本を手にとったのは「人間はなぜ,あることを信じてしまうのか?」ということに昔から興味があったからです。同じ事実に接しても,全く相反する意見を持つのは何故か? なぜ宇宙人やUFOなど真偽の確認のしようのないことを信じる人がいるのか?(あるいは,信じないのか?),そして,それはどのような心の働きでそうなるのか?が知りたいのです。

一方,科学的な知識(例えば進化論や相対性理論)は,直観に反しているうえに一般の人には確認が難しいのです。にもかかわらず,(例外はあるものの)広く受け入れられているようです。それはなぜなのか。科学的知識が受け入れられている状況を安定して保つことは大事だと考えています。というのは,現在,大きな問題になっているパンデミックや薬害,気候温暖化などに適切に対応するためには,専門家ではない多くの人たちが科学的な知識や考え方を知っていることが重要になると思うからです。

また,私は技術に関する知識やスキルを伝えることでお給料をいただいていたので,勢いそういうことに興味を持つことになったのでしょう。

この本には,上のような興味に関連する考察が多く述べられています。でも,あまりにも文章が読みにくくて,読み進めることがなかなかできませんでした。 

ですから,この投稿では本書の詳しい内容の紹介はしません。詐欺師はどれくらい成功するのか? プロパガンダは本当に効果があるのか? 陰謀論を信じる人はなぜ信じるのか・・・などに興味がある方は読んでみる価値はあると思います。

さて,この本,(私には)わかりにくい文章が連続します。例えば次のような文章があります。

直観的に言えば、コストのかかるシグナルが機能するにあたって重要なのは、信頼に足るシグナルを送る人によってコストが支払われる点にある。(p.50)

直観的に言えば」とありますが,直観的には何を言ってるかわからない文章です。

「コストのかかるシグナル」とは「何かを伝えるための,手間ひまかけた行動」のことだろうと思います。「信頼に足るシグナルを送る人」というのは「“信頼に足るシグナル”を送る人」なのか「信頼に足る“シグナルを送る人”」なのかが判然としません。後者だとして解釈すると。この文章は,

手間ひまかけて伝えようとしたことが伝わるためには,伝えようとする人が信頼に足る人であることが大事です。

と言っていることになります(この書き換えた文章もわかりにくく,間違っているかもしれませんが)。そうであるなら,そのように書けばよいのに・・・。ひょっとしたら元の英語の文章で読んだ方がわかるかもしれません。本全体を通して,ずーっとこんな文章が続きます。

研究室の学生と英語の論文の読み合わせをすることがありました。技術系の,それも私の専門とする分野のものなので,数式の理解などは別にして,文章は不自由なく読めます。ところが,あるとき学生がweb検索の高速化に関する論文を選んできました。この論文は一読しても意味が取れなかったのです。特に難しい単語を使っているわけではないのですが,微妙に意味が異なっているためなのか,とにかく意味が頭に全く入ってこないのです。

このことは,読めない理由のかなりの部分は,読み手(つまり私の)予備知識の有る無しによるところが大きいことがわかります。

でも,それだけではないようです。本書「人は簡単には騙されない・・・」は,心理学や生物学の用語を使っているとはいえ,和訳で読んでいるので決してなじみのない意味のとれない単語があるわけではないのです。

次の文章は,筆者が「わかりにくい文章」の例を挙げている段落です。長いけれど引用します。

文章がわかりにくくなればなるほと、それたけ理解しようとする読み手の努力が必要になる。その結果、他のあらゆる条件が等しければ、不明瞭さはその文章を読み手にとって自己関連性の薄いものにする。一例をあげよう。「エアバッグが膨張するような衝撃が生じたとき、エアバッグの膨張装置は、過度の内的圧力が生じるような様態で作動する。その結果、膨張装置のケーシングが破裂して、金属片がエアバッグを突き抜け車内に飛び出してくる可能性がある。」(p.300)

和訳の文章が,硬めの熟語を使った,もったいぶった書き方になっています。これがわかりにくさの原因の1つでしょう。前半の「文章がわかりにくくなればなるほど,・・・自己関連性の薄いものにする。」は「わかりにくい文章は自分とは関係の薄いものとして受け取られる。」ということです。この主張は本書の中で複数の箇所で出てくる重要な考え方です。それが「わかりにくい表現」で訳されているのは皮肉です。

さて,この段落の後半で分かりにくい文章の例として挙げられている「エアバッグが・・・可能性がある。」も,もったいぶった表現ですが私には明瞭に理解できます。これはたぶん内容が技術的なものだからでしょう。このことからも,文章がわかりにくいかどうかは読み手の持っている知識や経験にも関係していることがわかります。(ですから,この本を読みにくと感じる理由は,私に知的な問題があるためで,心理学や認知科学の本を読んでいる読者なら楽に理解できるはず,という可能性は多いにあるります。)

好意的に解釈するなら,本書には,筆者の言うところの「反省的(reflective)な思考」を必要とする文章が多いためかもしれません。「反省的な思考」を必要とする表現の例としては次のようなものが挙げられています。

バットとボールの値段は合わせて1.1ドルである。バットはボールより1.00ドル高い。ではボールの値段はいくらか?」 

この問いかけに対しては普通の人は直観的には正しい解答が出せません。こういう計算に慣れていない人にとっては,ちょっと立ち止まって考えないと誤った答え(例えば「ボールは0.1ドル」)を導いてしまいます。このような「立ち止まって考える」ことを読者に要求する文章が続くと,確かに読みにくくなるでしょう。

なお,「反省的」という言葉は,心理学や教育学で使われている用語のようですが,一般の読者にはわかりにくいと感じます。どうしても漢字の熟語で書きたかったら「内省的」とか「熟考」などと訳した方が良いかもしれません。

伝わらない言葉で得をする人たち

いわゆる「人文社会系」の方達が書く文章に関して,私は昔から1つの疑惑というか仮説を持っています。それは「この人たちは必要以上にわかりにくい文章を書くことで何らかの利益を得ているのではないか」ということです。難しい文章で書くことのメリットは,次のようなのではいかと考えています。

  • 大した内容ではないが,難しい文章で書くと有難みが増す
    逆に,わかりやすい文章で書くと誰でも導き出せる内容だと軽んじられるかもしれない。身もふたもないが,これが一番ありそうだと考えている。
  • 難しい文章で書くと,訳のわからない人たちに絡まれない
    自分たちの学問的コミュニティに「知的レベルの低い」人が入ってきたり,論争をしかけられたりせずに済むかもしれない。多少,好意的な仮説。
  • 難しい言葉でないと伝わらないこともある
    これは高名な評論家の方の発言。一番,好意的に解釈するとこうなる。

もちろん,学問的な厳密さを求めると,どうしても回りくどい,わかりにくい文章になることはあります。わかりやすい文章だけで書いた論説は,ひっかかりがなく,読んだあと何も残らないかもしれません。読者にある程度「反省的な思考」を強いる文章が混ざっていた方が,深い内容が伝わる,ということはあるかもしれません。

特に,直観に反する結論が導き出される場合は,読者はどこかで反省的な思考をすることになります。ですから全く反省的思考を要しない文章だけで内容を伝えるのは難しいでしょう。

でも,人文系の書籍の論説のかなりの割合のものが,有難みを増し部外者が口を出さないようにするために,難しい文章にしているのではないかと見ています。文系で特に目立つと思うのですが,理科系・技術系の場合も同じことが言えます。

技術系の場合,伝えたいことが伝わらなかったら事故につながるし,作れるものも作れなくなります。実験科学の分野でも,論文を読んだ人が実験を追試するためには,再現性が大事なので,わかりやすい文章が求められます。とはいえ,一般の読者には知られていない業界特有の用語(ジャーゴン)をちりばめたりして書き手を実際より大きく見せることはよくありそうです。私の投稿だって,そのきらいはあると思います。

本書には,理解しにくい文章を書くことが大きな利益になった(と筆者が考える)例が幾つか挙げられていて,その最も成功した人物としてフランスの哲学者・精神科医のジャック・ラカンを挙げています。(あくまでも筆者のヒューゴ・メルシエの意見ですよ。)例として紹介されているラカンの文章は,以下のようなものです。

端的に言えば、自然の特異性は一つでなく、ゆえに論理的プロセスが持ち出せるようなものではない。自分が何か、つまり名づけられることからそれ自身を識別する何かに興味を持っているという単なる事実から自分が除外するものと自然を呼ぶプロセスによって、自然はそれ自体が非自然の混合であると認める以外のいかなるリスクも冒さない。(p.282)

端的に言って難解な文章です。この段落の文章だけでは全く理解できません。一部だけ切り出して批判しないで欲しい,前後の段落(あるいは書籍全部を)読めば理解できる,と主張されるかもしれません。そうだとしても,これだけ「論理的プロセスを持ち出せない」文章にはなかなかお目にかかれません。

 最終章から読むとよいかも

本書で主張されている内容を手っ取り早く理解したかったら,最終章(第16章 人は簡単には騙されない)から先に読むとよいと思います。本書全体の流れを頭に入れることができるからです。

この章の最後に,現在,世界で起きている様々な問題である,陰謀論の拡がり,党派の間,専門家と一般人の間の分断などに対して何ができるかについてヒントになる文章があります。

科学的理論は、そのほとんどが深く直観に反するにもかかわらず、社会のほとんどの階層に浸透している。しかも科学者を個人的に知っている人はほとんどおらず、相対性理論や自然選択による進化の理論などの科学的理論を真に理解している人となるとさらに少ない。直観に反する科学的な見方の広範な浸透は、科学的な営為が依拠している、欠陥はあるにせよ堅実な信用の基盤に支えられているのだ。(p.346)

この「信用の基盤」は,データの統計的処理,多様な被験者の確保,実験の数を増やす,利害関係の影響を避ける,後付けの正当化を避けるための仮説をたてる,などで保護され強化できると著者は述べています。それに加えて,他の研究者が検証できるような論文の公開,独立した研究グループによる追実験,研究の過程や成果の透明性を確保することなども必要だと思います。

このように築かれた信用の基盤により,一般市民と科学的な知識は結び付いている,しかし,この結びつきは直接的ではなく,複数のコミュニケーションのリンクによってつながっていて,その連鎖は弱い,と筆者は言っています。本書の最後の段落を引用しておきましょう。

人を説得するためには,すでに確立され長年維持されてきた信用,専門知識に裏づけられた見解の明確な表明,そして堅実な議論が必要とされる。正確ではありながらメディアなどの機関は、苦戦を強いられざるを得ない。信用と議論で構成される長い連鎖に沿ってメッセージを発し続け、その信頼性を保っていかねばならないからだ。奇跡的にもこの長い連鎖は、私たちを最新の科学的発見や地球の反対側で起こったできごとに結びつけてくれる。私は、この脆弱な連鎖を強化し拡張していく新たな手段が見つかることを切に望んでいる(p.346)

私も「連鎖を強化し拡張していく新たな手段」として何が使えるのか大いに興味があります。そして,その中で使われる文章は,わかりやすく工夫されたものであってほしいと考えています。

]]>
https://tamlab.fc2.page/category-books/category-books-art/2086/feed/ 0
【衛生組合】「ちきゅうのひろばin米沢」開催のお知らせ https://tamlab.fc2.page/atago-coop/2080/ https://tamlab.fc2.page/atago-coop/2080/#respond Fri, 29 Sep 2023 10:05:56 +0000 https://tamlab.fc2.page/?p=2080 環境問題に関するイベントを開催します

各町内に回覧でお知らせする予定です。

イベントの名称:ちきゅうのひろば ~環境を感じる,そして考える~

開催日時:令和5年10月28日(土)10時00分~15時00分

開催場所:米沢市体育館及びその周辺

]]>
https://tamlab.fc2.page/atago-coop/2080/feed/ 0