ログ・ページ/y04/後期PS2班/2007-01-14

ログ・ページ/y04/後期PS2班/2007-01-14

#navi(ログ・ページ/y04/後期PS2班)

# 2006年中に行ったこと

ログを忘れていたので、ひとまず2006年中に行ったことを記述しておく。~

# 編集者:045749D 備瀬 健

# ギャプランの動作の追加 1

前進、後進、横歩きの追加を行った。~ 最初の動作では、それぞれのパーツの位置(値)を見て動きを変えていたため、 腕の動きや足の動きにズレが出た。~ そこで、歩く際の体の上下で同期が取れるように変更した。

1
2
3
4
5
6
	if (obj->xyz[1] > 2) { // 高さ
		character->pitch_f = 1;
		character->shake = character->shake * (-1);
	} else if (obj->xyz[1] < 0) {
		character->pitch_f = -1;
	}

# ギャプランの動作の追加 2

体の各パーツを動かす際に、 毎回 character 構造体からパーツを get_part 関数で探し出して動かしていた。~ 何度も使うのを探すのは意味がないため、体を生成する時に get_part 関数にかけ、~ そのアドレスを model 構造体に持たすことにした。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
void
gaplant_all_get_parts(CharacterPtr character)
{
	ModelPtr top;
	PartPtr part = character->body;
	void *free_addr;

	malloc_align16(&free_addr, &top, sizeof(Model));

	top->body = get_part(part, GAPLANT_PART_BODY);
	top->waist = get_part(part, GAPLANT_PART_WAIST);
		省略 
top->r_arm = get_part(part, GAPLANT_PART_R_ARM);
1
2
3
4
5
	top->l_leg2 = get_part(part, GAPLANT_PART_L2_LEG);
	top->saber = get_part(part, GAPLANT_PART_SABER);

	character->model = top;
}

# ギャプランの動作の追加 3

歩く動作の他、斬りつける、ジャンプ、ビームを打つポーズを追加した。~

# N体動作

今までは 2 体で固定であったため、N 体でもできるようプログラムを変更した。~ 主な変更点としては、~

  • 変更前
    • controller の 2 個固定
    • character 構造体の 2 体固定
  • 変更後
    • controller を持たせた構造体を最初に 1 つ作り、~ キャラ数がわかったとき(キャラ数の指定は未実装、 適した位置で固定している)に残りのコントローラをリスト状に生成する。
    • キャラ数がわかったあと、適切な位置でリスト状に生成する。(schedule 関数内)~ 同時に character 構造体に controller へのポインタを渡す。~ ※上 2 つのリストは普通のリストではなく、都合上 新しく生成したものを一番後ろにぶら下げるようにしてある。
  • 問題点
    • 2 体固定に作られていた当たり判定を働かないように変更。~ 通信ができるとこの辺も変わることが予想されるため無理に直さず、~ 通信が出来た後に直される予定。
    • ライブラリでコントローラが 2 つしか指定されていないため、3 体目から操作できない。~ ライブラリ側のを修正するだけでは解決せず、直すにはマルチパッドを認識する必要があるかもしれない。

# 省略された単語の修正

chara や colli などを、character/collision といった正しい単語に修正。

# ソースのディレクトリ分け

ソースが増えて来たため(コンパイルしたら 2 倍にもなる)、まとめられるソースをディレクトリに分けた。~ 現時点ではギャプラン、リックディアス、スローターダガーなど、キャラクタに関するソースを分けた。

# ディレクトリ分けによる Makefile の変更

Makefile ではソースをディレクトリごと直接指定する方法と、vpath を使う方法があったが、~ vpath の場合 オブジェクトファイルが Makefile があるディレクトリにできてしまうため、結局見にくくなる問題が見られた。~ それでは本末転倒であるため、直接指定する方法で記述した。~

#navi(ログ・ページ/y04/後期PS2班)

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy