72の法則

年利0.01%で銀行にお金を預け2倍になるには7200年かかる,という記事をネットで見ました。そこでの計算式が簡単だったので紹介しようと思います。

複利計算で預けたお金が元金の二倍になるまでの年を計算する簡単な公式で72の法則というものがあるそうです。年利xパーセントの時,
n=72÷x
というものです。
これは
(1+a)^n=2 (^はべき)
より,両辺の対数を取り
n log(1+a) = log 2
aの絶対値が小さい時,log(1+a)はaで近似できるので
n×a ≒ log 2
a=100xなので
n≒100(log 2)÷x≒69.31÷x
約数が多く割り算が計算やすいことから69でなく72で近似することにすると
n≒72÷x
これが72の法則というわけです。
年利0.01%のとき7200年という近似ですが,正確には6932年です。
まあ,6000年以上同じ利率という仮定なのでこの計算自体ナンセンスに近いので,200年以上違っても問題ありません。それより,対数や指数関数を使わず簡単に計算できるので便利な式ですね。

comments

日本のアニメ100周年

今年2017年は日本のアニメ100周年の年です。

1917年に下川凹天,幸内純一,北山清太郎の三人が相次いでアニメ作品を製作・公開しました。
日本のアニメ100周年を祝い次の100年に向けたプロジェクトが進行中です。
http://anime100.jp/

今年7月に開催されるジャパンエキスポでも日本のアニメ100年を祝うコーナーが設けられ,日本のアニメのベスト100を決めるイベントも行われています。
http://www.japan-expo-paris.com/fr/menu_info/presentation_100809.htm

他にも関連して様々なイベントが開催されるようです。

comments

「ザ・ビートルズ EIGHT DAYS A WEEK The Touring Years」

映画「ザ・ビートルズ EIGHT DAYS A WEEK The Touring Years」を観ました。

1964/65年当時,小出力のアンプしかなく,返しのモニターもなく,ものすごい観客の声の中で,演奏がぴったりあっているのがすごかったです。

私は中学生のころ,ザ・ビートルズに夢中になって,ザ・ビートルズを好きな友達と一緒にレコードを一通り買い集めたのですが,なぜか唯一のライブは買わずじまいでした。40年近い時を経てライブのCDが出ました。

ライヴ・アット・ザ・ハリウッド・ボウル

ライヴ・アット・ザ・ハリウッド・ボウル [ミュージック]

価格: ¥ 2,808

アーティスト: ザ・ビートルズ

出版社: Universal Music =music=

出版日: 2016-09-08

商品カテゴリー: CD

Supported by amazon Product Advertising API

comments

超時空要塞マクロス 愛・おぼえていますか

 マクロスの新シリーズΔ(デルタ)の制作を記念して,過去のマクロスシリーズの劇場版のBlu-rayが廉価版で発売されます。

私は,この機会に,1984年の「超時空要塞マクロス 愛・おぼえてますか」を予約しました。

TVシリーズの内容を知らないとすじがよくわからないという大きな欠点はあるものの,日本のアニメに興味があるなら一度は観てほしい名作です。いわゆる,板野サーカスを見るだけでも価値があります。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

comments

アート・デザイン学系の機材

最近,鴨川校 デザインカレッジで撮影する作業の手伝いをする機会がありました。

最新の機材を紹介しましょう。

4Kカメラ

こちらが4Kカメラ,つまり幅4000ピクセルの超高解像度のカメラです(フルHDは2Kです)。カメラの段階では,上映するときの解像度より,ずっと大きな解像度で記録しておけば,画像の一部分を切り取って,それをもとにデジタル加工をしても劣化がない画像を作り出すことが出来ます。このカメラはプロ用機器として安い方なのですがオプションもふくめ,高価なものです。

グリーンスクリーン撮影風景

グリーンスクリーンを使った撮影の風景です。よく知られているように,青または緑の布などを背景にして撮影した後,その色を透明にして様々な合成がされます。私はこのとき初めて知ったのですが,少し明るい色のポストイットをマークとしてパラバラつけていました。このマークをもとにカメラとスクリーンの位置関係を割り出すのに使うということです(つまりマークをつけるときに規則的な配置でつけるとかえって位置関係が分からなくなることがあるので「パラバラ」なのです)。

