2013年3月アーカイブ

サイトマップの登録

| トラックバック(0)

どうも あ〜る です。
 
以前登録したウェブマスターツールのダッシュボードで
サイトマップが未登録と出ているのが気になったので
これをとりあえず解消してみたいと思いました。
 
ウェブマスターツールのヘルプページ
https://support.google.com/webmasters/bin/answer.py?hl=ja&answer=156184
によると、全てのページがクロールされる保証がないということで
サイトマップを登録すると、自分の狙い通りにクロールされるようになるようです。
scriptを使った動的なサイトなどには特に有効なんじゃないでしょうか。
今のケイプロサイトにはあまり関係なさそうですが...。
 
サイトマップのデータはサイトマップ プロトコル 0.9 を
遵守しているということですが...結局何さ?
ということで、ちょっとググってみたらすぐ出てきました。
世の中親切な人が多いです。
http://tafcue.com/2009/05/google-sitemap-registration001.html
http://tafcue.com/2009/05/seo-xml-sitemap001.html
XMLでサイト構成などを記述するみたいですね。
 
この中で自動でサイトマップを生成するサイトが紹介されていますので
これを使ってみました。
http://seo.fc2.com/sitemap/
 
あとは生成されたサイトマップの XML を
ウェブマスターツールに登録して完了です。
 
今回も簡単...。
でも、XML をアレンジしてもっと自分たちの
狙った形にした方がいいかもしれませんね。
そのためにはまず、もっとちゃんとサイトを整備しないと...ですね...。

どうも あ〜る です。
 
今回は、話が前後してしまいますが
iOS Developer Program に登録する時に
時間がかかってしまった話を。
 
iOS Developer Program
https://developer.apple.com/jp/programs/ios/
 
年間99ドルらしいのですが、登録時点では日本円で8400円でした。
今後円安が継続すると日本円で値上がりするかもしれませんね...。
 
僕が手間取ったのは Activate するところでした。
Apple Developer Program Activation Code
というメールが送られてきますが
ここに記載の Activation Code からアクセスすると
We are unable to activate your Apple Developer Program membership.
と言われてしまいました。
文章をよく読んでみると
because we are unable to successfully verify your identity.
...
あなたの身元確認が出来ませんでした...??
なんだって〜〜〜!?
そして、Contact us から Enrollment ID #****(そのページに表記されています) を使って
確認してくれとの事。
 
ということで、ちょっとググってみると同じ現象が発生している人がいました。
http://mushikago.com/i/?p=917
手順が詳細に書かれていてわかりやすいです!
しかしこれ、一般的に発生する現象なんですかね...。
 
そして待つ事1日...。
Appple様から返信が来ましたよっと。
それによると、登録している Apple ID の
氏名及び住所情報は全てローマ字表記へ変更する必要があるとのこと。
先ほどの人とは症状が違うようです。

 

そしてここ!
==(メールから引用)==
名前を修正する箇所のページ上で「名(漢字)、姓(漢字)」表記が出てきますが、こちらは半角英数字のローマ字表記でご記入下さい。カナの所は、カナのままで構いません。
-都道府県名, 国名は、漢字のままで構いません。
==(引用ここまで)==

 

名(漢字)、姓(漢字)を信じて入力するとダメという...。
簡単にはデベロッパー登録させないぜっていう罠ですね。えぇ、わかります。
 
そしてさらに待つ事1日...と思いきや、土日を挟んで3日かかってしまいました。
最初に送られてきた Activation Code を使って
再度 Activation してくれということで、やってみましたが
ここはすんなりいきました。
いやはや長かった...。

iPhoneでの動作確認

| トラックバック(0)

動作確認.jpg

本を読んでいたら、『桃李 言ざれども 下 自ずから 蹊を成す』という言葉を初めて知り、まだまだ修行が足りないなぁ...などと考えてしまった、れごおです.

さて、少しずつ足回りを固めているのですが、本日やっと iPhone 上で作成中のアプリを動作させることができたようです.

実際に実機上で動かすってのは、ちょっとした感動がありますね.

将来的には、ほぼ同じソースコードで Android / iOS で動作するアプリが作成できる環境を整えよう等と考えながら作業をしているんですが、まぁ地味にやることはあるなぁと...

unity なんかを使えばそれなりに楽をできることはわかっているんですけど、こうやってぼちぼち足場を固めていくのもなかなかに楽しいもんです.

