2011年6月19日日曜日

HTML 5 における会話文のマークアップについて

一時期は、 dialog 要素と dl 要素でマークアップできると言われていた会話文ですが、 terkel.jpさんのところでも、 指摘されているとおり、HTML 5 の仕様では、 「dl 要素は同じ内容を持つ dt 要素が複数存在すべきではない。」となっているので、 dl 要素で会話文をマークアップできません (dt 要素に発言者を入れると、同じ人が発言したときに dt 要素の内容が重複するため)。

では、どうやって会話文をマークアップすればいいでしょうか、自分なりに考えてみました。 現行 dialog および dl 要素の代わりに、 p 要素を使うことが提案されているため、それをベースに考えます。 会話文をマークアップする際に、マークアップしないといけない構造は、 話者と話した内容です。ですから、パッと思いつくとすると以下のようなマークアップになると思います。


<p class="chat">
  <span class="speaker">A</span>
  <span class="utterance">やあ、お元気ですか。</span>
</p>
<p class="chat">
  <span class="speaker">B</span>
  <span class="utterance">うん、元気だよ。そっちはどうだい?</span>
</p>

このマークアップの難点は、話者をアイコン画像で表示したい時に、下の例のようにアイコンの右上から話した内容が始まらず、右下から始まってしまう点にあります。こうなると、会話文が 2 行になるとアイコン画像の横に文字が入るスペースがあるのに、アイコン下に文字が入ってしまいます。

Trickey じゅげむ じゅげむ ごこうのすりきれ かいじゃりすいぎょの すいぎょうまつ うんらいまつ ふうらいまつ くうねるところにすむところ やぶらこうじのぶらこうじ ぱいぽ ぱいぽ ぱいぽのしゅーりんがん しゅーりんがんのぐーりんだい ぐーりんだいのぽんぽこぴーの ぽんぽこなーの ちょうきゅうめいのちょうすけ

この対処法としては、暫定案ですが、 p.chat 要素の class 要素に、 話者のクラス(A さんであれば、 A クラス)を作って CSS の background で画像を表示する方法があると思います。 以下が、その場合のサンプルコードです。


<style type="text/css">
.chat {
    padding-left: 60px;
    margin-bottom: 20px;
}

.A { background: url("Aさんの 50x50px のアイコン画像の URL") no-repeat top left;}
.B { background: url("Bさんの 50x50px のアイコン画像の URL") no-repeat top left;}

.speaker { display: none; }
.utterance:before { content: "「";}
.utterance:after { content: "」";}

</style>

<p class="chat A">
  <span class="speaker">A</span>
  <span class="utterance">やあ、お元気ですか。</span>
</p>
<p class="chat B">
  <span class="speaker">B</span>
  <span class="utterance">うん、元気だよ。そっちはどうだい?</span>
</p>

この解決策によって、右下から会話が始まらないで済むようになります。 ただし、この方法は、予め話者と話者のアイコンが分かっておらず、 動的に変更する必要がある場合、マークアップが面倒になります。 float および position プロパティを使う方法も考えられますが、どれも一長一短です。 この記法の気に入っているところは、シンプルで直感的な構造であり、 スタイルシートをオフにしても、きちんと話者と話した内容が表示されるところです。

とりあえず、今は、このマークアップで進めて、また良い方法が見つかり次第、 このページに追記していきたいと思います。

2011年6月5日日曜日

Mac OSX で Minecraft のテクスチャを変更する方法

ここでは、 16 × 16 のテクスチャ(jolicraft とか)を Mac 版 Minecraft に導入する方法を紹介します。 私は、以下の 3 つのことをすれば、テクスチャを変更できました。

  1. Web 上から、自分が気に入ったテクスチャのファイルを探し、 ダウンロードする。
  2. ~/Library/Application Support/minecraft 内の texturepacks フォルダ内に、 ダウンロードしたテクスチャの zip ファイルを「そのまま」突っ込む。
  3. Minecraft を起動させ、Mods and Texture packs を選択し、 ダウンロードしたテクスチャを指定する。

また、 32 × 32 のテクスチャを変更したときは、このページを更新したいと思います。