また,メインとの照明はLEDでした。照明は昔は大変に発熱するので暑くて大変でしたが,LEDになってずいぶん改善されたとのことです。ただし,やはり温かみのある色が欲しいときは発熱するランプも使うようです。

私は芸術系の授業のことはよく知らないので,大変興味深い撮影でした。

comments

自動車制御実験

自動車制御実験という授業を担当しています。

今日は先日紹介したマイコンカーの分解の1日目です。コンピュータの学校でこういうことをしているのは珍しいかもしれません。

本日の作業はここまでです。

本日の作業終了

comments

ゲームプログラマになるには(6)

今日は少しプログラムから離れてクソゲーの話。

「クソゲー」という言葉があります。ゲームの紹介をする授業を担当したとき,反面教師として,というかネタとして,そんなゲームを買い集めた時期がありました。どんなゲームであろうと,ひとたび世の中に出るほどのゲームであるから,ゲームを作った人はきっと命を削る思いをして作り上げただろうに,クソとは何ごとか!と思わないでもないのですが,つい,興味の赴くまま買ってしまいました。

たいていの場合,クソゲーは操作性が悪いのです。見たとおりに動かない。区別すべき敵味方が良くわからず,自分がやられたかどうかすらわからない。基本的な部分でこのようなストレスがかかるとすぐにやる気がうせてしまいます。よいゲームはごく最初は戸惑っても,少しずつなれれてきてやりこむと指の動きがキャラクターと一致してるような,大げさに言えば自分の身体の延長になったかのような気にさせるものですが,そんな気すらさせないうちにあきらめてしまう。考えてみると,
簡単すぎでもなく難しすぎでもなく,
時々壁に当たり乗り越えるとさらなる達成感が待っている
というような要素の基本となるのはヒューマンインタフェースがよいことと思います。逆にココがダメだとルールがどうだとかグラフィックスがきれいかどうかとか言う以前に「クソゲー」になってしまうのでしょう。

私が京都コンピュータ学院に来たてのころに,アメリカの大学と単位互換な「対話型システム」という名前の授業(元はHuman Computer Interaction,直訳すると人間と計算機の相互作用)を担当したのですが,いろいろ勉強するうちに,ゲームはヒューマンインタフェースの最先端なのだと思いました。よいゲームとは何かを考えてみるとき,ヒューマンインタフェースの勉強は役に立つと思います。

 

comments

ゲームプログラマになるには(5)

前回は絵柄を変えるアニメーションの話しをしました。次は移動のアニメーションの話しをしましょう。

時間とともにモノの位置が変わるというのは動きの基本です。ゲームを形作るプログラムの骨格が,一定時間(例えば1/30秒)ごとに画面を書き換えるようなループになっている場合,毎回の描画タイミングごとに一定量だけ動かせば,等速直線運動になります。繰返しごとに,例えば,板のx座標を1増やし,y座標を1増やすと板は等速直線運動します。
x=x+1;
y=y+1;
この1と書いたところを両方とも2にすれば倍の速度になります。このx座標とy座標の変化量を様々な数で組み合わせると様々な方向に移動します。ある領域を設定して移動量を正負逆転すれば往復運動をしたりします。

ただ,シンプルなのはこれまでで,重力を考慮した移動や,ぐるぐる回るような移動は,少し,物理の知識が要ります。ただ,簡単な2Dアクションゲームの場合は,何コマ分かの移動を表にしてそれを参照することで運動を実現するということが行われます。例えば,20フレームで必ず画面から出てしまうような移動ならば,x座標とy座標を20個分記憶する配列を用意してそこにあらかじめ計算しておいた数値を記憶しておき,ゲーム中に参照すればよいわけです。

