戦略会議

各プロジェクトで作成した企画書を互いに読む。 次に広告にアクセスし、プログラムをダウンロードし、 取り扱い説明書通りに実行されるのかどうか試してみる。 不具合や問題点があれば、ここで意見をいい、修正する。

広告ページや取り扱い説明書の検討

色を使ったり文字を読ませる部分に誤りがあると、表現力も半減するので、 よく推敲すること。

チーム内での聞き取り調査

各チームの互いのプロジェクトの出来をチェックし、 正直な感想および 改良するための提案 を述べる。 試用によって指摘された点は、次回までに改良する。

の 4 点をチェックすること。

描画ソフト

絵を描いてみよう。

起動と終了

コマンドラインから

%tgif &

終了は、Tgif 画面で Ctrl-q または、

Fileメニュー -> Quit

Tgif のメニュー

ドローエリア内の動きを確認しよう。

また、キー操作で画像のつぶの細かさ、グループ化、 複製や PNG 形式への出力ができるようになる。

日本語の出し方

作図ツールで T (Text) を選んだ直後に Ctrl-SPC を押すと kinput2 (日本語入力窓) が起動する。アルファベットを打ってからだと、 英語フォントに切り替わってしまって Ctrl-SPC を押しても kinput2 が起きない。 Font メニュー (立ち上がった状態では W) で、Ryumin か Gothicを選んでから Ctrl-Space を押す。

日本語入力の ON/OFF は、 Shift-Space

Ctrl-Space を押したときに

There is no Selection Owner of _JAPANESE_CONVERSION_

というエラーが出るときは、kinput2 が落ちている。 Ktermから

%kinput2 &

として立ち上げなおすと、kinput2 が使えるようになる。

起動と終了

% tgif &

と行い、終了は Ctrl-q である。立ち上げた directory にファイルが保存される。 保存は Ctrl-s である。新規保存ならば、 ファイル名のみを入力し、 確定する。 .obj が勝手についてくる。 ls すると

ファイル名.obj

が出力されている。

PNG 形式への出力

左上の出力形式を選ぶアイコンで、PNG 形式を選び、Ctrl-p を押す。ls すると

%ls
ファイル名.obj ファイル名.png

が出来上がっている。

2D Draw 系ツール での作画

Draw 系の作画ツール Tgif は、簡単な地図、流れ図、E-R 図、平面図、 立体投影などに使われる。 Windows ではいわゆる CAD と呼ばれるソフトウェアが相当する。

始めに下地から作り、上に乗せていくイメージである。 立ち上げると、ツールバーがついた画面が出てくる。 上のツールバーでは、図の性質を変更できる。中央クリックで、 選択表が表れる。

上部ツールバー

左のツールバーでは、どのような図形を書くのか、 あるいは文字を書くかを選ぶ。

左側ツールバー

ツールバー各部分の解説

色 上段をクリックすることにより色を変更する。 下段は何層か重ねるかどうかを変更する。

塗りつぶしパターン上段で、縁どりのみか、あるいは塗りつぶすかを選択。 塗りつぶし方も設定できる。下段では、縁どりを見せるか見せないかを選択する。

つなぎ方パターン上段では線を直線か、曲線でつなぐかを変更できる。 下段では線の太さを変更できる。

線の種類パターン上段では実線か破線かを選べ、 下段では矢印をつけるかつけないかを選択できる。

フォントン大きさパターンフォントの種類と大きさを選ぶことができる。 日本語入力は kinput2 を用いている。 Ctrl-o で ON/OFF とし、日本語入力を切り替える。 入力した文字でよければ他にマウスを移すか、 左の選択ボタンをクリックすることで決定される。

印刷出力形式のパターンファイルの保存は obj 形式だが、 それをファイルへ印刷 (Ctrl-p) することにより、ファイル形式を変更できる。 その変換の形式をここで選択することができる。

次に左のツールバーの説明をしよう。

図形選択 上のツールバーを使って変更するとき、 変更する図形を指定する

テキスト入力パターンテキストを入力するときに使う。 入力は Ctrl-o で切り替える。もし、入力 Window が出なくなったら、 kinput2 & を実行する (日本語入力プログラム "kinput2" を復活させる)。

円を描く円を書くときに使う。

線分を描く上は右クリックで線分を書き終わる。 下は、最後に右クリックしたとき決定された終点から開始点をつないで図形を作る。

円弧を描く円弧を描くときに使う。

楕円を描く角の取れた図形を書くときに使う。

フリーハンドで描くフリーハンドで書くときに使う。

角の位置を変更する曲線や直線を選択したあと、 微妙に位置をずらすときに使う。

