ずっと間違って生きてきました……

しまブログの、WordPress用テーマ(見た目)を検討中。

グリッドは、以前のMovableTypeの時と同じで行こうと思っている。

のだが、今日、とても恐ろしいことに気付いた。

エントリー内に表示される画像の最大横幅を、これまでずっと645pxで作ってきた(昨日のモンハン3の画像なんかはみんなそうなっている)のだが、今日改めてカンプ・旧バージョンのCSSを確認してみたら、最大横幅は630pxだった。

これまでずっと、画像の横幅を間違って作ってきていたのだ……。

表示が崩れなかったのは、たまたま、記事のボックスの右側にマージンがあって、そのマージンで画像がはみ出した幅15pxが吸収されていただけだったのだった。

どおりで、グリッドなのにグリッドに見えないなぁと思っていたよ。

何にせよショック。

だからといって、過去の画像を全部リサイズしたりはしない。面倒くさいから。

今やってるこれって、休んでいるようで休んだことになっていないなぁ、と反省。

携帯版のテンプレート

携帯版のテンプレートをぼちぼちいじる。一覧画面はほぼデキ。記事詳細画面はまだ仮。コメント・トラックバック辺りはこれから。


とにかく、シンプルなテンプレートがない。アイコン無し、アクセスキー無し、無駄な背景色無しのテンプレートとかあればいいのにな。まぁ、自分で作ればいいんですけど。とか言いつつ、自分の作っているテンプレートには背景色が入っているという矛盾。

それにしても、iモードHTMLシミュレータのスクリーンショットはダサい。せめて表示フォントだけでも指定させてくれればいいのだが。というか、iモードの絵文字が特にダサいんだな。auの絵文字を見慣れてると、すげーガッカリ感がある。

MovableTypeからWordPressへ移行した時に詰まるポイント

MovableTypeからWordPressへ移行した時に、詰まる(だろうと思われる)ポイントのメモ。

  1. MovableTypeで言うところの「ブログ記事アーカイブ」、WordPressでいう「is_single() == true」になる条件が、かなり特殊。「パーマリンク設定」で、パーマリンク名に「ブログIDを含む」か「年月日・時分秒の全てを含」めなければ、単独の記事ページとして認識されません。「年月日・時分」では駄目。
  2. 管理画面から、全記事への一括検索・置換機能が、インストール直後にはありません。プラグインが提供されているので、それを使うべし。島元は「Search & Replace」というのを使いました。
  3. カテゴリの任意並び替えが、インストール直後にはありません。プラグインが提供されているので、それを使うべし。島元は「My Category Order」というのを使いました。

欲しい機能はリリースされているプラグインを探す、というのがWordPressの基本のようです。

もちろん、MovableTypeにもプラグイン依存の機能はありましたが、MovableType 4以降に整備されたMTタグ群が優秀かつ使い勝手が良く、自分が欲しい機能がMTタグだけで実現できることが多かった気がします。

他にちょっと特殊な仕様として、表示されるラベル(機能名やボタン名など)が、テンプレートの中では変数化されている場合が多いです。その変数の値は、日本語化のために添付されている「jp.mo」というファイルが握っています。これは、言うなれば「対訳ファイル」。ラベル名が呼び出されたときに、該当する言語の「.mo」ファイルを見て、そこに登録されている用語リスト(英語)から目的の言葉を探し出し、その対訳文言(日本語)を拾ってきて、返してくる。多言語化のための仕組みなのですね。

で、この「.mo」ファイルは、直接テキストエディタで編集はできません。「poEdit」というソフトウェアを使います。

実は「.mo」ファイルには、元になる「.po」ファイルというのが存在します。「poEdit」は、この「.po」ファイルを編集するツールです。「.po」ファイルを開くと、画面の左右に英語・日本語の対応した用語一覧が表示されて、編集を終了すると自動的にその編集後の対訳を含んだ「.mo」ファイルを生成してくれます。

色々と気に食わないラベルがある(「トラバ」とかやめてよ本当にもう)のだけど、全部直すのは結構手が掛かるので、必要な所だけを直すのが吉です。って、その「必要な所」がどこかっていうのを探すのがトライアンドエラーするしかないので、余計に手が掛かるのですけれども。