...さ、実機で動かして見て、色々と新たな問題が見えてきたので、コツコツ修正していきますよ〜

サイトの健全性チェック

| トラックバック(0)

どうも あ〜る です。

 

今回はサイトのSEO対策などで便利だという

Google Webmaster Tool に登録をしてみようと思います。

 

Google ウェブツール

http://www.google.com/webmasters/

 

このサービスで、サイトの検索表示順などSEO対策に必要な情報のほか、

サイトのリンク切れや、どのサイトからリンクが張られているか、

マルウェアの検出などもしてくれるようです。

便利そうですねぇ。

 

さて、登録についてですが、 まずサイトの URL を登録すると、

サイトの所有権を確認すると出てきます。

ここで、前回の Google Analytics のトラッキングコードがあると

すんなりと登録が完了します。

 

前回の Analytics は今回の布石だったんです!

なんだってぇ〜!!

 

...ということで、「確認」ボタンをそのまま押すと あっさり所有権が確認されました。

 

その後、設定からユーザを選択して

「新しいユーザを追加」を選んで

れごお&クレヨラおじさんを追加して完了...と。

 

なんだかあっさり完了してしまいました。

登録は簡単ですが、あとはこれをどう活用するか...が大事ですね。

サイトのアクセス解析

| トラックバック(0)

どうも あ〜る です。

サイトのアクセス解析などをするために
Google Analytics というサービスを利用する事にしました。
ということで、今回は Google Analytics の登録についてです。
 
Google アナリティクス
http://www.google.com/analytics/
 
ここ↓を参考にしながら登録をしました。
http://www.seotemplate.biz/blog/seo-tool/578/
 
Analytics のサイトURLなどを入力する登録ページで
アカウント名なるものを入力することになりますが、
これは自分のGoogleアカウントではなく、
Analytics で複数サイトを解析する場合の識別用の名前とのこと。
半角英数だけでなく、日本語入力でもOKです。
 
利用規約でいきなり、有料アカウントのごとく書かれていますが
下の方に1000万ヒットまでは無料と記述されているので
個人レベルではまず無料で使えると思っていいのではないでしょうか。
 
利用規約にOKしたら、トラッキングIDというのが表示されている画面に遷移します。
このページの下の方になにやら javascript が書かれているので
てそれをコピーして、自分のサイトの全てのページのHTML内に記述をします。
 
ここで早速、MovableTypeにしておいてよかったかも...と思いました。
全てのページの</head>終了タグの直前ににコピペしなければいけないのですが、
MovableTypeの場合、ページのテンプレートにコピペすればいいので楽ですね。
とは言え、ページ数少ないケイプロのサイトでは効果は限定的ですが...。
 
しかし...「トラッキングがインストールされていません」......。
どうやら最大24時間このままらしい......。
とりあえず1日待ってみましょう...。
 
この間に、れごお&クレヨラおじさんをユーザに追加しておきます。
「ユーザ」メニューから「新しいユーザ」を選択して
二人のメールアドレスを入力すればいいだけです。
これで3人ともサイトの状況を確認出来るようになりました。

 
今回の作業はこれで終わりです。
レポートデータが見れるようになるまで落ち着いて待ちましょう。

サイトの構築

| トラックバック(0)

どうも あ〜る です。
 
サイトの構築はどのようにしているでしょうか?
というか、読者の皆様がすべからくサイトを持ってるとは限りませんね...。
ケイプロでは MovableType を使っています。
全然使いこなせていませんが...。
 
僕はサイト作った事がないので MovableType 初めてなんです。
HTML は書けるので、MovableTypeでサイト構築しなくても作れるんだよな...
なんて思ってしまうのですが、
後々自力だと面倒な事もあろうかと思い直して頑張っています。

 

MTの導入は例によってれごおおじさんがやってくれたので僕は使うだけ!
なんて楽な世の中なんでしょう。
 
ウェブページの構成は
・トップ = 直近のトピックなど(?)
・アプリ = 各アプリの簡単な紹介と、各アプリの詳細ページへのリンク
・about = ケイプロの紹介ページ
・ブログ
という構成にしたいと思っています。
 
ということで、
トップ / アプリ / about の3ページを
ウェブページの新規作成をして追加しました。
ブログはブログの新規作成を選んで作成しただけ...のはず。
というのも、ここはれごおおじさんがやってくれていたので。 

 