回転させる選択したあと、回転させたいときに使う。

色の変更

上段をクリックすることにより色を変更する。 下段は何層か重ねるかどうかを変更する。

書きはじめは左クリック、書き終りは右クリックである。

アンドゥは Ctrl-z である。書きはじめのときに、どの図形を書くか考え、 ツールバーで色や形状を選択するとやりやすい。

書いた直後の図形を変更したい場合は、左上の選択ボタンを押すと、選択されるので、 ツールバーで変更を行う。それ以前に書かれた図形は、選択ボタンを押し、 マウスで囲むと自動的に選択するので、 選択がうまくなされたあとツールバーで変更すればよい。

保存形式

保存は Ctrl-s で、初回にはファイル名を決定する画面が出る。 保存形式は Tgif 固有の OBJ 形式である。

ファイル名のみ入力し、リターンキーを押す。Kterm で確認すると、

%ls
ファイル名.obj

というファイルができ上がる。これを PNG 形式に印刷(ファイル出力)するには、 PNG 形式のアイコンを上から 2 段目のもっとも左のアイコンから選び、 Ctrl-p (印刷) とする。

Kterm で確認すると、

%ls
ファイル名.obj ファイル名.png

とファイルが 2 つでき上がっているはずである。 HTML 文書にリンクして使えるのは、PNG 形式のみである。

作品例

いくつか例を見てみよう。

地図

home.obj ファイルを home.png 形式にして、 貼りつけたものはこのようになる。

完成図

流れ図

流れ図を書くには、専用の Shape 機能を使うと便利である。 ツールバー上段の Edit -- Shape から選ぶと、 図形と文字を適宜配置するようになっている。 下図は tgif を PNG ファイルに出力したものである。

完成図

投影法

投影法には平行投影と等視投影がある。 三面図による展開を斜投影で立体図化したものは、次のようになる。

完成図

奥行は 45 度、長さを半分で表す。また立方体を等視投影で見ると、

完成図

となる。ここでは、まず、 垂直軸を決める。長さは全て同じ大きさであるが、残りの軸は 30 度傾けて表す。

くりかえしでパターンをつくろう

Tgif で遊ぼう

作風の好みは分かれるところであるが、 こんな絵 が書けるということを紹介しておく。 技術が使えそうなら練習してみよう。 ちなみに 公益ルビ緒の写真 も、Tgif のみを使用している。

他には ここ ここ など。検索サイトの先を見ると、さまざまな大学で使われているようである。

色々な例

まず花びら 1 枚を書いた。そのあとコピーし回転させながら 4 枚分を書く。 ひとつのパーツを書いたら、全体をコピーし複数のパーツを書く。 最後に色を変更する。

パーツと複製

青 赤

ブラウザですごろく

HTML 文書に動かしたいプログラムを書く。


<!--#exec cmd="./プログラム.rb"-->

プログラム では画像をランダムで、 HTML 形式で出力するようにする。

ここでは、 image という directory に, one.png, two.png, three.png. four.png, five.png, six.png を格納した。


five.obj    four.obj    one.obj     six.obj     three.obj   two.obj
five.png    four.png    one.png     six.png     three.png   two.png

一例

.htaccess には


.shtml, .html
と .html ファイルの前に .shtml ファイルを通すように許可を出す。

画像変換ソフトとシステム

Kterm で、画像変換ソフトの display コマンドを使うと、 作成した PNG ファイルを X 画面に出すことができる。

%display 画像.png &

system コマンドをプログラムに仕込むと、 絵とプログラムが同期する。 display_anim.rb と飛びだす


#!/usr/koeki/bin/ruby
#coding: euc-jp

STDERR.print("くまさんが現れた!どうする?\n")
STDERR.print("a: 逃げる \t b: 鉄砲で攻撃 \t c: 話しかける\n")

system('display bear.png&')

answer = gets.chomp!

if answer == "a"
print("逃げたが話しかけられた!\n")
elsif answer == "b"
print("鉄砲は当たらなかった!\n")
elsif answer == "c"
print("くまさんはイヤリングを返してくれた!\n") system 'banner NEXT STAGE'
end system('pkill display -U `whoami`')

画像を出力するには、

% display 画像 & 

とするが、これを プログラムに仕込むには system 文を使う。 display コマンドは、ImageMagick というソフトウェアを動かしているので、 これを終らせないと画像も消えない。 画像を消すにはソフトウェアのコマンドを止める必要がある。

% pkill 停止させたいコマンド

を実行し、ImageMagick をプログラム内で強制終了させる必要がある。

-U はオプションで、-U ユーザ とすると、特定のユーザの指定したコマンドを止める。

whoami は、 今その Kterm を動かしているユーザ ID を知るためのコマンド。

whoami を使って 名前を出す工夫 もできる。

絵が出る位置を指定したり、アニメーションを使いたいという場合、 画像の制御 ができる。

display コマンドをもっと使いこなす

display-geometry という option を使うと、 左上端部の位置を指定することができる。 左上端から原点とした座標位置を指定することによって可能となる。

%display -geometry +右への距離+下への距離 画像.png &

原点に出力する場合は

% display -geometry +0+0 画像.png &

アニメーション

パラパラマンガ的にくり返すこともできる。 animate というコマンドを使う。 para1.png, para2.png, ..., para6.png と用意したとき、

%animate -delay 100 para*.png &

とすると、パラパラが 1 秒ごとでくり返される。-delay で、 パラパラの早さを指定できる。 default は 1 で、1/100 秒の意味である。

先にパラパラとめくるメモ用紙部分を作成してから、パラパラ部分を描くと、 パラパラがブレずに済む。

枚数を多く、早く取り替えると動きが滑らかになる。

convert コマンドを使って、 gif アニメーションにすることもできる。 gif アニメーションは、ホームページで使用できる。

% convert -delay 30 imm080*.png imm081*.png imm08_mars.gif

として、作った例:

静止画像を動かすには

くまを動かしてみよう。 display_move.rb


#!/usr/koeki/bin/ruby
#coding: euc-jp

i = 0
while i < 700
system("display -geometry +#{i}+0 bear.png &") sleep 1 system("pkill -U `whoami` display") i += 100
end

もぐらたたきなどに使えるだろう。

誰がログインしているのか

ユーザの名前をとくに入力しなかったときに whoami で得られた値を表示することもできる。


#!/usr/koeki/bin/ruby

STDERR.printf("名前は?\n")
name = gets.chomp

if name == ""
name = `whoami`.chomp
end printf("%s は大きな宿場町にやってきた\n", name)

ユーザ ID ではもの足りない学生は、 finger などを使ってみるとよいかもしれない。


#!/usr/koeki/bin/ruby

name = `whoami`.chomp
line = `finger #{name}`

if /(life:)\s+(\S+)\s+(\S+)\s/ =˜ line
surname = $2 name = $3
end printf("%s は大きな宿場町にやってきた\n", name) printf("市長: おやこれは %s さん、お名前は伺っておりますぞ\n", surname, name)

Kterm で finger ユーザID とすると、何が起こるか調べよ。

プログラムでブラウザを起動させたい

ホームページを打ち出すようにし、 そのホームページを立ち上げて結果を見せたいことがある。


#!/usr/koeki/bin/ruby

url='http://www.google.co.jp'
system "firefox -remote 'OpenURL(#{url},new-window)'"

url にいれる変数をいろいろ変更して確かめてみよう。

背景を変える

xsetroot -solid pink

などと色を指定すると、背景の色が変化する。 system で組み込むのも面白いかも知れない。

プロジェクトで使用する技術について

各プロジェクトには前期の内容を含める。

  • 配列を含むプログラム
  • open -- end を含むプログラム (少なくともどちらか一方のプロジェクトでは含むようにしておく)

来週以降に作る Web イメージの全体像 を参考に、いろいろ考えてみよう。

技術的な面に関する著作権問題

占い、心理テスト等、数週間で著者からの使用許可が下りないものはやめる。 またフリーの画像も使用禁止。

  • 著作権の問題と技術向上のため画像は全て自分たちで作る。 画像は Tgif、自分達で撮影した写真を使用。 写真を加工する場合は Gimp で行う。
  • ホームページの素材等も自作する (例 CSS で URL を使うしかけ 見か け)。
  • 占いは禁止。(理由: 占いで人生が幸せになることはないから。)
  • 心理テストも禁止 (理由: 著作権の問題が常に発生するため)。
  • 人気アニメやゲームの結果を利用したものは、著作権違反のため違法行為で ある。学則により禁止。

分からなければ教員に詳しく聞くこと。

人気の高い作品を作るコツ

以下の点に気をつけると、独創性がありユーザが使いやすいため、 得票が得られやすい。

  • エントリーする部門はなるべく他プロジェクトとぶつからないようにする
  • チーム内で異なるプロジェクトに参加しておく
  • 画像を多用して、自作静止画や自作アニメーションを使う
  • ダウンロードするときには tar.gz 形式が望ましい。 (わからない場合は全てのファイルが出来上がってから質問すること)