• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

MIDITrail をピカピカにする。鍵盤方向自動切替・多ポート・歌詞対応等


Commit MetaInfo

Revisãof273fa89d3adcf2a8465d159c7a2b9593438838d (tree)
Hora2018-04-13 12:22:49
Autoryoshy <yoshy@user...>
Commiteryoshy

Mensagem de Log

[CLEAN] ポートとキーボードのマッピング処理を制御クラスからデザインクラス側に移動

Mudança Sumário

Diff

--- a/MIDITrail/MTPianoKeyboardCtrl.h
+++ b/MIDITrail/MTPianoKeyboardCtrl.h
@@ -48,14 +48,10 @@ public:
4848 );
4949
5050 //更新
51-// >>> modify 20120728 yossiepon begin
52- virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, float rollAngle);
53-// <<< modify 20120728 yossiepon end
51+ int Transform(LPDIRECT3DDEVICE9 pD3DDevice, float rollAngle);
5452
5553 //描画
56-// >>> modify 20120728 yossiepon begin
57- virtual int Draw(LPDIRECT3DDEVICE9 pD3DDevice);
58-// <<< modify 20120728 yossiepon end
54+ int Draw(LPDIRECT3DDEVICE9 pD3DDevice);
5955
6056 //解放
6157 void Release();
@@ -67,9 +63,7 @@ public:
6763 void SetPlayTimeMSec(unsigned long playTimeMsec);
6864
6965 //リセット
70-// >>> modify 20120728 yossiepon begin
71- virtual void Reset();
72-// <<< modify 20120728 yossiepon end
66+ void Reset();
7367
7468 //表示設定
7569 void SetEnable(bool isEnable);
@@ -139,9 +133,7 @@ protected:
139133 bool m_isSingleKeyboard;
140134
141135 int _CreateNoteStatus();
142-// >>> modify 20120728 yossiepon begin
143- virtual int _CreateKeyboards(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName, SMSeqData* pSeqData);
144-// <<< modify 20120728 yossiepon end
136+ int _CreateKeyboards(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName, SMSeqData* pSeqData);
145137
146138 int _TransformActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
147139
--- a/MIDITrail/MTPianoKeyboardCtrlMod.cpp
+++ b/MIDITrail/MTPianoKeyboardCtrlMod.cpp
@@ -27,7 +27,6 @@ using namespace YNBaseLib;
2727 //******************************************************************************
2828 MTPianoKeyboardCtrlMod::MTPianoKeyboardCtrlMod(void)
2929 {
30- m_MaxKeyboardIndex = 0;
3130 ZeroMemory(m_KeyDownRateMod, sizeof(float) * SM_MAX_CH_NUM* SM_MAX_CH_NUM * SM_MAX_NOTE_NUM);
3231 }
3332
@@ -71,35 +70,8 @@ int MTPianoKeyboardCtrlMod::Create(
7170 result = m_KeyboardDesignMod.Initialize(pSceneName, pSeqData);
7271 if (result != 0) goto EXIT;
7372
74- //シーケンスデータ:ポートリスト取得
75- result = pSeqData->GetPortList(&m_PortList);
76- if (result != 0) goto EXIT;
77-
78- for (index = 0; index < SM_MAX_PORT_NUM; index++) {
79- m_KeyboardIndex[index] = -1;
80- }
81-
82- //シングルキーボードでない場合
83- if (!isSingleKeyboard) {
84- //ポート番号に昇順のキーボードインデックスを振る
85- //ポート 0番 3番 5番 に出力する場合のインデックスはそれぞれ 0, 1, 2
86- for (index = 0; index < m_PortList.GetSize(); index++) {
87- m_PortList.GetPort(index, &portNo);
88- m_KeyboardIndex[portNo] = keyboardIndex;
89- keyboardIndex++;
90- if(keyboardIndex == m_KeyboardDesignMod.GetKeyboardMaxDispNum()){
91- break;
92- }
93- }
94- m_MaxKeyboardIndex = (unsigned char)keyboardIndex;
95- }
96- //シングルキーボードの場合
97- else {
98- //キーボードデザインをシングルモードに設定
73+ if (isSingleKeyboard) {
9974 m_KeyboardDesignMod.SetKeyboardSingle();
100- //ポートとキーボードの対応を1:1に固定
101- m_KeyboardIndex[0] = 0;
102- m_MaxKeyboardIndex = 1;
10375 }
10476
10577 //トラック取得
@@ -141,7 +113,7 @@ int MTPianoKeyboardCtrlMod::_CreateKeyboards(
141113 unsigned char index = 0;
142114 LPDIRECT3DTEXTURE9 pTexture = NULL;
143115
144- for (index = 0; index < m_MaxKeyboardIndex; index++) {
116+ for (index = 0; index < m_KeyboardDesignMod.GetKeyboardDispNum(); index++) {
145117 try {
146118 m_pPianoKeyboard[index] = new MTPianoKeyboardMod;
147119 }
@@ -166,6 +138,7 @@ EXIT:;
166138 //******************************************************************************
167139 int MTPianoKeyboardCtrlMod::Transform(
168140 LPDIRECT3DDEVICE9 pD3DDevice,
141+ D3DXVECTOR3 camVector,
169142 float rollAngle
170143 )
171144 {
@@ -189,35 +162,16 @@ int MTPianoKeyboardCtrlMod::Transform(
189162 playbackPosVector = m_NoteDesignMod.GetWorldMoveVector();
190163 playbackPosVector.x += m_NoteDesignMod.GetPlayPosX(m_CurTickTime);
191164
192- unsigned char lastPortNo = 0;
193-
194- if (!m_isSingleKeyboard) {
195- //シングルキーボードでない場合、最終ポート番号を取得
196- m_PortList.GetPort(m_PortList.GetSize()-1, &lastPortNo);
197- }
198- else {
199- //シングルキーボードの場合、最終ポート番号は0固定
200- lastPortNo = 0;
201- }
202-
203- for(portNo = 0; portNo <= lastPortNo; portNo ++) {
204-
205- //ポート番号からキーボードインデックスを取得
206- //シングルキーボードの場合、インデックスは0固定
207- int keyboardIndex = !m_isSingleKeyboard ? m_KeyboardIndex[portNo] : 0;
208-
209- if(keyboardIndex == -1) {
210- continue;
211- }
165+ for(index = 0; index < m_KeyboardDesignMod.GetKeyboardDispNum(); index ++) {
212166
213167 //移動ベクトル:キーボード基準座標
214- basePosVector = m_KeyboardDesignMod.GetKeyboardBasePos(keyboardIndex, rollAngle);
168+ basePosVector = m_KeyboardDesignMod.GetKeyboardBasePos(index, rollAngle);
215169
216170 //移動ベクトル:ピッチベンドシフトを反映
217- basePosVector.x += GetMaxPitchBendShift(portNo);
171+ basePosVector.x += _GetMaxPitchBendShift(index);
218172
219173 //キーボード移動
220- result = m_pPianoKeyboard[keyboardIndex]->Transform(pD3DDevice, basePosVector, playbackPosVector, rollAngle);
174+ result = m_pPianoKeyboard[index]->Transform(pD3DDevice, basePosVector, playbackPosVector, rollAngle);
221175 if (result != 0) goto EXIT;
222176 }
223177
@@ -267,7 +221,7 @@ int MTPianoKeyboardCtrlMod::_UpdateNoteStatus(
267221 else {
268222 //ノート情報を破棄
269223 //発音中のキーをリセットする
270- result = m_pPianoKeyboard[_GetKeyboardIndexFromNote(note)]->ResetKey(note.noteNo);
224+ result = m_pPianoKeyboard[m_KeyboardDesignMod.GetKeyboardIndex(note)]->ResetKey(note.noteNo);
271225 if (result != 0) goto EXIT;
272226
273227 pNoteStatus->isActive = false;
@@ -298,7 +252,6 @@ int MTPianoKeyboardCtrlMod::_UpdateVertexOfActiveNotes(
298252 unsigned long elapsedTime = 0;
299253 SMNote note;
300254 D3DXCOLOR noteColor;
301- unsigned char notePortNo;
302255
303256 ZeroMemory(m_KeyDownRateMod, sizeof(float) * SM_MAX_CH_NUM* SM_MAX_CH_NUM * SM_MAX_NOTE_NUM);
304257
@@ -320,31 +273,23 @@ int MTPianoKeyboardCtrlMod::_UpdateVertexOfActiveNotes(
320273 //ノートの色
321274 noteColor = m_NoteDesignMod.GetNoteBoxColor(note.portNo, note.chNo, note.noteNo);
322275
323- //シングルキーボードでない場合
324- if (!m_isSingleKeyboard) {
325- //ノートのポート番号を取得
326- notePortNo = note.portNo;
327- }
328- //シングルキーボードの場合
329- else {
330- //ノートのポート番号を0固定に
331- notePortNo = 0;
332- }
276+ int portNo = m_KeyboardDesignMod.GetPortNo(note);
277+ int keyboardIndex = m_KeyboardDesignMod.GetKeyboardIndex(note);
333278
334279 //発音対象キーを回転
335280 // すでに同一ノートに対して頂点を更新している場合
336281 // 押下率が前回よりも上回る場合に限り頂点を更新する
337- if (m_KeyDownRateMod[notePortNo][note.chNo][note.noteNo] < m_pNoteStatus[i].keyDownRate) {
282+ if (m_KeyDownRateMod[portNo][note.chNo][note.noteNo] < m_pNoteStatus[i].keyDownRate) {
338283 //複数チャンネルのキー状態をポート別に集約する
339- result = m_pPianoKeyboard[_GetKeyboardIndexFromNote(note)]->PushKey(
340- note.chNo,
341- note.noteNo,
342- m_pNoteStatus[i].keyDownRate,
343- elapsedTime,
344- &noteColor
345- );
284+ result = m_pPianoKeyboard[keyboardIndex]->PushKey(
285+ note.chNo,
286+ note.noteNo,
287+ m_pNoteStatus[i].keyDownRate,
288+ elapsedTime,
289+ &noteColor
290+ );
346291 if (result != 0) goto EXIT;
347- m_KeyDownRateMod[notePortNo][note.chNo][note.noteNo] = m_pNoteStatus[i].keyDownRate;
292+ m_KeyDownRateMod[portNo][note.chNo][note.noteNo] = m_pNoteStatus[i].keyDownRate;
348293 }
349294 }
350295
@@ -366,19 +311,13 @@ int MTPianoKeyboardCtrlMod::Draw(
366311
367312 if (!m_isEnable) goto EXIT;
368313
369- //レンダリングステート設定:Zバッファへの書き込みオフ
370-// pD3DDevice->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
371-
372314 //キーボードの描画
373- for (index = 0; index < m_MaxKeyboardIndex; index++) {
315+ for (index = 0; index < m_KeyboardDesignMod.GetKeyboardDispNum(); index++) {
374316
375317 result = m_pPianoKeyboard[index]->Draw(pD3DDevice);
376318 if (result != 0) goto EXIT;
377319 }
378320
379- //レンダリングステート設定:Zバッファへの書き込みオン
380-// pD3DDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
381-
382321 EXIT:;
383322 return result;
384323 }
@@ -402,7 +341,7 @@ void MTPianoKeyboardCtrlMod::Reset()
402341 //if (result != 0) goto EXIT;
403342
404343 //発音中のキーをリセットする
405- result = m_pPianoKeyboard[_GetKeyboardIndexFromNote(note)]->ResetKey(note.noteNo);
344+ result = m_pPianoKeyboard[m_KeyboardDesignMod.GetKeyboardIndex(note)]->ResetKey(note.noteNo);
406345 //if (result != 0) goto EXIT;
407346 }
408347 m_pNoteStatus[i].isActive = false;
@@ -414,52 +353,44 @@ void MTPianoKeyboardCtrlMod::Reset()
414353 return;
415354 }
416355
417-int MTPianoKeyboardCtrlMod::_GetKeyboardIndexFromNote(const SMNote &note)
418-{
419- //シングルキーボードでない場合
420- if (!m_isSingleKeyboard) {
421- //ノートのピアノ番号を取得
422- return m_KeyboardIndex[note.portNo];
423- }
424- //シングルキーボードの場合
425- else {
426- //ノートのピアノ番号を0固定に
427- return 0;
428- }
429-}
430-
431356 //******************************************************************************
432357 // ピッチベンドシフトの最大量を求める
433358 //******************************************************************************
434-float MTPianoKeyboardCtrlMod::GetMaxPitchBendShift(unsigned char portNo) {
359+float MTPianoKeyboardCtrlMod::_GetMaxPitchBendShift(int keyboardIndex) {
360+
361+ if (!m_KeyboardDesignMod.IsKeyboardSingle()) {
362+ return _GetMaxPitchBendShift(keyboardIndex, 0.0f);
363+ }
435364
436365 float max = 0.0f;
437- float cur = 0.0f;
438366
439- //シングルキーボードでない場合、指定のポート番号から求める
440- //シングルキーボードの場合、シーケンスに含まれるポート番号すべてから求める
441- int portListSize = !m_isSingleKeyboard ? 1 : m_PortList.GetSize();
367+ int portListSize = m_KeyboardDesignMod.GetPortListSize();
442368
443369 for (int i = 0; i < portListSize; i++) {
444370
445- if (m_isSingleKeyboard) {
446- m_PortList.GetPort(i, &portNo);
447- }
371+ max = _GetMaxPitchBendShift(i, max);
372+ }
448373
449- if (!m_isActivePort[portNo]) {
450- continue;
451- }
374+ return max;
375+}
376+
377+float MTPianoKeyboardCtrlMod::_GetMaxPitchBendShift(int keyboardIndex, float max) {
378+
379+ unsigned char portNo = m_KeyboardDesignMod.GetPortNoFromKeyboardIndex(keyboardIndex);
380+
381+ if (!m_isActivePort[portNo]) {
382+ return max;
383+ }
384+
385+ for (unsigned char chNo = 0; chNo < SM_MAX_CH_NUM; chNo++) {
452386
453- for (unsigned char chNo = 0; chNo < SM_MAX_CH_NUM; chNo++) {
387+ float pitchBendShift = _GetPichBendShiftPosX(portNo, chNo);
454388
455- float pitchBendShift = _GetPichBendShiftPosX(portNo, chNo);
456- if(max < fabs(pitchBendShift)) {
389+ if(fabs(max) < fabs(pitchBendShift)) {
457390
458- cur = pitchBendShift;
459- max = fabs(pitchBendShift);
460- }
391+ max = pitchBendShift;
461392 }
462393 }
463394
464- return cur;
395+ return max;
465396 }
\ No newline at end of file
--- a/MIDITrail/MTPianoKeyboardCtrlMod.h
+++ b/MIDITrail/MTPianoKeyboardCtrlMod.h
@@ -36,17 +36,21 @@ public:
3636 );
3737
3838 //更新
39- virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, float rollAngle);
39+ int Transform(
40+ LPDIRECT3DDEVICE9 pD3DDevice,
41+ D3DXVECTOR3 camVector,
42+ float rollAngle
43+ );
4044
4145 //描画
42- virtual int Draw(LPDIRECT3DDEVICE9 pD3DDevice);
46+ int Draw(LPDIRECT3DDEVICE9 pD3DDevice);
4347
4448 //リセット
45- virtual void Reset();
49+ void Reset();
4650
4751 protected:
4852
49- virtual int _CreateKeyboards(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName, SMSeqData* pSeqData);
53+ int _CreateKeyboards(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName, SMSeqData* pSeqData);
5054
5155 private:
5256
@@ -56,16 +60,9 @@ private:
5660 //キーボードデザイン
5761 MTPianoKeyboardDesignMod m_KeyboardDesignMod;
5862
59- //ポートリスト
60- SMPortList m_PortList;
61-
6263 //アクティブポートフラグ
6364 bool m_isActivePort[SM_MAX_PORT_NUM];
6465
65- //キーボードインデックス
66- int m_KeyboardIndex[SM_MAX_PORT_NUM];
67- unsigned char m_MaxKeyboardIndex;
68-
6966 //キー押下率配列
7067 float m_KeyDownRateMod[SM_MAX_CH_NUM][SM_MAX_CH_NUM][SM_MAX_NOTE_NUM];
7168
@@ -78,9 +75,8 @@ private:
7875 );
7976 virtual int _UpdateVertexOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
8077
81- int _GetKeyboardIndexFromNote(const SMNote &note);
82-
83- float GetMaxPitchBendShift(unsigned char portNo);
78+ float _GetMaxPitchBendShift(int keyboardIndex);
79+ float _GetMaxPitchBendShift(int keyboardIndex, float max);
8480 };
8581
8682
--- a/MIDITrail/MTPianoKeyboardDesign.cpp
+++ b/MIDITrail/MTPianoKeyboardDesign.cpp
@@ -916,16 +916,6 @@ unsigned long MTPianoKeyboardDesign::GetKeyboardMaxDispNum()
916916 return (unsigned long)m_KeyboardMaxDispNum;
917917 }
918918
919-// >>> add 20180404 yossiepon begin
920-//******************************************************************************
921-// キーボード表示数設定
922-//******************************************************************************
923-void MTPianoKeyboardDesign::SetKeyboardSingle()
924-{
925- m_KeyboardMaxDispNum = 1;
926-}
927-// <<< add 20180404 yossiepon end
928-
929919 //******************************************************************************
930920 // キー表示範囲:開始
931921 //******************************************************************************
--- a/MIDITrail/MTPianoKeyboardDesign.h
+++ b/MIDITrail/MTPianoKeyboardDesign.h
@@ -185,10 +185,6 @@ public:
185185 //キーボード最大表示数取得
186186 unsigned long GetKeyboardMaxDispNum();
187187
188-// >>> add 20180404 yossiepon begin
189- void SetKeyboardSingle();
190-// <<< add 20180404 yossiepon end
191-
192188 //キー表示範囲取得
193189 unsigned char GetKeyDispRangeStart();
194190 unsigned char GetKeyDispRangeEnd();
@@ -282,9 +278,7 @@ private:
282278 protected:
283279 // <<< modify 20161224 yossiepon end
284280
285-// >>> modify 20120728 yossiepon begin
286- virtual void _Initialize();
287-// <<< modify 20120728 yossiepon end
281+ void _Initialize();
288282
289283 // >>> modify access level 20161224 yossiepon begin
290284 private:
@@ -297,10 +291,7 @@ private:
297291 protected:
298292 // <<< modify 20161224 yossiepon end
299293
300-// >>> modify 20120728 yossiepon begin
301- virtual int _LoadConfFile(const TCHAR* pSceneName);
302-// <<< modify 20120728 yossiepon end
303-
294+ int _LoadConfFile(const TCHAR* pSceneName);
304295 };
305296
306297
--- a/MIDITrail/MTPianoKeyboardDesignMod.cpp
+++ b/MIDITrail/MTPianoKeyboardDesignMod.cpp
@@ -51,6 +51,8 @@ int MTPianoKeyboardDesignMod::Initialize(
5151 //基底クラスの初期化処理を呼び出す
5252 MTPianoKeyboardDesign::Initialize(pSceneName, pSeqData);
5353
54+ m_KeyboardDispNum = m_PortList.GetSize();
55+
5456 //設定ファイル読み込み
5557 result = _LoadConfFile(pSceneName);
5658 if (result != 0) goto EXIT;
@@ -60,16 +62,86 @@ EXIT:;
6062 }
6163
6264 //******************************************************************************
65+// シングルキーボードフラグ設定
66+//******************************************************************************
67+void MTPianoKeyboardDesignMod::SetKeyboardSingle()
68+{
69+ m_isKeyboardSingle = true;
70+ m_KeyboardDispNum = 1;
71+
72+ for (int i = 0; i < SM_MAX_PORT_NUM; i++) {
73+ m_PortIndex[i] = 0;
74+ }
75+}
76+
77+//******************************************************************************
78+// シングルキーボードフラグ取得
79+//******************************************************************************
80+bool MTPianoKeyboardDesignMod::IsKeyboardSingle()
81+{
82+ return m_isKeyboardSingle;
83+}
84+//******************************************************************************
85+// キーボード表示数取得
86+//******************************************************************************
87+int MTPianoKeyboardDesignMod::GetKeyboardDispNum()
88+{
89+ return m_KeyboardDispNum;
90+}
91+
92+//******************************************************************************
93+// ノートからキーボードインデックス取得
94+//******************************************************************************
95+int MTPianoKeyboardDesignMod::GetKeyboardIndex(const SMNote &note)
96+{
97+ return m_PortIndex[note.portNo];
98+}
99+
100+//******************************************************************************
101+// ポートリストサイズ取得
102+//******************************************************************************
103+int MTPianoKeyboardDesignMod::GetPortListSize()
104+{
105+ return m_PortList.GetSize();
106+}
107+
108+//******************************************************************************
109+// ノートからポート番号取得
110+//******************************************************************************
111+unsigned char MTPianoKeyboardDesignMod::GetPortNo(const SMNote &note)
112+{
113+ if (m_isKeyboardSingle) {
114+ return 0;
115+ }
116+ else {
117+ return note.portNo;
118+ }
119+}
120+
121+//******************************************************************************
122+// キーボードインデックスからポート番号取得
123+//******************************************************************************
124+unsigned char MTPianoKeyboardDesignMod::GetPortNoFromKeyboardIndex(int index)
125+{
126+ unsigned char portNo;
127+
128+ m_PortList.GetPort(index, &portNo);
129+
130+ return portNo;
131+}
132+
133+//******************************************************************************
63134 // 初期化
64135 //******************************************************************************
65136 void MTPianoKeyboardDesignMod::_Initialize()
66137 {
67- unsigned long i = 0;
68-
69138 //基底クラスの初期化処理を呼び出す
70139 MTPianoKeyboardDesign::_Initialize();
71140
72- for (i = 0; i < 16; i++) {
141+ m_isKeyboardSingle = false;
142+ m_KeyboardDispNum = 0;
143+
144+ for (int i = 0; i < 16; i++) {
73145 m_ActiveKeyColorList[i] = DXColorUtil::MakeColorFromHexRGBA(_T("FF0000FF")); //設定ファイル
74146 }
75147
@@ -188,8 +260,7 @@ float MTPianoKeyboardDesignMod::GetPortOriginY(
188260
189261 float portWidth = GetPortWidth();
190262
191- // TODO シングルキーボードの判定方法を再検討
192- int keyboardDispNum = GetKeyboardMaxDispNum() > 1 ? m_PortList.GetSize() : 1;
263+ int keyboardDispNum = GetKeyboardDispNum();
193264
194265 float originY;
195266
--- a/MIDITrail/MTPianoKeyboardDesignMod.h
+++ b/MIDITrail/MTPianoKeyboardDesignMod.h
@@ -27,6 +27,15 @@ public:
2727 //初期化
2828 virtual int Initialize(const TCHAR* pSceneName, SMSeqData* pSeqData);
2929
30+ void SetKeyboardSingle();
31+ bool IsKeyboardSingle();
32+ int GetKeyboardDispNum();
33+ int GetKeyboardIndex(const SMNote &note);
34+
35+ int GetPortListSize();
36+ unsigned char GetPortNo(const SMNote &note);
37+ unsigned char GetPortNoFromKeyboardIndex(int index);
38+
3039 //キーボード基準座標取得
3140 D3DXVECTOR3 GetKeyboardBasePos(
3241 int keyboardIndex,
@@ -83,11 +92,16 @@ public:
8392
8493 protected:
8594
86- virtual void _Initialize();
87- virtual int _LoadConfFile(const TCHAR* pSceneName);
95+ void _Initialize();
96+ int _LoadConfFile(const TCHAR* pSceneName);
8897
8998 private:
9099
100+ //シングルキーボードフラグ
101+ bool m_isKeyboardSingle;
102+ //表示するキーボードの数
103+ unsigned char m_KeyboardDispNum;
104+
91105 //ノートボックス高さ
92106 float m_NoteBoxHeight;
93107 //ノートボックス幅
--- a/MIDITrail/MTScenePianoRoll3DMod.cpp
+++ b/MIDITrail/MTScenePianoRoll3DMod.cpp
@@ -134,7 +134,7 @@ int MTScenePianoRoll3DMod::Transform(
134134 if (result != 0) goto EXIT;
135135
136136 //ピアノキーボード更新
137- result = m_PianoKeyboardCtrlMod.Transform(pD3DDevice, rollAngle);
137+ result = m_PianoKeyboardCtrlMod.Transform(pD3DDevice, camVector, rollAngle);
138138 if (result != 0) goto EXIT;
139139
140140 EXIT:;