しかし...このテンプレートというのはわかりにくいですね...。
みなさん最初からこれを使いこなせているんでしょうか...。
 
 
さて、ここで問題発生です。
各ページには構成で考えた4種のページへのリンクボタンを
ヘッダとして配置したいと思うのですが...
先ほども言った通りテンプレートが分からない事山の如し、といった感じで困ってしまいました...。
 
頑張って解読を試みたところ、
 ・ウェブページはウェブページのテンプレートから生成される
 ・indexはインデックスのテンプレートから生成される
 ・ブログはブログのテンプレートから生成される
 ・各テンプレートは細々としたテンプレートをインクルードしている
 ・テンプレートには条件分岐などが使える
 ・各テンプレートの記述を変更した後、再構成すると実際のhtmlが出力される
といったようなことがわかりました。
 
また
 ・ウェブページの一覧から編集した文書は、ウェブページのテンプレートのメイン部分にそのままインクルードされる
というのもわかったのですが、
これはテンプレートの書き方でどういう形で使われるか変わるので
初期状態ではこうなっていた、というだけの話です。
 
さらに、indexはウェブページのテンプレートが適用されないので
トップのウェブページは削除して、ウェブページのテンプレートと同じような内容の
インデックステンプレートを記述する必要がありそうです...。
ここの華麗な解決策を知りたいところですが、ひとまずウェブページテンプレートのコピペで
すませてしまおうかと...。
そして、index とウェブページとして作成した top は意味合い的に同じなので
top は結局削除することにしてしまいました。
 
さて...ここまでわかったところで、
まずウェブページのテンプレートを修正する事から始めました。
とにかく自分の理解のためにもシンプルな構造にしたいので、
↓こんな感じに考えました。
<head>
</head>

<body>
  <header>
  </header>
  <article>
  </article>
  <footer>
  </footer>
</body>

そして
 ・<header>内にはロゴと各ページへのボタンを配置
 ・<article>内には各ページの内容をインクルード
 ・<footer>はひとまず空っぽ
としてみました。
 
<header>内に配置するボタンはページによってON/OFF状態が変わるので
<MTIf name="page_title" eq="トップ">
などとして、ページのタイトルによって出し分けるようにしました。
 
当初メインコンテンツ部分は<iframe>を使って出し分けようと考えたんですが
それだとヘッダーなしのページにもアクセス出来てしまうので
あまりよくないと考え、方針変更をした次第です。
 
 
ここまでのところで、現在のサイト構成にはなったのですが、
まだブログのテンプレートが変更出来ていないので
今後、ウェブページのテンプレートに合わせた形に変更しなければ...と思いつつ
今回はこれにて。
 
なんだか長いだけで何がいいたいのかわからないエントリーになってしまいました...。
もう少し分かりやすい文章になるように努力が必要ですね...。

日本橋(3)

| トラックバック(0)

どうも あ〜る です。

前々回予告した「日本橋」の開発中画面についてです。
早速ですが、こんな感じ↓

nihonbashi_sc00.jpg


はい、これにて。...という訳にもいかないので、もう少し説明を。

背景モデルもないし、素材は仮のものなので
全般的に寂しい感じですよね...。
でも、ここまでくればちゃんとゲームの実装が出来ちゃうので
プログラマ的には困らないんです。
今後、クレヨラおじさんがモデルデータや絵素材を作ってくれれば
見た目は順次更新されていくでしょう。

LEG○っぽいものが見えますが、これがプレイヤーキャラクターと敵キャラクターです。
3体のうち、両側にいるのがプレイヤーキャラクターです。
え?2体いるってことは2人用のゲームなのかって?
...いえいえ。1人遊び用のゲームです。
以前、リブ○ラブ○みたいな...なんて事を書いたと思うんですが
2体を同時に操作する系のゲームなんです。
以前掲載したスケッチにも男の子キャラと女の子キャラが描かれていますよね。

で、サイコロがアイテムの代わりです。
アイテムは何種類かあるんですが、今は全てサイコロで代用しています。


しかしなぜ仮のモデルがLEG○なんでしょ??
クレヨラおじさんに聞いてみたところ、LEG○好きなれごおおじさんへの
クリスマスプレゼントだったとか...。
メルヘンなおっさんですね...。

次は、ゲームシステムについて書けたら...と思っています。

どうも あ〜る です。

 

