$lang['tuto'] = "பயிற்சிகள்"; ?>$lang['tuto'] = "பயிற்சிகள்"; ?> மாற்றங்களுடன்

மாற்றங்களுடன் தனிப்பயன் பிவோட்டுகளுக்கான SceneKit இயற்பியல் உடல்களை சரிசெய்தல்

SceneKit

சிக்கலான மாற்றங்களுடன் சீன்கிட்டில் இயற்பியல் உடல்களை மாஸ்டரிங் செய்தல்

SceneKit உடன் பணிபுரியும் போது, ​​உங்கள் 3D முனைகளுடன் சரியாகச் சீரமைக்கும் இயற்பியல் அமைப்புகளை அமைப்பது சவாலானதாக இருக்கும், குறிப்பாக தனிப்பயன் பிவோட்டுகள், அளவிடுதல் அல்லது சுழற்சி சம்பந்தப்பட்டிருக்கும் போது. டெவலப்பர்கள் எதிர்கொள்ளும் ஒரு பொதுவான பிரச்சினை இயற்பியல் வடிவம் இந்த மாற்றங்களை சரியாக பிரதிபலிக்கிறது. 🛠️

முதல் பார்வையில், தனிப்பயன் மையத்தை அமைப்பது மற்றும் எளிய மாற்றங்களைப் பயன்படுத்துவது நேரடியானதாகத் தோன்றலாம். ஆனால் அளவிடுதல் அல்லது சுழற்சி அறிமுகப்படுத்தப்படும் போது விஷயங்கள் விரைவாக சிக்கலாகிவிடும். எடுத்துக்காட்டாக, இயற்பியல் உடலின் சீரமைப்பைப் பராமரிக்கும் போது ஒரு முனையை அளவிடுவது பெரும்பாலும் எதிர்பாராத ஆஃப்செட்களில் விளைகிறது. 🚨

இந்த தவறான சீரமைப்புகள் உங்கள் உருவகப்படுத்துதலை சீர்குலைத்து, கணிக்க முடியாத இயற்பியல் தொடர்புகளை ஏற்படுத்தும். குறிப்பாக உங்கள் SceneKit திட்டமானது துல்லியமான மோதலை கண்டறிதல் அல்லது பொருளின் இயக்கவியல் சார்ந்து இருந்தால், இதுபோன்ற சிக்கல்களை பிழைத்திருத்தம் செய்வது மிகவும் முக்கியமானது. இயற்பியல் வடிவத்தை சரியாக மாற்றுவது இந்த சிக்கலைத் தீர்ப்பதற்கான திறவுகோலாகும்.

இந்த வழிகாட்டியில், தனிப்பயன் பிவோட்டுகள், செதில்கள் மற்றும் சுழற்சிகள் கொண்ட முனைகளுக்கான இயற்பியல் அமைப்பைச் சரியாக அமைப்பதற்கான மறுஉருவாக்கம் அணுகுமுறையை ஆராய்வோம். முடிவில், SceneKit இல் தடையற்ற சீரமைப்பை எவ்வாறு உறுதி செய்வது என்பது பற்றிய தெளிவான புரிதல் உங்களுக்கு இருக்கும். உங்கள் SceneKit திட்டப்பணிகளை இன்னும் வலிமையானதாக மாற்ற, குறியீடு மற்றும் கருத்துகளில் முழுக்குப்போம்! 🎯