テンプレートをざっと見てみましたが、結局、ほぼ直接PHPをいじることになりそうです。で、あちこちいじりだすとこれまた結構大変そう。テンプレートのカスタマイズの簡単さで言えば、全てをMTタグに収斂しているMovableTypeの方が洗練されている印象です。僕自身の慣れの問題もあるだろうけれど、いちいちPHPで書かざるを得ない部分がやっぱり面倒くさい(その分、勉強にはなってるけどね……)。

とはいえ、ドメイン単位のCMSに変化したMovableType 5が、どう考えても個人ブロガーに向かないのは確か。何より、管理画面が明らかにWordPressの中途半端なパクリってのがしまっち的にいただけない。ここはじっくり腰を据えて、WordPressに移行していこうと意気込みを新たにしたしまっちでしたよ。

個人的な所感だけれども、MovableTypeからWordPressに移行して、テーマのカスタマイズをしたい人は、ひとまずウェブサイト側は放置して、携帯(Ktai Style)用のテンプレートでコツを掴むのがいいようです。テンプレートの数も少ないし、構造もシンプル。編集しながら確認できて楽だし、何より、自分の携帯にブログが表示される喜びは結構クるものがあります。

iPhone・iPod touchに(表紙だけ)対応

 まぁ言ってる傍から、午前半休です。昨日ちょっと調子に乗り過ぎて、頑張りすぎたな、という反省。

 さりげなく、表紙だけiPhone・iPod touch搭載のSafariに対応してみました。なかなかこのSafari、癖のある困ったヤツであります。

  • 勝手に画面全体を拡大・縮小して表示する。つまり、文字サイズの指定や、画像のサイズをある意味無視するという仕様。
  • 拡大縮小する倍率の判断は、表示物全体の横幅(Viewportと呼ばれる。初期値では最大を横幅980pxとしてレンダリングする)、ユーザの操作(ピンチイン・アウト)、iPhoneの向き(ポートレート表示/ランドスケープ表示)の3つから為される。
  • このうち、iPhoneの向きによる表示の拡大縮小は、実際に手に持って操作してみるとかなり気持ちが悪い(個人的な感想)。テキスト中心のページで、一定のフォントサイズを指定しているのに、横向き(ランドスケープ表示)にした途端、文字や画像が1.3倍くらいに拡大されて表示されてしまうのは、親切なんだろうけども、何か嫌な感じだった。
  • 結局、iPhone・iPod touchのSafari向けページのあり方としては、4つに絞られてくると思われる。
    1. 拡大縮小、総てを受け入れる。もうそういうものだから仕方が無い、という考え。これはこれでアリだとは思う。
    2. 最初から横幅をポートレート表示(320px)に合わせて構成する。ランドスケープ表示(横持ち・480px)になった際に、画像を含め拡大される、或いは、metaの指定により拡大縮小を禁止し、画面右側に空白が生じることは受け入れる。
    3. 最初から横幅をランドスケープ表示(480px)に合わせて構成する。ポートレート表示(縦持ち・320px)になった際に、画像を含め縮小される、或いは、metaの指定により拡大縮小を禁止し、横スクロールバーが表示されることは受け入れる。
    4. metaの指定により拡大縮小を禁止し、かつ、横幅をリキッドレイアウトにする。これにより、ポートレート表示・ランドスケープ表示いずれも、同じ文字サイズ・拡大倍率で、かつ、横スクロールバーが表示されない、空白が生じない見た目を実現することが可能。
  • 一見、4.がすげぇ良く見えるけども、これは同時にブラウザの機能である「ピンチイン・アウト」を禁止してしまうことになるので、表示される文字サイズ、操作するボタンの大きさなど、かなり気を配る必要がある。
  • 4.の場合。表示文字サイズをそれなりに読みやすくした際に、フォームの入力ボタンなどの大きさが、操作するには小さくなった印象。
  • ランドスケープ表示(横持ち)にした際、上下にアドレスバー・操作ボタンが表示されることもあって、縦スクロールさせ辛い。縦スクロールさせるつもりが、行き過ぎてボタンを押してしまうこともしばしば。よって、長く文章を読ませるようなページには向かない。この辺、徹底して「ポートレート表示で見てね!」という前提で作るのも、アリかもしれない。
  • まとめ。文字の表示やスクロールの操作などの感触は良好。この機体に作ったウェブサイトがきれいに表示されると、とても楽しい。ただ、画面サイズから言って、ボタンなどを並べて細かい操作をさせるページには向かない。ECサイトなどには向き辛いだろう。基本、読ませるページであって、ボタンは数個(iPhone・iPod touchのメインメニューアイコンのサイズ、80×80ピクセル以上が望ましいだろう)のようなものが心地よく操作できそう。ボタンは、横にいくつか並べるより、横長100%のボタンを縦に並べた方が選択しやすそうだった。

 さて、ぼちぼち出社する準備でもしますか。今日も働くぞー。