予告と違って開発中の画面の話ではなく...

3Dのタッチ操作についての話をしようかと。

ちょっと実装にまごついてしまったので自らの恥をさらしてみようかと思います。

ちと長くなると思われますので、ご注意ください。

 

3Dのタッチ操作をするためには、スクリーン上のタッチしている箇所を3D空間上の座標に変換しなければなりません。

ちょっとググってみると...

れごおおじさんが話題に出していた Unity には ScreenToWorldPoint() っちゅー便利なものがあるようですね...。 

ケイプロでは出来る限りタダで開発をしようという思想なので Unity は使いません!

...ので、自力で計算をしなくてはなりません。

 

3Dのとある点Pwをスクリーンに表示するためには

 World座標系 → 視野座標系 → 射影座標系 ( → スクリーン座標)

と変換していきます。

順を追って計算するなら

 Pv = ViewMatrix * Pw

 Pp = ProjectionMatrix * Pv

と計算するはず。

(ここで Pw=World座標系のPos , Pv=View座標系のPos , Pp=Projection座標系のPos)

 

ということは、逆に射影座標系が既にわかっているなら

 Pv = ProjectionMatrix.Inverse * Pp

 Pw = ViewMatrix.Inverse * Pv

と順に計算してやれば

 射影座標系 → 視野座標系 → World座標系

と戻してやれるでしょう。

 

ここまではわかってたんです...。

でも、Psというものについては具体的に考えたことがなかったので

最初に与えるべき値を誤っていたのでした...。

 

ここでこの記事のタイトルにある四次元の話になりますが、

通常3Dゲームを作る時なんかに使う座標と行列って

三次元を扱うのに四次元で表されていますよね?

 P=(x,y,z,w)

みたいな...。

んで、この w 成分ってなんなのよ、ってことですが、

通常World座標系を意識するだけの場合、w=1.0f を入れておけば問題ないので

あんまり意識する事がない成分なんですよね...。

え?そんなのはお前だけだって?...はい、そうですね...阿呆ですみません......。

 

ここで、れごお おじさんにレクチャーしてもらったところ...以下のように自分は理解しました。

自分の言葉に変換して納得しているので、「それはどうなの?」という表現になっているかもしれませんが、ご容赦ください。

 

w ってのは、世界が奥に行くに従ってどれだけギューっと縮めるか、

という係数なんだということなんですね!

 

「投影行列を掛けると射影座標系(同次クリップ空間)になる」ということで

三次元空間上で視錐体が図の様にボックス状になると思い込んで勘違いしていたんです。

(x,y,z)成分だけを考えると、投影行列を掛けた後も視錐体の形はあまり変わらず

z成分が大きくなるにつれ広がる形になっているものと考えられます。

そこで、投影行列を掛けた後のw成分で(x,y,z)成分を割ってあげることで

初めてボックス状にプロットされるということなんですね。

 

この係数wを加えた便宜上の四次元空間を考えた時には、

「投影行列を掛けると射影座標系(同次クリップ空間)になる」

というのは至極もっともな表現かと思います。

しかし、三次元空間に存在している僕には四次元空間は想像出来ません!

そこで、上記のように 三次元+係数 という風に考えたら、すんなり納得できたのでした。

 

手書きでわかりにくいかもしれませんが、視錐体がどのように変換されていくか図にしてみたので掲載します。

projection_exp.jpg

 

ということで、タッチ位置をWorld座標に変換したい場合は

まず、タッチ位置を x=[-1.0f,1.0f] , y=[1.0f,-1.0f] にキャストします。

そして、近平面をタッチしていることにしたい場合は

 z=0.0f , w=-ニアクリップ平面までの距離

とすればよく、

遠平面をタッチしている事にしたい場合は

 z=1.0f , w=-ファークリップ平面までの距離

とすればいいはずです。

wをマイナスにしたりしなかったりは、視野座標系と射影座標系のZ方向によると思います。

 

......そしてこの理解後、ちょっとググってみたら...

http://marupeke296.com/DXG_No55_WhatIsW.html

とうの昔にちゃんと説明してくださっている方がいらっしゃるじゃないですか...。

でも、いろんなレベルの人が同じ事を語ることで、様々な人に理解が広がるんじゃないかと思い

そのままこの記事をアップすることにしました。

 

今更感満載の長話にお付き合い頂きありがとうございました。