கட்டளை பயன்பாட்டின் உதாரணம்
SCNMatrix4MakeTranslation குறிப்பிட்ட x, y மற்றும் z மதிப்புகள் மூலம் ஒரு முனையின் பிவோட் புள்ளியை மாற்றும் மொழிபெயர்ப்பு மேட்ரிக்ஸை உருவாக்கப் பயன்படுகிறது. SceneKit இல் தனிப்பயன் பிவோட்களை அமைப்பதற்கு அவசியம்.
SCNMatrix4Invert கொடுக்கப்பட்ட மேட்ரிக்ஸின் தலைகீழ் மாற்றத்தை உருவாக்குகிறது, இது இயற்பியல் வடிவங்களை துல்லியமாக சீரமைக்க பிவோட் சரிசெய்தல் போன்ற மாற்றங்களை மாற்றியமைக்க அனுமதிக்கிறது.
SCNPhysicsShape.transformed(by:) இயற்பியல் வடிவத்திற்கு உருமாற்ற அணியைப் பயன்படுத்துவதற்கான SceneKit-குறிப்பிட்ட முறை. முனையிலிருந்து சுயாதீனமாக இயற்பியல் வடிவங்களை அளவிடுதல் அல்லது இடமாற்றம் செய்வதை இயக்குகிறது.
SCNNode.pivot ஒரு முனையின் மாற்றத்திற்கான பிவோட் புள்ளியைக் குறிப்பிடுகிறது, கணுவுக்கு அளவிடுதல், சுழற்சி மற்றும் மொழிபெயர்ப்பு எவ்வாறு பயன்படுத்தப்படுகிறது என்பதை மாற்றுகிறது.
SCNNode.scale அதன் x, y மற்றும் z அச்சுகளுடன் ஒரு முனையில் பயன்படுத்தப்படும் அளவிடுதல் காரணிகளை வரையறுக்கிறது. இங்கே சரிசெய்தல் இயற்பியல் வடிவத்தில் தொடர்புடைய மாற்றங்கள் தேவை.
SCNNode.eulerAngles ரேடியன்களில் பிட்ச், யாவ் மற்றும் ரோல் மதிப்புகளைப் பயன்படுத்தி ஒரு முனையின் சுழற்சியை அனுமதிக்கிறது. 3D காட்சியில் முனைகளின் மாறும் சீரமைப்புக்கு பயனுள்ளதாக இருக்கும்.
SCNPhysicsBody இயற்பியல் உடலை ஒரு முனையுடன் தொடர்புபடுத்துகிறது, மோதல்கள் மற்றும் இயக்கவியல் போன்ற தொடர்புகளை செயல்படுத்துகிறது. அதன் வடிவ அளவுரு இயற்பியல் வடிவவியலை வரையறுக்கிறது.
SCNVector3 ஒரு 3D திசையன் பிரதிநிதித்துவம் பெரும்பாலும் SceneKit முனைகள் மற்றும் உருமாற்றங்களில் நிலை, அளவு மற்றும் மொழிபெயர்ப்பு செயல்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது.
SCNPhysicsShape.init(shapes:transforms:) சிக்கலான இயற்பியல் அமைப்புகளை செயல்படுத்தி, தனிப்பட்ட துணை வடிவங்களுக்கு மாற்றங்களின் பட்டியலைப் பயன்படுத்துவதன் மூலம் ஒரு கூட்டு இயற்பியல் வடிவத்தை உருவாக்குகிறது.
SCNMatrix4MakeScale ஒரு பொருளின் அளவை அதன் x, y மற்றும் z அச்சுகளுடன் சரிசெய்ய அளவிடுதல் மேட்ரிக்ஸை உருவாக்குகிறது. இயற்பியல் வடிவங்களின் துல்லியமான அளவிடுதலுக்கான உருமாற்றங்களுடன் அடிக்கடி இணைக்கப்படுகிறது.

SceneKit இல் தனிப்பயன் பிவோட்களுடன் இயற்பியல் உடல்களை சீரமைத்தல்

வழங்கப்பட்ட ஸ்கிரிப்ட்களில், SceneKit இல் உள்ள பொதுவான சிக்கலைப் பற்றி பேசினோம்: தனிப்பயன் பிவோட்டுகள், அளவிடுதல் மற்றும் சுழற்சி ஆகியவற்றைக் கொண்ட முனைகளுடன் இயற்பியல் உடல்களைத் துல்லியமாக சீரமைத்தல். இயற்பியல் உடல் கணுவின் வடிவியல் மற்றும் உருமாற்றங்களுடன் பொருந்துவதை உறுதிசெய்ய உருமாற்ற அணிகள் மற்றும் மட்டு முறைகளை இணைப்பதன் மூலம் தீர்வு சுழல்கிறது. முக்கிய கட்டளை, , இயற்பியல் வடிவத்தை சரியாக சீரமைக்க பிவோட் மேட்ரிக்ஸை மாற்றுவதன் மூலம் முக்கிய பங்கு வகிக்கிறது. மோதல் கண்டறிதல் துல்லியமாக இருக்க வேண்டிய 3D கேம்கள் அல்லது உருவகப்படுத்துதல்களில் பணிபுரியும் போது இது மிகவும் பயனுள்ளதாக இருக்கும். 🎮

