2009年9月20日日曜日

事故怖い怖い


 すごい見覚えのある風景に思わず。
免許とっても車乗らない自分まじ賢いと思わざるを得ない。

2009年9月15日火曜日

ローカル変数のメモリ配置?


#include <stdio.h>
 
int main()
{
  int num = 0x00737569;
  int num2 = 0x61726144;
  printf("%s\n", (char*)&num2 );
  printf("%p, %p\n", (void*)&num, (void*)&num2 );
  return 0;
}

 というようなプログラムを実行したところgcc4.1.2では

Daraius
0xbfa284e8, 0xbfa284e4

 と、出力されたが、VisualC++2005EE(Debug)では

Daraフフフフフフフフius
0012FF4C, 0012FF40

 と表示された。Releaseだとgcc4.1.2と同じ結果になった。

 普通こんな使い方はしなけど面白半分にテストしてみたら自分の予想とは違った結果になった。
宣言した順番とは逆方向にメモリが確保されているのに「うん?」と思ったが、スタック構造なのを考えると納得はいく。構造体のイメージでいると「やっちゃったよ!」てな事態になるかもしれない。
 VC(debug)だと、intにもかかわらず12byteもの領域があるらしい。オプションの設定かなんかでそうなってるんだろうけど、Debugでは動くけどReleaseでは動かないなんて事態が容易に想像できるのが泣ける。


#include <stdio.h>
 
struct Block
{
  int num;
  int num2;
};
 
int main()
{
  struct Block b;
  b.num = 0x61726144;
  b.num2 = 0x00737569;
 
  printf("%s\n", (char*)&b.num );
  printf("%p, %p\n", (void*)&b.num, (void*)&b.num2 );
  return 0;
}

 を実行すると、gccでもVC(debug)でも同一の結果になった。「プログラミング言語C 第2版」の付録A8.3に構造体のメンバーは、宣言の順序に増えていくアドレスをもつ。とあるので、メモリ配置に関しては信用できる。intが4byteとは限らないし、char*に変換したときに[0]44,[1]61,[2]72,[3]61となるとも(おそらく)限らないので、結局環境依存だけど。

 いままで、ノリと勘だけでやってたから、知らんことばっかりじゃ。

2009年9月9日水曜日

立体的だと感じるには? 実験2

 前回に引き続き、オブジェクト配置後に回転させた。前回はオブジェクトを直接回転させてたんだけど、今回は視点のほうを回転させた。けれど結果に違いが出なかったというか、メタセコだと視点を動かしてるのに影の位置が変わらないらしい。仕様?


■実験1
 多重スクロールではないが、近くのものは早く、遠くのものは遅くを基本に、回転なしで。FCとかみたいな表現がもっとも立体感の出せる表現方法なのではないか? と、思ったため実験。
 結構ゲームでも似たいような表現をよく見るため新鮮さはないが、水平飛行すればだいたいこうなるのでしかたのない部分も。シンプルながら面白い。


送信者 生産がす

■実験2
 情報量が少ないのかと思い、むやみやたらとオブジェクトを増やして回転させたら、ぐちゃぐちゃしてよくわからなくなった例。
 ただ、画像上のほうの位置があまり変わらないオブジェクトに注視すると、動きの激しい部分との対比でちょと立体的に見える。
*この画像だけうまくアップできなかったので直接リンク貼る。



■実験3
 前回のとかわらないが、視点を動かしているにもかかわらず、影の位置が変わってないのにここでようやく気づく。



■実験4
 実験1、2から、情報量をほどほどにし、近くと遠くにオブジェクトを置いて回転させた。
 なかなか立体的だと感じる。どうも回転していることを確認できる範囲が広いほど立体的と感じるような気がする。オブジェクトが多すぎると、遠くのものが隠れて見えなくなるので立体感が減るのではないだろうか。見えないものはないと同じ。動きを確認できる範囲が縮小して小さい範囲だけが動いているように見えるとか、そんな感じか。
 遠くが見えていればいいので、チリのような小さいものを漂わせて立体感をだす演出はかなり効果的だと思われる。

2009年9月6日日曜日

日記ちゃん

 バニラエッセンスを買ったので、フレンチトーストに作る際使用してみた。ふんわりと甘い香りがして美味! ナイフとフォークで食べたのですげえ優雅な感じに。

 ついでに新しい歯磨き粉を買った。ピーチ味のやつ。歯磨きも優雅!

 最近マウスがいかれてきてて、クリックするとダブルクリックに化ける。ホイールクリック利かないとひどい状況になってる。無線が便利すぎてはずすわけにもいかず。近いうちに買い換えたい。
 ちなみに、クリックがダブルクリックになるような現象のことをチャタリング(Wikipedia)というらしい。この先、生きててこの単語を使うことはまずあるまい。

2009年8月31日月曜日

ポップコーン

 ポップコーンのはじける前のコーンが偶然目に付いたので衝動買いした。とりあえずサラダ油と塩でオーソドックスに作ってみたが、なかなかうまい。あほの子みたいに体積が膨張して吃驚した。コーンも安いし、酒のつまみにオススメ。

 他にどんな味があるのかと調べてみたが、醤油、バター、砂糖、インスタントラーメンの粉、黄粉、マヨネーズ、青海苔、唐辛子など、結構いろんなのがあるようだ。



誠 Biz.ID:3分LifeHacking:「ネットのしすぎ」「Twitterのしすぎ」をログで把握する
http://bizmakoto.jp/bizid/articles/0908/31/news025.html

 紹介されてる「Manic Time」がなかなか面白い。一日自分が何をしていたかが一目瞭然。