3Dになってからは質点の運動学の知識が必要になるのですが,一度物理的な意味をきちんと理解したうえで,パターン化してしまえばなんとかなると思います。物理のシミュレーションはつきつめると
・位置の時間的変化が速度
・速度の時間的変化が加速度
であり,ゲームループでは
・加速度から速度を計算し,
・速度から位置を計算する
ということを繰り返す,ということさえ知っていればよいのです。例えば,等加速度運動は1次元の運動であれば
v=v+1;
x=x+v;
というようなものです。繰り返すごと速度に相当するvが一定の値1だけ増えます。

…今回は少し,あるいはかなり難しかったかもしれませんね。でも,アクション系のゲームを作るときは同じ原理で出来るのでがんばってみてください。

comments

ゲームプログラマになるには(4)

2Dグラフィックスの基礎を覚えたら,絵をはりつけた板を並べるようなタイプのゲームはすぐ出来ると思います。次はアニメーションの話しです。2Dのアニメーションは大きくわけて2つあり,絵柄を変えるアニメーシヨンと移動するアニメーションがあります。

今回は,絵柄を変えるアニメーションの話ししをしてみましょう。15パズルなどを作るとき,絵柄を変えるのですが,時間の経過に合わせて絵柄,本質的には絵の番号を選ぶことができればよいです。一定時間ごとになにかするにはタイマーいうものを使うか,もともとゲームループといって1秒間に30回描画するループであればそのループ回数のカウントを使うことになります。とにかく,例えば1/10秒ごとに何かする段取りが出来たとすると,絵柄を0番目,次は1番目,次は2番目のように変えていければよいです。4枚の絵を繰返し表示するならば
0→1→2→3→0→1→2→3→…
という番号のくりかえしになります。これは
0→1→2→3→4→5→6→7→…
という繰返しのカウントを4で割った余りになります。mod,C言語では%演算子なのですが,剰余の計算が役立ちます。ついでに毎コマで無く3コマごとにするのは整数の割り算です。
1/30秒ごとに処理するとし,繰返しカウントをcountするならば1/10秒ごとに0から3までの絵の番号iを計算する式は次のようになります。
i = ( count  /  3 ) % 4; 
ちょっと難しいかもしれませんが,本質的には整数の割り算と余りなので,ゆっくり考えれば納得できると思います。そして一度この式が分かってしまえば,何枚の絵の繰返しアニメーシヨンでも自在にできるようになります。プログラム言語を学習するとき,剰余を何に使うのかと思うことがあるかもしれませんがこういうところで役立ちます。

ゲームプログラマになるには数学の知識が必要では思われるかもれませんが,このように繰返しアニメーシヨンをさせたいときに,割り算と余りを知っていれば,このような計算ができます。初めは難しいかもしれませんが,一度じっくり考えて納得してしまえば,あとはうまくいった式を使いまわせばよいのです。

AW

comments

ゲームプログラマになるには(3)

昔は文字だけのコンピュータゲームがありました。ポケコンを買ったときに,ポーカーとか月軟着陸ゲームとかサンプルであった記憶があります。(オリジナルの)ローグのようにテキストでかなりのことも可能です。が,やはりグラフィックが必須です。

簡単に言うと一枚の板に絵を貼り付けたものがスプライトで,そのスプライトを一定時間ごとに表示するというのが2Dゲームの基本です。1枚スプライトを表示することを覚える。その表示位置の変え方を覚える。貼り付ける絵の変え方を覚える。ここまでいくとかなりのことができます。私はネットやろうぜ!の授業を担当したときは,ここまでできたら,スプライトを4×4個並べて15パズルを作りました。コマの移動はコマでなく空きを移動すると考えればよく,アガリの状態をチェックするのはそれほど難しいことではありません。コマが移動するアニメーションは後につけられるようになりましたが,瞬間的に絵柄が変わるだけでもゲームとして成立します。

簡単な15パズルができたら,見かけが似たゲームを作ることが出来ます。私は,マインスイーパー(もどき)や,リバーシを作りました。だんだんアルゴリズムが難しくなります。もちろん,リバーシはプレイヤー2人で交代でやるAIなしのものですが…。(簡単化した)テトリスも作りました。

もし2Dグラフィックの基礎をおぼえたら,ぜひ15パズル,マインスイーパー,リバーシ,テトリスを作ってみてください。

comments