プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
NDocで出力したHTMLヘルプ
NDocで出力したHTMLヘルプ
無償のAPIリファレンス作成ツールで、ライブラリやデバッグコンポーネントのドキュメントを出力した。MSDN風のHTMLヘルプやMSヘルプで、APIの仕様が把握しやすい。



◎ライブラリ解析

今回はシェーダーインスタンスのライブラリ解析です。

前回メモをUPしてしまったので、今回も一応UPしておきます。(個人的なメモなので内容は気にしないでくださいw)

今回は、XNBファイル読み込み処理のフロー図を作成しました。

シェーダインスタンスサンプル
XNBファイル読み込みフロー図(PDF形式)




IE(Internet Explorer)からPDFファイルを直接開けない場合

PDFファイルを一旦ダウンロードしてから開くか、
(Adobe/Acrobat)Readerの設定を変更してください。
「編集>環境設定>インターネット>PDFをブラウザに表示」チェックを外す



実はコンテントタイプリーダーとコンテントリーダーの違いをこれまであまり意識せずにいましたが、この図を作成したら完全に別物であると理解しました。コンテントマネージャでコンテントリーダーが作成されて、参照値を引き継ぐ流れも把握しました。



◎プログラミングの勉強

今回は寄り道が多かったので、幾つか挙げておきます。

まずマニュアル(ヘルプ)ですが、プログラミングガイドの「Content Pipeline」を一通り読みました。7割ぐらい理解できたと思いますが、身に付いたのは3割程度かもしれません。まぁ、何がどこに記述されているか把握しておいて、必要な時に読み返すことが出来ればいいですね。

また、配列コピー等が出てきたので、Arrayメンバを一通りチェックしました。便利そうなメソッドが沢山ありますが、知らずに自分でコードをガリガリ書いてました(汗)

また、デリゲートが出てきたので、こちらの記事で勉強させて頂きました。デリゲートはまだ自力で組んだことがありません。イベントハンドラで必須なので、早く体得したいですね。

また、パーシャル(部分クラス)が出てきたので、こちらの記事を拝読させて頂きました。私はC#言語をろくに知らずにプログラムしてるので、他の話も含めてとても勉強になりました。



◎リファクタリング機能

中編が良かったので前後編も一通りチェックすると、前編の「統合開発環境としての新機能」も参考になりました。

無料のExpressEditionでは、リファクタリング機能は「名前の変更」と「メソッドの抽出」しか使えないので無視していたのですが、試しに使ったらとても便利で感心したので触れておきます。

「名前の変更」はクラスやメソッド名を変更する機能です。下手なものまで置換されると怖いので、私はこれまで1つ1つ確認しながら置換していたのですが、統合環境は名前空間をきちんと把握しているので、下手に手動で置換するよりも安心です。

また、私は「メソッドの抽出」を検索機能のようなものかと思ってました(データベースプログラミングでは、抽出は照会検索機能に当たる)が、「指定されたコード・ブロックを新たなメソッドとして抽出する機能」だそうです。

そんな機能知らんという人は、騙されたと思って適当に5行ぐらい選択して「リファクタ→メソッドの抽出」としてOKボタンを押してください。きっと「これは使える!」と思うでしょう。



◎その他の基本テク

データヒントは変数がオブジェクトである場合にも、そのメンバを展開して表示できるのは大変便利ですね。私は最近これに気付いたのですが、それまではいちいち
Console.WriteLine()
で表示してました。試行錯誤に時間がかかった理由の1つですね。

その他に最近使い始めた基本テクは以下の通りです。

・マウス右クリックメニュー>アウトライン
 →サンプルの階層構造を掴むのに便利

・編集>詳細>選択範囲のコメント
 →試行錯誤時の迷走中コードを一括コメント化



◎NDoc

この際だからコメント関連も抑えておきましょう。XNA公式サンプルでは至る所に
/// <summary>
といった記述がありますが、これにどんな意味があるのか調べると、「コードコメントWebレポート」という機能に行き当たりました。これは、プロジェクトで定義されているオブジェクトメンバ等の構造やコメントなどの情報を.htmファイルとして作成する機能ですが、Visual Studio .NET 2003以前でしか使用できないそうです。

じゃあどーすんだ?と調べたら、こちらにNDocの紹介記事がありました。

で、実際にインストールして、試しにライブラリのドキュメントを作成しようとNDOCでビルドすると、エラーが発生しました。

Exception: NDoc.Core.DocumenterException
バージョン 2.0 は互換性のあるバージョンではありません。


このエラーはこちらの方法で回避できたのですが、今度は別のエラーが…Documentation Typeによってエラー内容は異なりますが、MSDNとした場合は下記エラーが発生しました。

Unable to find the HTML Help Compiler. Please verify that the HTML Help Workshop has been installed.

VC# 2005/2008 Express EditionではHTMLヘルプコンパイラが標準でインストールされないようなので、こちらからダウンロードしてインストールしました。

これでようやくビルドが成功したのですが、出力されたドキュメントを開くと日本語が全て文字化けしました。NDOCのオプションのSdkDocLanguageをJapaneseにして再度ビルドすると、ようやく日本語ドキュメントが生成されました。

NDocで出力したHTMLヘルプ   NDocで出力したMSヘルプ

デフォルトではHTMLヘルプとMSヘルプが両方作成されるので好きな方を参照できますが、コンテントパイプラインを含めてビルドすると、MSヘルプだけ開けなくなりました。オプション指定を変更すれば開けるようになるかもしれませんが、とりあえずHTMLヘルプがあるので試してません。

予想外にいろいろありましたが、一度手順が確立すると2回目以降は問題無いので、ライブラリやコンポーネントなど汎用的なものはドキュメント化しておくと手軽に参照できます。また、XNA公式サンプルや他者作成プログラムを利用/解析する際も役に立ちそうです。



◎次回予告

ちょっと寄り道しすぎて時間がかかってしまいましたが、ライブラリの解析が終わりましたので、次回は本番プログラムに実装します。どれだけ早くなるか楽しみですね~!

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。