மற்றொரு முக்கியமான கட்டளை , டெவலப்பர்கள் தனிப்பயன் மாற்றங்களை இயற்பியல் வடிவத்திற்கு சுயாதீனமாக பயன்படுத்த அனுமதிக்கிறது. இதை அளவிடுதல் மற்றும் தலைகீழ் செயல்பாடுகளுடன் இணைப்பதன் மூலம், ஸ்கிரிப்ட் காட்சி முனைக்கும் அதன் அடிப்படை இயற்பியல் உடலுக்கும் இடையில் தடையற்ற மேப்பிங்கை உருவாக்குகிறது. எடுத்துக்காட்டாக, நீங்கள் ஒரு பெட்டி முனையை அதன் அசல் அளவை 1.5x என அளவிடினால், அதனுடன் தொடர்புடைய இயற்பியல் வடிவம் அளவிடப்பட்டு அதை பிரதிபலிக்கும் வகையில் சரிசெய்யப்பட்டு, துல்லியமான உடல் தொடர்புகளை உறுதி செய்கிறது.

யதார்த்தத்தை சேர்க்க, ஸ்கிரிப்ட் சுழற்சியை உள்ளடக்கியது . இந்த கட்டளையானது 3D இடத்தில் முனையை சுழற்ற உதவுகிறது, பொருள்களை சாய்ப்பது போன்ற நிஜ உலக காட்சிகளைப் பிரதிபலிக்கிறது. உதாரணமாக, ஒரு சிவப்புப் பெட்டியை சற்று சாய்த்து, பெரிதாக்கும் காட்சியைக் கவனியுங்கள்-இரண்டு மாற்றங்களுக்கும் இயற்பியல் உடல் மிகவும் முக்கியமானது. ஸ்கிரிப்டில் சரிசெய்தல் இல்லாமல், இயற்பியல் உடல் தவறானதாக இருக்கும், இதன் விளைவாக இயற்கைக்கு மாறான மோதல்கள் அல்லது பொருள்கள் ஒருவருக்கொருவர் கடந்து செல்லும். 🚀

இறுதியாக, ஸ்கிரிப்ட்டில் எடுக்கப்பட்ட மட்டு அணுகுமுறை அதை மீண்டும் பயன்படுத்தக்கூடியதாகவும் மாற்றியமைக்கக்கூடியதாகவும் ஆக்குகிறது. உதவியாளர் போன்ற செயல்பாடுகள் உள்ளன மற்றும் பல மாற்றங்களை முறையாக கையாள டெவலப்பர்களை அனுமதிக்கும். பொருள்கள் அடிக்கடி அளவு, சுழற்சி அல்லது நிலையை மாற்றும் மாறும் காட்சிகளில் இது மிகவும் பயனுள்ளதாக இருக்கும். குறியீட்டை இவ்வாறு அமைப்பதன் மூலம், உங்கள் முழு SceneKit திட்டத்திலும் சீரான செயல்திறன் மற்றும் துல்லியமான இயற்பியலை உறுதிசெய்து, மிகவும் சிக்கலான வடிவவியல் அல்லது காட்சிகளுக்கு எளிதாக நீட்டிக்கலாம். நீங்கள் ஊடாடும் செயலியை உருவாக்கினாலும் அல்லது பார்வைக்கு பிரமிக்க வைக்கும் கேமை உருவாக்கினாலும், இந்த அளவிலான துல்லியமானது பயனர் அனுபவங்களை மேம்படுத்தும். 🌟

SceneKit இல் தனிப்பயன் பிவோட்களுடன் இயற்பியல் உடல்களை எவ்வாறு சீரமைப்பது

இந்தத் தீர்வு ஸ்விஃப்ட் மற்றும் சீன்கிட்டைப் பயன்படுத்துவதில் கவனம் செலுத்துகிறது, இயற்பியல் உடல்களை ஒரு 3D காட்சியில் முனைகளுடன் சீரமைப்பதற்கான மட்டு முறைகளுடன். இது அளவிடுதல், சுழற்சி மற்றும் தனிப்பயன் பிவோட்களை திறமையாக கையாளுகிறது.