PaperVision3DのBitmapMaterialのメモリ挙動

 PaperVision3Dのメモリ挙動がどうもおかしい気がする。

 ダンジョンのフロア移動の際、一旦現在いるフロアの配列化したDisplayObject3Dを、removeChildした上、個々をnullに設定、さらにdeleteまでかけてから、新しいDisplayObject3Dを配列に入れ、addChildしているのだけど、その度にメモリがガンガン増えて行く。明らかに何かのメモリが解放されていない。

 容量も半端無いので、恐らくBitmapMaterial絡みだろうと思うのだが、disposeに当たる命令が用意されていない。destroyっていう凄い名前の関数っぽいのがクラスに書かれているのだけど、ちゃんと動くようにはなっていないようだ。

 現状の作りではあっという間にメモリ落ちしてしまうので、作りを変えないといけない。

 「BitmapMaterialに設定するBitmapData自体を、破棄するDisplayObject3Dに応じてdisposeする」というのをまだ試してないので、これをそのうち試すことにする。

 このメモリ問題が解決しないと、リリースはできないな。メモリ2GB積んでるマシンで、階段を20~30往復したら落ちるとか、あり得ない。起動直後は、占有メモリ100~120MBくらいなんだけど。それでもかなりメモリ喰ってると言える。

 ちょっと、安易に配列化し過ぎかもしれない。BitmapDataを先頭フレームで全部クラス化するのも、問題あるかも。PNGファイルを外に置いておいて、Loaderで読む……とかしないといけないかもしれないけど、それだと、素材の二次利用とか流出を防げないんだよな。何かうまい方法を考えないと。

PaperVision3Dを使って3Dダンジョン 9

 階段ができました。階段ができたので、テストダンジョンも3階建てに増築しました。

 階段移動後が余りに唐突な感じなので、間に何か演出を挟む予定ではありますが、当面はその演出は先送りにして、ぼちぼち画面表示系のものを入れていこうと思います。今のキャラクターウィンドウも仮ですし。

 それにしても、テクスチャを作るのは難しい!今回新規に作った2層分も、どうもしっくりきません。

 外を出歩くときは常にデジカメを持ち歩いていて、テクスチャに使えそうな壁なんかを写真撮りまくっているんですけど、なかなかこう、うまく使えていません。加工し過ぎても変になるし、何より、スケール感がうまく噛み合ってない印象です。これがなかなか難しい……。貼ってみて、「あ、もうちょっと大きく」とか「小さく」とかを繰り返して行くのが思いのほか大変で、3Dのテクスチャ作成を仕事にしている人は偉いと思いました。

 階段の周りの柵のテクスチャは、なかなか気に入っています。テクスチャの元写真は、とある溝蓋でした。

Continue reading

PaperVision3Dを使って3Dダンジョン 8

 大幅に画質の向上に成功。ってか、単に、壁と地面でScene3Dを分けた、ってだけの話。これならポリゴンの干渉のしようがない、ってことに今朝電車の中で気付いた。

 あと、上り階段置いてみた。障害物判定とかまだやってないので、中に潜れてしまうけど。明日は下り階段。

 ぼちぼち、ブログにアップするには厳しい容量になってきたかも。

Continue reading