2009年8月28日金曜日

IMEショートカット


 半角で打ち込んだつもりが全角だった、ということは良くある。
そういう場合は「ctrl+t」か「F10」をおすことで半角に変換することが出来る。



そのほかに、
「ctrl+u」か「F6」で、全角ひらがな
「ctrl+k」か「F7」で、全角カタカナ
「ctrl+o」か「F8」で、半角カタカナ
「ctrl+p」か「F9」で、全角英数字
に変換できるので、覚えておくと便利。個人的にはファンクションキーよりはctrl+?のほうがスムーズに入力できる気がするが、uだのkだの覚えにくい。困ったときはF6~F10を適当に押してみれば何とかなる。


 また「ctrl+F10」で画像のようなウィンドウがでる。
辞書登録やIMEパッドをぱっと使いたいときに役立つ。

2009年8月16日日曜日

boolをfloatに暗黙の型変換?


#include <cstdio>

void func( float num )
{
  std::printf("%f\n", num);
}

int main()
{
  func( true );
  return 0;
}


 エラーも警告も表示されないのが納得いかない。
boolからfloatにって無理がないかい? 逆はともかく。

VC2005EE
警告レベル4



*追記09/08/29
 ぶらぶらしてたら以下のようなコードを見かけた。

dayofweek(y, m, d) /* 0 = Sunday */
int y, m, d; /* 1 <= m <= 12, y > 1752 or so */
{
static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
y -= m < 3;
return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}


随想録: 400年に一度の閏年
http://www.futatsugi.net/misc/essays/blog/archives/000003.html


 日付から曜日を求めるプログラムだそうだが、ぱっと見さっぱり分からない。それはともかく、y -= m < 3;というのは興味深い。trueはかならず1になるのだろうか。0以外なのは確かだが。

2009年8月14日金曜日

カジノのルーレット


http://cid-8cd7cf5ea9fbca55.skydrive.live.com/self.aspx/Public/program/Roulette.zip
10.9KB
ソース同封

 数字が連続で出ない確率を計算するプログラムを作って、いざ実践とばかりに無料オンラインのとこでテストしてみたら大負けしたよ! 赤が15回連続で出てすっからかんになりました、本当にありがとうございました。

 これまでに赤が連続で4回続いていた場合、計算式は(1 - 18/38)^4とした。いまひとつあっている自信は無い、悲しいことに。
連続で続けば続くほど0に近づく。15回連続で赤がでる確率は0.0000658712623。

 なんぼ計算しても結局次に何がくるかなんて、過去に何が出てるかが影響しない。赤が何億回続こうが次に黒が出るかどうかはおおよそ1/2となる。Theギャンブル。やめどきが大切。
 それはそれとして機械相手だと時々吸い取ってくるので注意。メダルなんかでも筐体によっては時間帯で排出率だかなんだかが決められるらしいしね。本当かどうかはしらないけど。

 ほどほどにまとめられたサイトを見かけたのでリンクを張っておく。
分かったことはルーレットはやめとけ、もしくはプレイ前にセーブしてまけたらロードしなおせって所か。
戦争ゲームとルーレット
http://aiai321.hp.infoseek.co.jp/nichiro02.htm

2009年8月10日月曜日

立体的だと感じるには? 実験

 特に根拠はないが、立体的だと感じるアニメーションには回転運動が重要かと思い、いくつか回転するアニメーションを作ってテストしてみた。
 結論から言えば、どれもいまひとつ立体感は得られなかった。単純な回転運動だけでは立体的だとは感じられないらしい。
 もっとこう、オブジェクトが動いてるっていうより、カメラが動いてるってことを強調する動きにしないとだめなのかな? 関係ないが、画面全体の動きが大きいほうが面白いとは思った。何かに利用できるかも。

以下、テストした画像。
各種画像はアニメーションGIFなので開くと動くんじゃないかな。











アヌビス ZONE OF THE ENDERS
http://www.konami.jp/gs/game/zoe2/japanese/
 自分の中で、3Dをもっとも感じられるゲームの一つがこれ。Downloadからゲームショウのムービーでどういった感じか確認できる。
 なぜか64マリオだと立体的だとは思わないんだよなあ。うーん。

2009年8月5日水曜日

サマーウォーズ

 みてきた。
CMではまったく面白そうに見えなかったのでぜんぜん期待しなかったんだけど、見るとかなり面白かった。

 3DCGの使い方がうまい。どのCGのシーンでも立体感を感じられる。これが簡単なようで難しい。オブジェクトをありえない速度で動かしたり、ありえない位置においたりしないとなかなか立体的と感じる絵にならないんだけど、仮想空間って設定を生かしたのかぐるぐる動く動く。色使いも結構素敵だったし、CGの部分は勉強になったなあ。これぐらいがリアルタイムでレンダリングできる時代はいつ来るんだろうかと思ったり思わなかったり。

 音も派手目なのが多くて面白い。エヴァかなんかがステレオを過剰に使って左右の離れたところから音が流れてきて面白いと思ったけど、こちらは音そのものが華やかで素敵だ、使い方は普通だけれど。ときどきおとぼけ音(なんだそりゃ)があって結構遊んでる気がする。

 花札が出てくるんだけど、自分はルールを知らないんで何をやってるのかよくわからなかった。なんかすごいことしてるんだろうなーとしか。これからみようと思う人は予習したほうが、より楽しめるかもしれないし、そりゃないだろとげんなりするかもしれない。

 全体的に演出がきつめだったけど、普通の人はついてこられるのかしら。
花札中の変身シーンに笑いそうになった。いるのかあれ。いるよ!