// Define a helper extension for SCNPhysicsShape to handle transformations modularly
extension SCNPhysicsShape {
    func transformed(by transform: SCNMatrix4) -> SCNPhysicsShape {
        return SCNPhysicsShape(shapes: [self], transforms: [NSValue(scnMatrix4: transform)])
    }
    func scaled(by scale: SCNVector3) -> SCNPhysicsShape {
        let transform = SCNMatrix4MakeScale(scale.x, scale.y, scale.z)
        return transformed(by: transform)
    }
    func rotated(by rotation: SCNVector4) -> SCNPhysicsShape {
        let transform = SCNMatrix4MakeRotation(rotation.w, rotation.x, rotation.y, rotation.z)
        return transformed(by: transform)
    }
}

// Main class to define a SceneKit scene and configure physics bodies
class My3DScene: SCNScene {
    override init() {
        super.init()
        let cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        cameraNode.position = SCNVector3(x: 0, y: 0, z: 50)
        rootNode.addChildNode(cameraNode)

        let boxGeo = SCNBox(width: 5, height: 5, length: 1, chamferRadius: 0)
        let box = SCNNode(geometry: boxGeo)
        box.scale = SCNVector3Make(1.5, 1.5, 1.5)
        box.eulerAngles = SCNVector3Make(1, 2, 3)
        box.pivot = SCNMatrix4MakeTranslation(1, 1, 1)
        rootNode.addChildNode(box)

        let physicsShape = SCNPhysicsShape(geometry: box.geometry!)
            .scaled(by: box.scale)
            .transformed(by: SCNMatrix4Invert(box.pivot))
        box.physicsBody = SCNPhysicsBody(type: .static, shape: physicsShape)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

மாற்று அணுகுமுறை: சீரமைப்பிற்கான SceneKit இன் நேட்டிவ் முறைகளைப் பயன்படுத்துதல்

இந்த தீர்வு, இயற்பியல் வடிவங்களை சீரமைக்க, நேட்டிவ் SceneKit பயன்பாடுகள் மற்றும் மேனுவல் மேட்ரிக்ஸ் சரிசெய்தல்களை ஆராய்கிறது. இது நேரடி நீட்டிப்புகளைத் தவிர்க்கிறது மற்றும் SceneKit இன் SCNMatrix4 கருவிகளைப் பயன்படுத்துகிறது.

// Define the Scene with minimalistic manual adjustments
class MyAlternativeScene: SCNScene {
    override init() {
        super.init()
        let cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        cameraNode.position = SCNVector3(x: 0, y: 0, z: 50)
        rootNode.addChildNode(cameraNode)

        let boxGeo = SCNBox(width: 5, height: 5, length: 1, chamferRadius: 0)
        let box = SCNNode(geometry: boxGeo)
        box.scale = SCNVector3Make(2.0, 2.0, 2.0)
        box.eulerAngles = SCNVector3Make(1, 2, 3)
        box.pivot = SCNMatrix4MakeTranslation(1, 1, 1)
        rootNode.addChildNode(box)

        let inversePivot = SCNMatrix4Invert(box.pivot)
        let physicsShape = SCNPhysicsShape(geometry: box.geometry!)
        let adjustedShape = physicsShape.transformed(by: inversePivot)
        box.physicsBody = SCNPhysicsBody(type: .static, shape: adjustedShape)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

சிக்கலான மாற்றங்களுக்கான SceneKit இயற்பியல் உடல்களை மேம்படுத்துதல்

SceneKit 3D காட்சிகளை உருவாக்குவதற்கான வலுவான கட்டமைப்பை வழங்குகிறது, ஆனால் அளவிடுதல், சுழற்சி மற்றும் தனிப்பயன் பிவோட்டுகள் போன்ற மாற்றங்கள் பயன்படுத்தப்படும்போது இயற்பியல் உடல்களை துல்லியமாக சீரமைப்பது ஒரு நுணுக்கமான சவாலாக இருக்கலாம். கவனிக்கப்படாத ஒரு அம்சம், கணுவின் ஒட்டுமொத்த உருமாற்ற மேட்ரிக்ஸுடன் இயற்பியல் வடிவங்களை மாற்றுவதன் முக்கியத்துவம் ஆகும். தடையற்ற சீரமைப்பை அடைய, டெவலப்பர்கள் பிவோட், ஸ்கேலிங் மற்றும் சுழற்சியின் ஒருங்கிணைந்த விளைவுகளை கருத்தில் கொள்ள வேண்டும். மோதல்கள் போன்ற இடைவினைகளின் போது இயற்பியல் உடல் சரியாக செயல்படுவதை இது உறுதி செய்கிறது. எடுத்துக்காட்டாக, சீரமைக்கப்படாத இயற்பியல் வடிவத்தின் காரணமாக துல்லியமாக சுவர்களில் மோதத் தவறிய ஒரு விளையாட்டில் அளவிடப்பட்ட கனசதுரத்தை கற்பனை செய்து பாருங்கள் - இது மூழ்கும் தன்மையையும் யதார்த்தத்தையும் உடைக்கும். ⚙️

SceneKit இல் உள்ள ஒரு சுவாரஸ்யமான மற்றும் அடிக்கடி பயன்படுத்தப்படாத அம்சம், பல இயற்பியல் வடிவங்களைப் பயன்படுத்தி ஒருங்கிணைக்கும் திறன் ஆகும். . வடிவங்களின் பட்டியலையும் அவற்றுக்கான மாற்றங்களையும் வழங்குவதன் மூலம், டெவலப்பர்கள் சிக்கலான வடிவவியலைப் பிரதிபலிக்கும் கூட்டு வடிவங்களை உருவாக்கலாம். இந்த அணுகுமுறை சிக்கலான மாதிரிகளுக்கு குறிப்பாக மதிப்புமிக்கது, அவற்றின் தலை, உடற்பகுதி மற்றும் கைகால்களுக்கு தனி இயற்பியல் கொண்ட ஒரு பாத்திரம். இந்த நுட்பம், செயல்திறனைப் பராமரிக்கும் அதே வேளையில், அதிநவீன வடிவமைப்புகளுக்கு கூட இயற்பியல் கணக்கீடுகள் துல்லியமாக இருப்பதை உறுதி செய்கிறது. 🚀

மேலும், பிழைத்திருத்த கருவிகள் போன்றவை இயற்பியல் உடல்கள் வடிவவியலுடன் எவ்வாறு இணைகின்றன என்பதைக் காட்சிப்படுத்துவதற்கு விலைமதிப்பற்றதாக இருக்கலாம். முறையற்ற அணி கணக்கீடுகள் அல்லது கையாளப்படாத மாற்றங்களால் ஏற்படும் தவறான சீரமைப்புகளை இது கண்டறிய உதவும். இந்த நுட்பங்களை இணைப்பது துல்லியத்தை மேம்படுத்துவதோடு மட்டுமல்லாமல் வளர்ச்சித் திறனையும் மேம்படுத்துகிறது, இது தொழில்முறை தர 3D பயன்பாடுகள் மற்றும் கேம்களுக்கு SceneKit ஐ நம்பகமான தேர்வாக ஆக்குகிறது. இந்த மேம்பட்ட முறைகளில் தேர்ச்சி பெறுவதன் மூலம், ஈர்க்கக்கூடிய மற்றும் யதார்த்தமான அனுபவங்களை உருவாக்குவதற்கான SceneKit இன் முழு திறனையும் நீங்கள் திறக்கலாம். 🌟

  1. பங்கு என்ன SceneKit இல்?
  2. ஒரு பொருளின் நிலை அல்லது அதன் மைய புள்ளியை மாற்றும் மொழிபெயர்ப்பு அணியை உருவாக்க இது பயன்படுகிறது. இயற்பியல் உடல் சீரமைப்பைத் தனிப்பயனாக்கும்போது இது அவசியம்.
  3. எப்படி செய்கிறது இயற்பியல் உடல்களை சீரமைக்க உதவுமா?
  4. இந்த கட்டளையானது மேட்ரிக்ஸின் தலைகீழ் கணக்கீட்டைக் கணக்கிடுகிறது, இது சரியான சீரமைப்பிற்காக பிவோட்கள் அல்லது மொழிபெயர்ப்புகள் போன்ற மாற்றங்களை மாற்ற உங்களை அனுமதிக்கிறது.
  5. ஏன் உள்ளது பிழைத்திருத்தத்தின் போது முக்கியமா?
  6. இந்த விருப்பம் உங்கள் காட்சியில் இயற்பியல் உடல்களின் காட்சி பிரதிநிதித்துவத்தை செயல்படுத்துகிறது, இது சீரமைப்பு சிக்கல்கள் அல்லது முரண்பாடுகளை எளிதாகக் கண்டறிய உதவுகிறது.
  7. நான் பயன்படுத்தலாமா டைனமிக் ஸ்கேலிங்கிற்காகவா?
  8. ஆம், இந்த முறையானது இயற்பியல் வடிவத்திற்கு நேரடியாக உருமாற்ற மேட்ரிக்ஸைப் பயன்படுத்துகிறது, இது டைனமிக் ஸ்கேலிங்கைப் பிரதிபலிக்கும் வகையில் வடிவங்களைச் சரிசெய்வதற்கு ஏற்றதாக அமைகிறது.
  9. கலப்பு இயற்பியல் வடிவம் என்றால் என்ன, அதை நான் எப்போது பயன்படுத்த வேண்டும்?
  10. ஒரு கூட்டு இயற்பியல் வடிவம் பல வடிவங்களை குறிப்பிட்ட உருமாற்றங்களைப் பயன்படுத்தி உருவாக்கப்படுகிறது . தனித்துவமான பகுதிகளைக் கொண்ட சிக்கலான பொருட்களுக்கு இது பயனுள்ளதாக இருக்கும்.

SceneKit இல் இயற்பியல் உடல்களை சீரமைக்க துல்லியம் தேவைப்படுகிறது, குறிப்பாக உருமாற்றங்களைக் கையாளும் போது. அளவிடுதல் மற்றும் பிவோட் சரிசெய்தல் போன்ற சரியான கட்டளைகளை இணைப்பதன் மூலம், துல்லியமான மோதல்கள் மற்றும் நடத்தையை உறுதிசெய்ய முடியும். உதாரணமாக, தனிப்பயன் பிவோட்களைப் பயன்படுத்துவது, பொருள்கள் இயற்கையாகத் தொடர்புகொள்ளும் டைனமிக் காட்சிகளை உருவாக்க டெவலப்பர்களை அனுமதிக்கிறது. போன்ற பிழைத்திருத்த கருவிகள் சிக்கலைத் தீர்ப்பதை ஒரு காற்றாக ஆக்குங்கள். 🌟

இந்தக் கருத்துகளில் தேர்ச்சி பெறுவதன் மூலம், டெவலப்பர்கள் மேம்பட்ட யதார்த்தத்துடன் 3D பயன்பாடுகள் மற்றும் கேம்களை உயிர்ப்பிக்க முடியும். SceneKit இன் பல்துறைத்திறன் மூலம், சிக்கலான மாற்றங்கள் கூட சமாளித்து, தடையற்ற அனுபவத்தை வழங்குகிறது. அளவிடப்பட்ட கன சதுரம் அல்லது சுழலும் கோளமாக இருந்தாலும் சரி, இந்த நுட்பங்கள் உங்கள் இயற்பியல் உடல்கள் எப்போதும் சரியாக சீரமைக்கப்படுவதை உறுதி செய்கிறது. 🎮

  1. இந்தக் கட்டுரைக்கான உள்ளடக்கம் அதிகாரப்பூர்வ Apple SceneKit ஆவணத்தால் ஈர்க்கப்பட்டது. மேலும் விவரங்களுக்கு, பார்க்கவும் ஆப்பிள் டெவலப்பர் சீன்கிட் வழிகாட்டி .
  2. டெவலப்பர் விவாதங்களில் இருந்து கூடுதல் நுண்ணறிவுகள் குறிப்பிடப்பட்டன ஸ்டாக் ஓவர்ஃப்ளோ , குறிப்பாக இயற்பியல் உடல் சீரமைப்பு மற்றும் மாற்றங்கள் தொடர்பான இடுகைகள்.
  3. குறியீட்டு எடுத்துக்காட்டுகள் மற்றும் சிறந்த நடைமுறைகள் கிடைக்கும் பயிற்சிகளுடன் குறுக்கு சரிபார்க்கப்பட்டன ரே வெண்டர்லிச்சின் சீன்கிட் பயிற்சிகள் .